cmark

My personal build of CMark ✏️

Commit
15af2bfb9a250fe1661fbd48b3e61a89ee75f389
Parent
d655b825e3db9aa02adb8d5df9d995a6fd6a9e92
Author
John MacFarlane <jgm@berkeley.edu>
Date

Generated scanners.c with more recent re2c.

Diffstat

1 file changed, 2431 insertions, 2620 deletions

Status File Name N° Changes Insertions Deletions
Modified src/scanners.c 5051 2431 2620
diff --git a/src/scanners.c b/src/scanners.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 */
+/* Generated by re2c 0.15.3 */
 #include <stdlib.h>
 #include "chunk.h"
 #include "scanners.h"
@@ -28,7 +28,6 @@ bufsize_t _scan_scheme(const unsigned char *p) {
 
   {
     unsigned char yych;
-
     yych = *(marker = p);
     if (yych <= 0x7F) {
       if (yych <= ' ') {
@@ -2074,14 +2073,14 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy119;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
-        if (yych <= '9')
-          goto yy119;
-        goto yy107;
+        if (yych >= ':')
+          goto yy107;
       }
     } else {
       if (yych <= 'Z') {
@@ -2089,48 +2088,26 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy119;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy119;
-        goto yy107;
-      }
-    }
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy247;
-      if (yych <= '/')
-        goto yy107;
-      goto yy248;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy107;
-        goto yy248;
-      } else {
-        if (yych <= '`')
+        if (yych >= '{')
           goto yy107;
-        if (yych <= 'z')
-          goto yy248;
-        goto yy107;
       }
     }
-  yy119:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
         if (yych <= '-')
-          goto yy247;
+          goto yy248;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy248;
+          goto yy247;
         goto yy107;
       }
     } else {
@@ -2139,12 +2116,33 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
+        goto yy247;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy247;
+        goto yy107;
+      }
+    }
+  yy119:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
         goto yy248;
+      if (yych <= '/')
+        goto yy107;
+      goto yy247;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy247;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy248;
+          goto yy247;
         goto yy107;
       }
     }
@@ -2176,14 +2174,14 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy125;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
-        if (yych <= '9')
-          goto yy125;
-        goto yy107;
+        if (yych >= ':')
+          goto yy107;
       }
     } else {
       if (yych <= 'Z') {
@@ -2191,50 +2189,27 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy125;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy125;
-        goto yy107;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy126;
-      if (yych <= '/')
-        goto yy107;
-      goto yy127;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy107;
-        goto yy127;
-      } else {
-        if (yych <= '`')
+        if (yych >= '{')
           goto yy107;
-        if (yych <= 'z')
-          goto yy127;
-        goto yy107;
       }
     }
-  yy125:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy127;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy127;
+          goto yy126;
         goto yy107;
       }
     } else {
@@ -2243,51 +2218,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy127;
+        goto yy126;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy127;
+          goto yy126;
         goto yy107;
       }
     }
-  yy126:
+  yy125:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy128;
+        goto yy127;
       if (yych <= '/')
         goto yy107;
-      goto yy129;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy129;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy129;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy127:
+  yy126:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy129;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy129;
+          goto yy128;
         goto yy107;
       }
     } else {
@@ -2296,51 +2269,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy129;
+        goto yy128;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy129;
+          goto yy128;
         goto yy107;
       }
     }
-  yy128:
+  yy127:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy130;
+        goto yy129;
       if (yych <= '/')
         goto yy107;
-      goto yy131;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy131;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy131;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy129:
+  yy128:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy131;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy131;
+          goto yy130;
         goto yy107;
       }
     } else {
@@ -2349,51 +2320,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy131;
+        goto yy130;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy131;
+          goto yy130;
         goto yy107;
       }
     }
-  yy130:
+  yy129:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy132;
+        goto yy131;
       if (yych <= '/')
         goto yy107;
-      goto yy133;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy133;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy133;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy131:
+  yy130:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy133;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy133;
+          goto yy132;
         goto yy107;
       }
     } else {
@@ -2402,51 +2371,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy133;
+        goto yy132;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy133;
+          goto yy132;
         goto yy107;
       }
     }
-  yy132:
+  yy131:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy134;
+        goto yy133;
       if (yych <= '/')
         goto yy107;
-      goto yy135;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy135;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy135;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy133:
+  yy132:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy135;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy135;
+          goto yy134;
         goto yy107;
       }
     } else {
@@ -2455,51 +2422,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy135;
+        goto yy134;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy135;
+          goto yy134;
         goto yy107;
       }
     }
-  yy134:
+  yy133:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy136;
+        goto yy135;
       if (yych <= '/')
         goto yy107;
-      goto yy137;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy137;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy137;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy135:
+  yy134:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy137;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy137;
+          goto yy136;
         goto yy107;
       }
     } else {
@@ -2508,51 +2473,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy137;
+        goto yy136;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy137;
+          goto yy136;
         goto yy107;
       }
     }
-  yy136:
+  yy135:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy138;
+        goto yy137;
       if (yych <= '/')
         goto yy107;
-      goto yy139;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy139;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy139;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy137:
+  yy136:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy139;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy139;
+          goto yy138;
         goto yy107;
       }
     } else {
@@ -2561,51 +2524,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy139;
+        goto yy138;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy139;
+          goto yy138;
         goto yy107;
       }
     }
-  yy138:
+  yy137:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy140;
+        goto yy139;
       if (yych <= '/')
         goto yy107;
-      goto yy141;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy141;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy141;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy139:
+  yy138:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy141;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy141;
+          goto yy140;
         goto yy107;
       }
     } else {
@@ -2614,51 +2575,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy141;
+        goto yy140;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy141;
+          goto yy140;
         goto yy107;
       }
     }
-  yy140:
+  yy139:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy142;
+        goto yy141;
       if (yych <= '/')
         goto yy107;
-      goto yy143;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy143;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy143;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy141:
+  yy140:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy143;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy143;
+          goto yy142;
         goto yy107;
       }
     } else {
@@ -2667,51 +2626,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy143;
+        goto yy142;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy143;
+          goto yy142;
         goto yy107;
       }
     }
-  yy142:
+  yy141:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy144;
+        goto yy143;
       if (yych <= '/')
         goto yy107;
-      goto yy145;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy145;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy145;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy143:
+  yy142:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy145;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy145;
+          goto yy144;
         goto yy107;
       }
     } else {
@@ -2720,51 +2677,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy145;
+        goto yy144;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy145;
+          goto yy144;
         goto yy107;
       }
     }
-  yy144:
+  yy143:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy146;
+        goto yy145;
       if (yych <= '/')
         goto yy107;
-      goto yy147;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy147;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy147;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy145:
+  yy144:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy147;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy147;
+          goto yy146;
         goto yy107;
       }
     } else {
@@ -2773,51 +2728,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy147;
+        goto yy146;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy147;
+          goto yy146;
         goto yy107;
       }
     }
-  yy146:
+  yy145:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy148;
+        goto yy147;
       if (yych <= '/')
         goto yy107;
-      goto yy149;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy149;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy149;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy147:
+  yy146:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy149;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy149;
+          goto yy148;
         goto yy107;
       }
     } else {
@@ -2826,51 +2779,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy149;
+        goto yy148;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy149;
+          goto yy148;
         goto yy107;
       }
     }
-  yy148:
+  yy147:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy150;
+        goto yy149;
       if (yych <= '/')
         goto yy107;
-      goto yy151;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy151;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy151;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy149:
+  yy148:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy151;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy151;
+          goto yy150;
         goto yy107;
       }
     } else {
@@ -2879,51 +2830,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy151;
+        goto yy150;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy151;
+          goto yy150;
         goto yy107;
       }
     }
-  yy150:
+  yy149:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy152;
+        goto yy151;
       if (yych <= '/')
         goto yy107;
-      goto yy153;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy153;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy153;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy151:
+  yy150:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy153;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy153;
+          goto yy152;
         goto yy107;
       }
     } else {
@@ -2932,51 +2881,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy153;
+        goto yy152;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy153;
+          goto yy152;
         goto yy107;
       }
     }
-  yy152:
+  yy151:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy154;
+        goto yy153;
       if (yych <= '/')
         goto yy107;
-      goto yy155;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy155;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy155;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy153:
+  yy152:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy155;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy155;
+          goto yy154;
         goto yy107;
       }
     } else {
@@ -2985,51 +2932,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy155;
+        goto yy154;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy155;
+          goto yy154;
         goto yy107;
       }
     }
-  yy154:
+  yy153:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy156;
+        goto yy155;
       if (yych <= '/')
         goto yy107;
-      goto yy157;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy157;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy157;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy155:
+  yy154:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy157;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy157;
+          goto yy156;
         goto yy107;
       }
     } else {
@@ -3038,51 +2983,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy157;
+        goto yy156;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy157;
+          goto yy156;
         goto yy107;
       }
     }
-  yy156:
+  yy155:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy158;
+        goto yy157;
       if (yych <= '/')
         goto yy107;
-      goto yy159;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy159;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy159;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy157:
+  yy156:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy159;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy159;
+          goto yy158;
         goto yy107;
       }
     } else {
@@ -3091,51 +3034,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy159;
+        goto yy158;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy159;
+          goto yy158;
         goto yy107;
       }
     }
-  yy158:
+  yy157:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy160;
+        goto yy159;
       if (yych <= '/')
         goto yy107;
-      goto yy161;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy161;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy161;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy159:
+  yy158:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy161;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy161;
+          goto yy160;
         goto yy107;
       }
     } else {
@@ -3144,51 +3085,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy161;
+        goto yy160;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy161;
+          goto yy160;
         goto yy107;
       }
     }
-  yy160:
+  yy159:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy162;
+        goto yy161;
       if (yych <= '/')
         goto yy107;
-      goto yy163;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy163;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy163;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy161:
+  yy160:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy163;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy163;
+          goto yy162;
         goto yy107;
       }
     } else {
@@ -3197,51 +3136,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy163;
+        goto yy162;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy163;
+          goto yy162;
         goto yy107;
       }
     }
-  yy162:
+  yy161:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy164;
+        goto yy163;
       if (yych <= '/')
         goto yy107;
-      goto yy165;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy165;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy165;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy163:
+  yy162:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy165;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy165;
+          goto yy164;
         goto yy107;
       }
     } else {
@@ -3250,51 +3187,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy165;
+        goto yy164;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy165;
+          goto yy164;
         goto yy107;
       }
     }
-  yy164:
+  yy163:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy166;
+        goto yy165;
       if (yych <= '/')
         goto yy107;
-      goto yy167;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy167;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy167;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy165:
+  yy164:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy167;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy167;
+          goto yy166;
         goto yy107;
       }
     } else {
@@ -3303,51 +3238,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy167;
+        goto yy166;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy167;
+          goto yy166;
         goto yy107;
       }
     }
-  yy166:
+  yy165:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy168;
+        goto yy167;
       if (yych <= '/')
         goto yy107;
-      goto yy169;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy169;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy169;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy167:
+  yy166:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy169;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy169;
+          goto yy168;
         goto yy107;
       }
     } else {
@@ -3356,51 +3289,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy169;
+        goto yy168;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy169;
+          goto yy168;
         goto yy107;
       }
     }
-  yy168:
+  yy167:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy170;
+        goto yy169;
       if (yych <= '/')
         goto yy107;
-      goto yy171;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy171;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy171;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy169:
+  yy168:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy171;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy171;
+          goto yy170;
         goto yy107;
       }
     } else {
@@ -3409,51 +3340,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy171;
+        goto yy170;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy171;
+          goto yy170;
         goto yy107;
       }
     }
-  yy170:
+  yy169:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy172;
+        goto yy171;
       if (yych <= '/')
         goto yy107;
-      goto yy173;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy173;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy173;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy171:
+  yy170:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy173;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy173;
+          goto yy172;
         goto yy107;
       }
     } else {
@@ -3462,51 +3391,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy173;
+        goto yy172;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy173;
+          goto yy172;
         goto yy107;
       }
     }
-  yy172:
+  yy171:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy174;
+        goto yy173;
       if (yych <= '/')
         goto yy107;
-      goto yy175;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy175;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy175;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy173:
+  yy172:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy175;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy175;
+          goto yy174;
         goto yy107;
       }
     } else {
@@ -3515,51 +3442,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy175;
+        goto yy174;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy175;
+          goto yy174;
         goto yy107;
       }
     }
-  yy174:
+  yy173:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy176;
+        goto yy175;
       if (yych <= '/')
         goto yy107;
-      goto yy177;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy177;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy177;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy175:
+  yy174:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy177;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy177;
+          goto yy176;
         goto yy107;
       }
     } else {
@@ -3568,51 +3493,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy177;
+        goto yy176;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy177;
+          goto yy176;
         goto yy107;
       }
     }
-  yy176:
+  yy175:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy178;
+        goto yy177;
       if (yych <= '/')
         goto yy107;
-      goto yy179;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy179;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy179;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy177:
+  yy176:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy179;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy179;
+          goto yy178;
         goto yy107;
       }
     } else {
@@ -3621,51 +3544,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy179;
+        goto yy178;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy179;
+          goto yy178;
         goto yy107;
       }
     }
-  yy178:
+  yy177:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy180;
+        goto yy179;
       if (yych <= '/')
         goto yy107;
-      goto yy181;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy181;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy181;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy179:
+  yy178:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy181;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy181;
+          goto yy180;
         goto yy107;
       }
     } else {
@@ -3674,51 +3595,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy181;
+        goto yy180;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy181;
+          goto yy180;
         goto yy107;
       }
     }
-  yy180:
+  yy179:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy182;
+        goto yy181;
       if (yych <= '/')
         goto yy107;
-      goto yy183;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy183;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy183;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy181:
+  yy180:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy183;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy183;
+          goto yy182;
         goto yy107;
       }
     } else {
@@ -3727,51 +3646,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy183;
+        goto yy182;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy183;
+          goto yy182;
         goto yy107;
       }
     }
-  yy182:
+  yy181:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy184;
+        goto yy183;
       if (yych <= '/')
         goto yy107;
-      goto yy185;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy185;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy185;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy183:
+  yy182:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy185;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy185;
+          goto yy184;
         goto yy107;
       }
     } else {
@@ -3780,51 +3697,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy185;
+        goto yy184;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy185;
+          goto yy184;
         goto yy107;
       }
     }
-  yy184:
+  yy183:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy186;
+        goto yy185;
       if (yych <= '/')
         goto yy107;
-      goto yy187;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy187;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy187;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy185:
+  yy184:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy187;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy187;
+          goto yy186;
         goto yy107;
       }
     } else {
@@ -3833,51 +3748,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy187;
+        goto yy186;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy187;
+          goto yy186;
         goto yy107;
       }
     }
-  yy186:
+  yy185:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy188;
+        goto yy187;
       if (yych <= '/')
         goto yy107;
-      goto yy189;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy189;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy189;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy187:
+  yy186:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy189;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy189;
+          goto yy188;
         goto yy107;
       }
     } else {
@@ -3886,51 +3799,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy189;
+        goto yy188;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy189;
+          goto yy188;
         goto yy107;
       }
     }
-  yy188:
+  yy187:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy190;
+        goto yy189;
       if (yych <= '/')
         goto yy107;
-      goto yy191;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy191;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy191;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy189:
+  yy188:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy191;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy191;
+          goto yy190;
         goto yy107;
       }
     } else {
@@ -3939,51 +3850,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy191;
+        goto yy190;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy191;
+          goto yy190;
         goto yy107;
       }
     }
-  yy190:
+  yy189:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy192;
+        goto yy191;
       if (yych <= '/')
         goto yy107;
-      goto yy193;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy193;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy193;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy191:
+  yy190:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy193;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy193;
+          goto yy192;
         goto yy107;
       }
     } else {
@@ -3992,51 +3901,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy193;
+        goto yy192;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy193;
+          goto yy192;
         goto yy107;
       }
     }
-  yy192:
+  yy191:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy194;
+        goto yy193;
       if (yych <= '/')
         goto yy107;
-      goto yy195;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy195;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy195;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy193:
+  yy192:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy195;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy195;
+          goto yy194;
         goto yy107;
       }
     } else {
@@ -4045,51 +3952,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy195;
+        goto yy194;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy195;
+          goto yy194;
         goto yy107;
       }
     }
-  yy194:
+  yy193:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy196;
+        goto yy195;
       if (yych <= '/')
         goto yy107;
-      goto yy197;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy197;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy197;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy195:
+  yy194:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy197;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy197;
+          goto yy196;
         goto yy107;
       }
     } else {
@@ -4098,51 +4003,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy197;
+        goto yy196;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy197;
+          goto yy196;
         goto yy107;
       }
     }
-  yy196:
+  yy195:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy198;
+        goto yy197;
       if (yych <= '/')
         goto yy107;
-      goto yy199;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy199;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy199;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy197:
+  yy196:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy199;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy199;
+          goto yy198;
         goto yy107;
       }
     } else {
@@ -4151,51 +4054,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy199;
+        goto yy198;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy199;
+          goto yy198;
         goto yy107;
       }
     }
-  yy198:
+  yy197:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy200;
+        goto yy199;
       if (yych <= '/')
         goto yy107;
-      goto yy201;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy201;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy201;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy199:
+  yy198:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy201;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy201;
+          goto yy200;
         goto yy107;
       }
     } else {
@@ -4204,51 +4105,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy201;
+        goto yy200;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy201;
+          goto yy200;
         goto yy107;
       }
     }
-  yy200:
+  yy199:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy202;
+        goto yy201;
       if (yych <= '/')
         goto yy107;
-      goto yy203;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy203;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy203;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy201:
+  yy200:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy203;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy203;
+          goto yy202;
         goto yy107;
       }
     } else {
@@ -4257,51 +4156,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy203;
+        goto yy202;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy203;
+          goto yy202;
         goto yy107;
       }
     }
-  yy202:
+  yy201:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy204;
+        goto yy203;
       if (yych <= '/')
         goto yy107;
-      goto yy205;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy205;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy205;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy203:
+  yy202:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy205;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy205;
+          goto yy204;
         goto yy107;
       }
     } else {
@@ -4310,51 +4207,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy205;
+        goto yy204;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy205;
+          goto yy204;
         goto yy107;
       }
     }
-  yy204:
+  yy203:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy206;
+        goto yy205;
       if (yych <= '/')
         goto yy107;
-      goto yy207;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy207;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy207;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy205:
+  yy204:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy207;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy207;
+          goto yy206;
         goto yy107;
       }
     } else {
@@ -4363,51 +4258,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy207;
+        goto yy206;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy207;
+          goto yy206;
         goto yy107;
       }
     }
-  yy206:
+  yy205:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy208;
+        goto yy207;
       if (yych <= '/')
         goto yy107;
-      goto yy209;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy209;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy209;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy207:
+  yy206:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy209;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy209;
+          goto yy208;
         goto yy107;
       }
     } else {
@@ -4416,51 +4309,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy209;
+        goto yy208;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy209;
+          goto yy208;
         goto yy107;
       }
     }
-  yy208:
+  yy207:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy210;
+        goto yy209;
       if (yych <= '/')
         goto yy107;
-      goto yy211;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy211;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy211;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy209:
+  yy208:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy211;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy211;
+          goto yy210;
         goto yy107;
       }
     } else {
@@ -4469,51 +4360,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy211;
+        goto yy210;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy211;
+          goto yy210;
         goto yy107;
       }
     }
-  yy210:
+  yy209:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy212;
+        goto yy211;
       if (yych <= '/')
         goto yy107;
-      goto yy213;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy213;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy213;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy211:
+  yy210:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy213;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy213;
+          goto yy212;
         goto yy107;
       }
     } else {
@@ -4522,51 +4411,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy213;
+        goto yy212;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy213;
+          goto yy212;
         goto yy107;
       }
     }
-  yy212:
+  yy211:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy214;
+        goto yy213;
       if (yych <= '/')
         goto yy107;
-      goto yy215;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy215;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy215;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy213:
+  yy212:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy215;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy215;
+          goto yy214;
         goto yy107;
       }
     } else {
@@ -4575,51 +4462,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy215;
+        goto yy214;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy215;
+          goto yy214;
         goto yy107;
       }
     }
-  yy214:
+  yy213:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy216;
+        goto yy215;
       if (yych <= '/')
         goto yy107;
-      goto yy217;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy217;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy217;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy215:
+  yy214:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy217;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy217;
+          goto yy216;
         goto yy107;
       }
     } else {
@@ -4628,51 +4513,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy217;
+        goto yy216;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy217;
+          goto yy216;
         goto yy107;
       }
     }
-  yy216:
+  yy215:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy218;
+        goto yy217;
       if (yych <= '/')
         goto yy107;
-      goto yy219;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy219;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy219;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy217:
+  yy216:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy219;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy219;
+          goto yy218;
         goto yy107;
       }
     } else {
@@ -4681,51 +4564,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy219;
+        goto yy218;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy219;
+          goto yy218;
         goto yy107;
       }
     }
-  yy218:
+  yy217:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy220;
+        goto yy219;
       if (yych <= '/')
         goto yy107;
-      goto yy221;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy221;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy221;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy219:
+  yy218:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy221;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy221;
+          goto yy220;
         goto yy107;
       }
     } else {
@@ -4734,51 +4615,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy221;
+        goto yy220;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy221;
+          goto yy220;
         goto yy107;
       }
     }
-  yy220:
+  yy219:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy222;
+        goto yy221;
       if (yych <= '/')
         goto yy107;
-      goto yy223;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy223;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy223;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy221:
+  yy220:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy223;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy223;
+          goto yy222;
         goto yy107;
       }
     } else {
@@ -4787,51 +4666,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy223;
+        goto yy222;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy223;
+          goto yy222;
         goto yy107;
       }
     }
-  yy222:
+  yy221:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy224;
+        goto yy223;
       if (yych <= '/')
         goto yy107;
-      goto yy225;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy225;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy225;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy223:
+  yy222:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
-      } else {
-        if (yych <= '/')
+        if (yych <= '-')
+          goto yy225;
+        goto yy120;
+      } else {
+        if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy225;
+          goto yy224;
         goto yy107;
       }
     } else {
@@ -4840,51 +4717,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy225;
+        goto yy224;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy225;
+          goto yy224;
         goto yy107;
       }
     }
-  yy224:
+  yy223:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy226;
+        goto yy225;
       if (yych <= '/')
         goto yy107;
-      goto yy227;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy227;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy227;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy225:
+  yy224:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy227;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy227;
+          goto yy226;
         goto yy107;
       }
     } else {
@@ -4893,51 +4768,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy227;
+        goto yy226;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy227;
+          goto yy226;
         goto yy107;
       }
     }
-  yy226:
+  yy225:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy228;
+        goto yy227;
       if (yych <= '/')
         goto yy107;
-      goto yy229;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy229;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy229;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy227:
+  yy226:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy229;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy229;
+          goto yy228;
         goto yy107;
       }
     } else {
@@ -4946,51 +4819,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy229;
+        goto yy228;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy229;
+          goto yy228;
         goto yy107;
       }
     }
-  yy228:
+  yy227:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy230;
+        goto yy229;
       if (yych <= '/')
         goto yy107;
-      goto yy231;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy231;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy231;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy229:
+  yy228:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy231;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy231;
+          goto yy230;
         goto yy107;
       }
     } else {
@@ -4999,51 +4870,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy231;
+        goto yy230;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy231;
+          goto yy230;
         goto yy107;
       }
     }
-  yy230:
+  yy229:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy232;
+        goto yy231;
       if (yych <= '/')
         goto yy107;
-      goto yy233;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy233;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy233;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy231:
+  yy230:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy233;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy233;
+          goto yy232;
         goto yy107;
       }
     } else {
@@ -5052,51 +4921,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy233;
+        goto yy232;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy233;
+          goto yy232;
         goto yy107;
       }
     }
-  yy232:
+  yy231:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy234;
+        goto yy233;
       if (yych <= '/')
         goto yy107;
-      goto yy235;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy235;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy235;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy233:
+  yy232:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy235;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy235;
+          goto yy234;
         goto yy107;
       }
     } else {
@@ -5105,51 +4972,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy235;
+        goto yy234;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy235;
+          goto yy234;
         goto yy107;
       }
     }
-  yy234:
+  yy233:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy236;
+        goto yy235;
       if (yych <= '/')
         goto yy107;
-      goto yy237;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy237;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy237;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy235:
+  yy234:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy237;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy237;
+          goto yy236;
         goto yy107;
       }
     } else {
@@ -5158,51 +5023,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy237;
+        goto yy236;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy237;
+          goto yy236;
         goto yy107;
       }
     }
-  yy236:
+  yy235:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy238;
+        goto yy237;
       if (yych <= '/')
         goto yy107;
-      goto yy239;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy239;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy239;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy237:
+  yy236:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy239;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy239;
+          goto yy238;
         goto yy107;
       }
     } else {
@@ -5211,51 +5074,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy239;
+        goto yy238;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy239;
+          goto yy238;
         goto yy107;
       }
     }
-  yy238:
+  yy237:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy240;
+        goto yy239;
       if (yych <= '/')
         goto yy107;
-      goto yy241;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy241;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy241;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy239:
+  yy238:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy241;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy241;
+          goto yy240;
         goto yy107;
       }
     } else {
@@ -5264,51 +5125,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy241;
+        goto yy240;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy241;
+          goto yy240;
         goto yy107;
       }
     }
-  yy240:
+  yy239:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy242;
+        goto yy241;
       if (yych <= '/')
         goto yy107;
-      goto yy243;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy243;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy243;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy241:
+  yy240:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy243;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy243;
+          goto yy242;
         goto yy107;
       }
     } else {
@@ -5317,51 +5176,49 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy243;
+        goto yy242;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy243;
+          goto yy242;
         goto yy107;
       }
     }
-  yy242:
+  yy241:
     ++p;
     yych = *p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy244;
+        goto yy243;
       if (yych <= '/')
         goto yy107;
-      goto yy245;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy245;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy245;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy243:
+  yy242:
     ++p;
     yych = *p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy245;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy245;
+          goto yy244;
         goto yy107;
       }
     } else {
@@ -5370,34 +5227,35 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy245;
+        goto yy244;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy245;
+          goto yy244;
         goto yy107;
       }
     }
-  yy244:
+  yy243:
     ++p;
     yych = *p;
-    if (yych <= '@') {
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy245;
       if (yych <= '/')
         goto yy107;
-      if (yych <= '9')
-        goto yy246;
-      goto yy107;
     } else {
-      if (yych <= 'Z')
-        goto yy246;
-      if (yych <= '`')
-        goto yy107;
-      if (yych <= 'z')
-        goto yy246;
-      goto yy107;
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych >= '{')
+          goto yy107;
+      }
     }
-  yy245:
+  yy244:
     ++p;
     yych = *p;
     if (yych <= '=') {
@@ -5408,8 +5266,9 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
       } else {
         if (yych <= '/')
           goto yy107;
-        if (yych >= ':')
-          goto yy107;
+        if (yych <= '9')
+          goto yy246;
+        goto yy107;
       }
     } else {
       if (yych <= 'Z') {
@@ -5417,13 +5276,31 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
+        goto yy246;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych >= '{')
-          goto yy107;
+        if (yych <= 'z')
+          goto yy246;
+        goto yy107;
       }
     }
+  yy245:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych >= ':')
+        goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy246;
+      if (yych <= '`')
+        goto yy107;
+      if (yych >= '{')
+        goto yy107;
+    }
   yy246:
     ++p;
     yych = *p;
@@ -5434,38 +5311,18 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
     goto yy107;
   yy247:
     yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy249;
-      if (yych <= '/')
-        goto yy107;
-      goto yy250;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy107;
-        goto yy250;
-      } else {
-        if (yych <= '`')
-          goto yy107;
-        if (yych <= 'z')
-          goto yy250;
-        goto yy107;
-      }
-    }
-  yy248:
-    yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy250;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy250;
+          goto yy249;
         goto yy107;
       }
     } else {
@@ -5474,49 +5331,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy250;
+        goto yy249;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy250;
+          goto yy249;
         goto yy107;
       }
     }
-  yy249:
+  yy248:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy251;
+        goto yy250;
       if (yych <= '/')
         goto yy107;
-      goto yy252;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy252;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy252;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy250:
+  yy249:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy252;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy252;
+          goto yy251;
         goto yy107;
       }
     } else {
@@ -5525,49 +5380,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy252;
+        goto yy251;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy252;
+          goto yy251;
         goto yy107;
       }
     }
-  yy251:
+  yy250:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy253;
+        goto yy252;
       if (yych <= '/')
         goto yy107;
-      goto yy254;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy254;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy254;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy252:
+  yy251:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy254;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy254;
+          goto yy253;
         goto yy107;
       }
     } else {
@@ -5576,49 +5429,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy254;
+        goto yy253;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy254;
+          goto yy253;
         goto yy107;
       }
     }
-  yy253:
+  yy252:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy255;
+        goto yy254;
       if (yych <= '/')
         goto yy107;
-      goto yy256;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy256;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy256;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy254:
+  yy253:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy256;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy256;
+          goto yy255;
         goto yy107;
       }
     } else {
@@ -5627,49 +5478,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy256;
+        goto yy255;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy256;
+          goto yy255;
         goto yy107;
       }
     }
-  yy255:
+  yy254:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy257;
+        goto yy256;
       if (yych <= '/')
         goto yy107;
-      goto yy258;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy258;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy258;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy256:
+  yy255:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy258;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy258;
+          goto yy257;
         goto yy107;
       }
     } else {
@@ -5678,49 +5527,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy258;
+        goto yy257;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy258;
+          goto yy257;
         goto yy107;
       }
     }
-  yy257:
+  yy256:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy259;
+        goto yy258;
       if (yych <= '/')
         goto yy107;
-      goto yy260;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy260;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy260;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy258:
+  yy257:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy260;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy260;
+          goto yy259;
         goto yy107;
       }
     } else {
@@ -5729,49 +5576,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy260;
+        goto yy259;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy260;
+          goto yy259;
         goto yy107;
       }
     }
-  yy259:
+  yy258:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy261;
+        goto yy260;
       if (yych <= '/')
         goto yy107;
-      goto yy262;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy262;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy262;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy260:
+  yy259:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy262;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy262;
+          goto yy261;
         goto yy107;
       }
     } else {
@@ -5780,49 +5625,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy262;
+        goto yy261;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy262;
+          goto yy261;
         goto yy107;
       }
     }
-  yy261:
+  yy260:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy263;
+        goto yy262;
       if (yych <= '/')
         goto yy107;
-      goto yy264;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy264;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy264;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy262:
+  yy261:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy264;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy264;
+          goto yy263;
         goto yy107;
       }
     } else {
@@ -5831,49 +5674,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy264;
+        goto yy263;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy264;
+          goto yy263;
         goto yy107;
       }
     }
-  yy263:
+  yy262:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy265;
+        goto yy264;
       if (yych <= '/')
         goto yy107;
-      goto yy266;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy266;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy266;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy264:
+  yy263:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy266;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy266;
+          goto yy265;
         goto yy107;
       }
     } else {
@@ -5882,49 +5723,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy266;
+        goto yy265;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy266;
+          goto yy265;
         goto yy107;
       }
     }
-  yy265:
+  yy264:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy267;
+        goto yy266;
       if (yych <= '/')
         goto yy107;
-      goto yy268;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy268;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy268;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy266:
+  yy265:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy268;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy268;
+          goto yy267;
         goto yy107;
       }
     } else {
@@ -5933,49 +5772,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy268;
+        goto yy267;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy268;
+          goto yy267;
         goto yy107;
       }
     }
-  yy267:
+  yy266:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy269;
+        goto yy268;
       if (yych <= '/')
         goto yy107;
-      goto yy270;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy270;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy270;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy268:
+  yy267:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy270;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy270;
+          goto yy269;
         goto yy107;
       }
     } else {
@@ -5984,49 +5821,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy270;
+        goto yy269;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy270;
+          goto yy269;
         goto yy107;
       }
     }
-  yy269:
+  yy268:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy271;
+        goto yy270;
       if (yych <= '/')
         goto yy107;
-      goto yy272;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy272;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy272;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy270:
+  yy269:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy272;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy272;
+          goto yy271;
         goto yy107;
       }
     } else {
@@ -6035,49 +5870,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy272;
+        goto yy271;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy272;
+          goto yy271;
         goto yy107;
       }
     }
-  yy271:
+  yy270:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy273;
+        goto yy272;
       if (yych <= '/')
         goto yy107;
-      goto yy274;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy274;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy274;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy272:
+  yy271:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy274;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy274;
+          goto yy273;
         goto yy107;
       }
     } else {
@@ -6086,49 +5919,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy274;
+        goto yy273;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy274;
+          goto yy273;
         goto yy107;
       }
     }
-  yy273:
+  yy272:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy275;
+        goto yy274;
       if (yych <= '/')
         goto yy107;
-      goto yy276;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy276;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy276;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy274:
+  yy273:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy276;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy276;
+          goto yy275;
         goto yy107;
       }
     } else {
@@ -6137,49 +5968,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy276;
+        goto yy275;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy276;
+          goto yy275;
         goto yy107;
       }
     }
-  yy275:
+  yy274:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy277;
+        goto yy276;
       if (yych <= '/')
         goto yy107;
-      goto yy278;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy278;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy278;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy276:
+  yy275:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy278;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy278;
+          goto yy277;
         goto yy107;
       }
     } else {
@@ -6188,49 +6017,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy278;
+        goto yy277;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy278;
+          goto yy277;
         goto yy107;
       }
     }
-  yy277:
+  yy276:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy279;
+        goto yy278;
       if (yych <= '/')
         goto yy107;
-      goto yy280;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy280;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy280;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy278:
+  yy277:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy280;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy280;
+          goto yy279;
         goto yy107;
       }
     } else {
@@ -6239,49 +6066,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy280;
+        goto yy279;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy280;
+          goto yy279;
         goto yy107;
       }
     }
-  yy279:
+  yy278:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy281;
+        goto yy280;
       if (yych <= '/')
         goto yy107;
-      goto yy282;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy282;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy282;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy280:
+  yy279:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy282;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy282;
+          goto yy281;
         goto yy107;
       }
     } else {
@@ -6290,49 +6115,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy282;
+        goto yy281;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy282;
+          goto yy281;
         goto yy107;
       }
     }
-  yy281:
+  yy280:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy283;
+        goto yy282;
       if (yych <= '/')
         goto yy107;
-      goto yy284;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy284;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy284;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy282:
+  yy281:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy284;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy284;
+          goto yy283;
         goto yy107;
       }
     } else {
@@ -6341,49 +6164,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy284;
+        goto yy283;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy284;
+          goto yy283;
         goto yy107;
       }
     }
-  yy283:
+  yy282:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy285;
+        goto yy284;
       if (yych <= '/')
         goto yy107;
-      goto yy286;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy286;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy286;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy284:
+  yy283:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy286;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy286;
+          goto yy285;
         goto yy107;
       }
     } else {
@@ -6392,49 +6213,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy286;
+        goto yy285;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy286;
+          goto yy285;
         goto yy107;
       }
     }
-  yy285:
+  yy284:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy287;
+        goto yy286;
       if (yych <= '/')
         goto yy107;
-      goto yy288;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy288;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy288;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy286:
+  yy285:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy288;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy288;
+          goto yy287;
         goto yy107;
       }
     } else {
@@ -6443,49 +6262,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy288;
+        goto yy287;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy288;
+          goto yy287;
         goto yy107;
       }
     }
-  yy287:
+  yy286:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy289;
+        goto yy288;
       if (yych <= '/')
         goto yy107;
-      goto yy290;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy290;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy290;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy288:
+  yy287:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy290;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy290;
+          goto yy289;
         goto yy107;
       }
     } else {
@@ -6494,49 +6311,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy290;
+        goto yy289;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy290;
+          goto yy289;
         goto yy107;
       }
     }
-  yy289:
+  yy288:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy291;
+        goto yy290;
       if (yych <= '/')
         goto yy107;
-      goto yy292;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy292;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy292;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy290:
+  yy289:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy292;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy292;
+          goto yy291;
         goto yy107;
       }
     } else {
@@ -6545,49 +6360,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy292;
+        goto yy291;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy292;
+          goto yy291;
         goto yy107;
       }
     }
-  yy291:
+  yy290:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy293;
+        goto yy292;
       if (yych <= '/')
         goto yy107;
-      goto yy294;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy294;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy294;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy292:
+  yy291:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy294;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy294;
+          goto yy293;
         goto yy107;
       }
     } else {
@@ -6596,49 +6409,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy294;
+        goto yy293;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy294;
+          goto yy293;
         goto yy107;
       }
     }
-  yy293:
+  yy292:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy295;
+        goto yy294;
       if (yych <= '/')
         goto yy107;
-      goto yy296;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy296;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy296;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy294:
+  yy293:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy296;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy296;
+          goto yy295;
         goto yy107;
       }
     } else {
@@ -6647,49 +6458,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy296;
+        goto yy295;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy296;
+          goto yy295;
         goto yy107;
       }
     }
-  yy295:
+  yy294:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy297;
+        goto yy296;
       if (yych <= '/')
         goto yy107;
-      goto yy298;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy298;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy298;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy296:
+  yy295:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy298;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy298;
+          goto yy297;
         goto yy107;
       }
     } else {
@@ -6698,49 +6507,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy298;
+        goto yy297;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy298;
+          goto yy297;
         goto yy107;
       }
     }
-  yy297:
+  yy296:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy299;
+        goto yy298;
       if (yych <= '/')
         goto yy107;
-      goto yy300;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy300;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy300;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy298:
+  yy297:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy300;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy300;
+          goto yy299;
         goto yy107;
       }
     } else {
@@ -6749,49 +6556,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy300;
+        goto yy299;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy300;
+          goto yy299;
         goto yy107;
       }
     }
-  yy299:
+  yy298:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy301;
+        goto yy300;
       if (yych <= '/')
         goto yy107;
-      goto yy302;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy302;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy302;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy300:
+  yy299:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
-      } else {
+        if (yych <= '-')
+          goto yy302;
+        goto yy120;
+      } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy302;
+          goto yy301;
         goto yy107;
       }
     } else {
@@ -6800,49 +6605,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy302;
+        goto yy301;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy302;
+          goto yy301;
         goto yy107;
       }
     }
-  yy301:
+  yy300:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy303;
+        goto yy302;
       if (yych <= '/')
         goto yy107;
-      goto yy304;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy304;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy304;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy302:
+  yy301:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy304;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy304;
+          goto yy303;
         goto yy107;
       }
     } else {
@@ -6851,49 +6654,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy304;
+        goto yy303;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy304;
+          goto yy303;
         goto yy107;
       }
     }
-  yy303:
+  yy302:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy305;
+        goto yy304;
       if (yych <= '/')
         goto yy107;
-      goto yy306;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy306;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy306;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy304:
+  yy303:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy306;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy306;
+          goto yy305;
         goto yy107;
       }
     } else {
@@ -6902,49 +6703,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy306;
+        goto yy305;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy306;
+          goto yy305;
         goto yy107;
       }
     }
-  yy305:
+  yy304:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy307;
+        goto yy306;
       if (yych <= '/')
         goto yy107;
-      goto yy308;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy308;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy308;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy306:
+  yy305:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy308;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy308;
+          goto yy307;
         goto yy107;
       }
     } else {
@@ -6953,49 +6752,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy308;
+        goto yy307;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy308;
+          goto yy307;
         goto yy107;
       }
     }
-  yy307:
+  yy306:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy309;
+        goto yy308;
       if (yych <= '/')
         goto yy107;
-      goto yy310;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy310;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy310;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy308:
+  yy307:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy310;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy310;
+          goto yy309;
         goto yy107;
       }
     } else {
@@ -7004,49 +6801,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy310;
+        goto yy309;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy310;
+          goto yy309;
         goto yy107;
       }
     }
-  yy309:
+  yy308:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy311;
+        goto yy310;
       if (yych <= '/')
         goto yy107;
-      goto yy312;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy312;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy312;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy310:
+  yy309:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy312;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy312;
+          goto yy311;
         goto yy107;
       }
     } else {
@@ -7055,49 +6850,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy312;
+        goto yy311;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy312;
+          goto yy311;
         goto yy107;
       }
     }
-  yy311:
+  yy310:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy313;
+        goto yy312;
       if (yych <= '/')
         goto yy107;
-      goto yy314;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy314;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy314;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy312:
+  yy311:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy314;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy314;
+          goto yy313;
         goto yy107;
       }
     } else {
@@ -7106,49 +6899,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy314;
+        goto yy313;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy314;
+          goto yy313;
         goto yy107;
       }
     }
-  yy313:
+  yy312:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy315;
+        goto yy314;
       if (yych <= '/')
         goto yy107;
-      goto yy316;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy316;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy316;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy314:
+  yy313:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy316;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy316;
+          goto yy315;
         goto yy107;
       }
     } else {
@@ -7157,49 +6948,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy316;
+        goto yy315;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy316;
+          goto yy315;
         goto yy107;
       }
     }
-  yy315:
+  yy314:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy317;
+        goto yy316;
       if (yych <= '/')
         goto yy107;
-      goto yy318;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy318;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy318;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy316:
+  yy315:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy318;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy318;
+          goto yy317;
         goto yy107;
       }
     } else {
@@ -7208,49 +6997,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy318;
+        goto yy317;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy318;
+          goto yy317;
         goto yy107;
       }
     }
-  yy317:
+  yy316:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy319;
+        goto yy318;
       if (yych <= '/')
         goto yy107;
-      goto yy320;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy320;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy320;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy318:
+  yy317:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy320;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy320;
+          goto yy319;
         goto yy107;
       }
     } else {
@@ -7259,49 +7046,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy320;
+        goto yy319;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy320;
+          goto yy319;
         goto yy107;
       }
     }
-  yy319:
+  yy318:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy321;
+        goto yy320;
       if (yych <= '/')
         goto yy107;
-      goto yy322;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy322;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy322;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy320:
+  yy319:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy322;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy322;
+          goto yy321;
         goto yy107;
       }
     } else {
@@ -7310,49 +7095,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy322;
+        goto yy321;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy322;
+          goto yy321;
         goto yy107;
       }
     }
-  yy321:
+  yy320:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy323;
+        goto yy322;
       if (yych <= '/')
         goto yy107;
-      goto yy324;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy324;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy324;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy322:
+  yy321:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy324;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy324;
+          goto yy323;
         goto yy107;
       }
     } else {
@@ -7361,49 +7144,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy324;
+        goto yy323;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy324;
+          goto yy323;
         goto yy107;
       }
     }
-  yy323:
+  yy322:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy325;
+        goto yy324;
       if (yych <= '/')
         goto yy107;
-      goto yy326;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy326;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy326;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy324:
+  yy323:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy326;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy326;
+          goto yy325;
         goto yy107;
       }
     } else {
@@ -7412,49 +7193,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy326;
+        goto yy325;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy326;
+          goto yy325;
         goto yy107;
       }
     }
-  yy325:
+  yy324:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy327;
+        goto yy326;
       if (yych <= '/')
         goto yy107;
-      goto yy328;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy328;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy328;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy326:
+  yy325:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy328;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy328;
+          goto yy327;
         goto yy107;
       }
     } else {
@@ -7463,49 +7242,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy328;
+        goto yy327;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy328;
+          goto yy327;
         goto yy107;
       }
     }
-  yy327:
+  yy326:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy329;
+        goto yy328;
       if (yych <= '/')
         goto yy107;
-      goto yy330;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy330;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy330;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy328:
+  yy327:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy330;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy330;
+          goto yy329;
         goto yy107;
       }
     } else {
@@ -7514,49 +7291,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy330;
+        goto yy329;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy330;
+          goto yy329;
         goto yy107;
       }
     }
-  yy329:
+  yy328:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy331;
+        goto yy330;
       if (yych <= '/')
         goto yy107;
-      goto yy332;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy332;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy332;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy330:
+  yy329:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy332;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy332;
+          goto yy331;
         goto yy107;
       }
     } else {
@@ -7565,49 +7340,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy332;
+        goto yy331;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy332;
+          goto yy331;
         goto yy107;
       }
     }
-  yy331:
+  yy330:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy333;
+        goto yy332;
       if (yych <= '/')
         goto yy107;
-      goto yy334;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy334;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy334;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy332:
+  yy331:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy334;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy334;
+          goto yy333;
         goto yy107;
       }
     } else {
@@ -7616,49 +7389,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy334;
+        goto yy333;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy334;
+          goto yy333;
         goto yy107;
       }
     }
-  yy333:
+  yy332:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy335;
+        goto yy334;
       if (yych <= '/')
         goto yy107;
-      goto yy336;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy336;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy336;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy334:
+  yy333:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy336;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy336;
+          goto yy335;
         goto yy107;
       }
     } else {
@@ -7667,49 +7438,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy336;
+        goto yy335;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy336;
+          goto yy335;
         goto yy107;
       }
     }
-  yy335:
+  yy334:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy337;
+        goto yy336;
       if (yych <= '/')
         goto yy107;
-      goto yy338;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy338;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy338;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy336:
+  yy335:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy338;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy338;
+          goto yy337;
         goto yy107;
       }
     } else {
@@ -7718,49 +7487,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy338;
+        goto yy337;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy338;
+          goto yy337;
         goto yy107;
       }
     }
-  yy337:
+  yy336:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy339;
+        goto yy338;
       if (yych <= '/')
         goto yy107;
-      goto yy340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy340;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy340;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy338:
+  yy337:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy340;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy340;
+          goto yy339;
         goto yy107;
       }
     } else {
@@ -7769,49 +7536,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy340;
+        goto yy339;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy340;
+          goto yy339;
         goto yy107;
       }
     }
-  yy339:
+  yy338:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy341;
+        goto yy340;
       if (yych <= '/')
         goto yy107;
-      goto yy342;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy342;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy342;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy340:
+  yy339:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy342;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy342;
+          goto yy341;
         goto yy107;
       }
     } else {
@@ -7820,49 +7585,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy342;
+        goto yy341;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy342;
+          goto yy341;
         goto yy107;
       }
     }
-  yy341:
+  yy340:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy343;
+        goto yy342;
       if (yych <= '/')
         goto yy107;
-      goto yy344;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy344;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy344;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy342:
+  yy341:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy344;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy344;
+          goto yy343;
         goto yy107;
       }
     } else {
@@ -7871,49 +7634,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy344;
+        goto yy343;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy344;
+          goto yy343;
         goto yy107;
       }
     }
-  yy343:
+  yy342:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy345;
+        goto yy344;
       if (yych <= '/')
         goto yy107;
-      goto yy346;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy346;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy346;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy344:
+  yy343:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy346;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy346;
+          goto yy345;
         goto yy107;
       }
     } else {
@@ -7922,49 +7683,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy346;
+        goto yy345;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy346;
+          goto yy345;
         goto yy107;
       }
     }
-  yy345:
+  yy344:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy347;
+        goto yy346;
       if (yych <= '/')
         goto yy107;
-      goto yy348;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy348;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy348;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy346:
+  yy345:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy348;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy348;
+          goto yy347;
         goto yy107;
       }
     } else {
@@ -7973,49 +7732,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy348;
+        goto yy347;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy348;
+          goto yy347;
         goto yy107;
       }
     }
-  yy347:
+  yy346:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy349;
+        goto yy348;
       if (yych <= '/')
         goto yy107;
-      goto yy350;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy350;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy350;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy348:
+  yy347:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy350;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy350;
+          goto yy349;
         goto yy107;
       }
     } else {
@@ -8024,49 +7781,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy350;
+        goto yy349;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy350;
+          goto yy349;
         goto yy107;
       }
     }
-  yy349:
+  yy348:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy351;
+        goto yy350;
       if (yych <= '/')
         goto yy107;
-      goto yy352;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy352;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy352;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy350:
+  yy349:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy352;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy352;
+          goto yy351;
         goto yy107;
       }
     } else {
@@ -8075,49 +7830,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy352;
+        goto yy351;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy352;
+          goto yy351;
         goto yy107;
       }
     }
-  yy351:
+  yy350:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy353;
+        goto yy352;
       if (yych <= '/')
         goto yy107;
-      goto yy354;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy354;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy354;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy352:
+  yy351:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy354;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy354;
+          goto yy353;
         goto yy107;
       }
     } else {
@@ -8126,49 +7879,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy354;
+        goto yy353;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy354;
+          goto yy353;
         goto yy107;
       }
     }
-  yy353:
+  yy352:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy355;
+        goto yy354;
       if (yych <= '/')
         goto yy107;
-      goto yy356;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy356;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy356;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy354:
+  yy353:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy356;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy356;
+          goto yy355;
         goto yy107;
       }
     } else {
@@ -8177,49 +7928,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy356;
+        goto yy355;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy356;
+          goto yy355;
         goto yy107;
       }
     }
-  yy355:
+  yy354:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy357;
+        goto yy356;
       if (yych <= '/')
         goto yy107;
-      goto yy358;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy358;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy358;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy356:
+  yy355:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy358;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy358;
+          goto yy357;
         goto yy107;
       }
     } else {
@@ -8228,49 +7977,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy358;
+        goto yy357;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy358;
+          goto yy357;
         goto yy107;
       }
     }
-  yy357:
+  yy356:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy359;
+        goto yy358;
       if (yych <= '/')
         goto yy107;
-      goto yy360;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy360;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy360;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy358:
+  yy357:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy360;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy360;
+          goto yy359;
         goto yy107;
       }
     } else {
@@ -8279,49 +8026,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy360;
+        goto yy359;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy360;
+          goto yy359;
         goto yy107;
       }
     }
-  yy359:
+  yy358:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy361;
+        goto yy360;
       if (yych <= '/')
         goto yy107;
-      goto yy362;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy362;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy362;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy360:
+  yy359:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy362;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy362;
+          goto yy361;
         goto yy107;
       }
     } else {
@@ -8330,49 +8075,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy362;
+        goto yy361;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy362;
+          goto yy361;
         goto yy107;
       }
     }
-  yy361:
+  yy360:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy363;
+        goto yy362;
       if (yych <= '/')
         goto yy107;
-      goto yy364;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy364;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy364;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy362:
+  yy361:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy364;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy364;
+          goto yy363;
         goto yy107;
       }
     } else {
@@ -8381,49 +8124,47 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy364;
+        goto yy363;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy364;
+          goto yy363;
         goto yy107;
       }
     }
-  yy363:
+  yy362:
     yych = *++p;
     if (yych <= '9') {
       if (yych == '-')
-        goto yy365;
+        goto yy364;
       if (yych <= '/')
         goto yy107;
-      goto yy366;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
           goto yy107;
-        goto yy366;
       } else {
         if (yych <= '`')
           goto yy107;
-        if (yych <= 'z')
-          goto yy366;
-        goto yy107;
+        if (yych >= '{')
+          goto yy107;
       }
     }
-  yy364:
+  yy363:
     yych = *++p;
     if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= ',')
           goto yy107;
-        if (yych >= '.')
-          goto yy120;
+        if (yych <= '-')
+          goto yy366;
+        goto yy120;
       } else {
         if (yych <= '/')
           goto yy107;
         if (yych <= '9')
-          goto yy366;
+          goto yy365;
         goto yy107;
       }
     } else {
@@ -8432,35 +8173,36 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
           goto yy121;
         if (yych <= '@')
           goto yy107;
-        goto yy366;
+        goto yy365;
       } else {
         if (yych <= '`')
           goto yy107;
         if (yych <= 'z')
-          goto yy366;
+          goto yy365;
         goto yy107;
       }
     }
-  yy365:
+  yy364:
     yych = *++p;
-    if (yych <= '@') {
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy366;
       if (yych <= '/')
         goto yy107;
-      if (yych <= '9')
-        goto yy246;
-      goto yy107;
     } else {
-      if (yych <= 'Z')
-        goto yy246;
-      if (yych <= '`')
-        goto yy107;
-      if (yych <= 'z')
-        goto yy246;
-      goto yy107;
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych >= '{')
+          goto yy107;
+      }
     }
-  yy366:
-    ++p;
-    if ((yych = *p) <= '=') {
+  yy365:
+    yych = *++p;
+    if (yych <= '=') {
       if (yych <= '.') {
         if (yych <= '-')
           goto yy107;
@@ -8487,6 +8229,23 @@ bufsize_t _scan_autolink_email(const unsigned char *p) {
         goto yy107;
       }
     }
+  yy366:
+    ++p;
+    if ((yych = *p) <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych <= '9')
+        goto yy246;
+      goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy246;
+      if (yych <= '`')
+        goto yy107;
+      if (yych <= 'z')
+        goto yy246;
+      goto yy107;
+    }
   }
 }
 
@@ -10925,50 +10684,24 @@ bufsize_t _scan_html_block_start(const unsigned char *p) {
     }
   yy545:
     yych = *++p;
-    if (yych <= 'U') {
-      if (yych <= 'E') {
-        if (yych == 'C')
-          goto yy587;
-        if (yych <= 'D')
-          goto yy525;
-        goto yy590;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy525;
-          goto yy589;
-        } else {
-          if (yych <= 'S')
-            goto yy525;
-          if (yych <= 'T')
-            goto yy586;
-          goto yy588;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'c') {
-          if (yych <= 'b')
-            goto yy525;
-          goto yy587;
-        } else {
-          if (yych == 'e')
-            goto yy590;
-          goto yy525;
-        }
-      } else {
-        if (yych <= 's') {
-          if (yych <= 'o')
-            goto yy589;
-          goto yy525;
-        } else {
-          if (yych <= 't')
-            goto yy586;
-          if (yych <= 'u')
-            goto yy588;
-          goto yy525;
-        }
-      }
+    switch (yych) {
+    case 'C':
+    case 'c':
+      goto yy587;
+    case 'E':
+    case 'e':
+      goto yy590;
+    case 'O':
+    case 'o':
+      goto yy589;
+    case 'T':
+    case 't':
+      goto yy586;
+    case 'U':
+    case 'u':
+      goto yy588;
+    default:
+      goto yy525;
     }
   yy546:
     yych = *++p;
@@ -18923,9 +18656,9 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   {
     unsigned char yych;
     static const unsigned char yybm[] = {
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 16, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
         0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
-        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 32, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
         0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
         0, 0,  0, 0, 0, 0, 0, 64, 0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
         0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
@@ -18984,16 +18717,16 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy1206:
     yych = *(marker = ++p);
     if (yych == ' ')
-      goto yy1238;
+      goto yy1242;
     if (yych == '*')
-      goto yy1240;
+      goto yy1244;
     goto yy1205;
   yy1207:
     yych = *(marker = ++p);
     if (yych == ' ')
-      goto yy1228;
-    if (yych == '_')
       goto yy1230;
+    if (yych == '_')
+      goto yy1232;
     goto yy1205;
   yy1208:
     yych = *(marker = ++p);
@@ -19075,23 +18808,32 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy1222:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1222;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy1211;
-      if (yych >= '\n')
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy1211;
+      } else {
+        if (yych <= '\n')
+          goto yy1226;
+        if (yych <= '\f')
+          goto yy1211;
         goto yy1226;
+      }
     } else {
-      if (yych == '\r')
-        goto yy1226;
-      goto yy1211;
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy1211;
+        goto yy1222;
+      } else {
+        if (yych == '-')
+          goto yy1228;
+        goto yy1211;
+      }
     }
   yy1224:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 32) {
+    if (yybm[0 + yych] & 16) {
       goto yy1224;
     }
     if (yych <= 0x08)
@@ -19106,10 +18848,20 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy1228:
     ++p;
     yych = *p;
-    if (yych == ' ')
+    if (yybm[0 + yych] & 32) {
       goto yy1228;
-    if (yych != '_')
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych <= '\t')
+        goto yy1224;
+      goto yy1226;
+    } else {
+      if (yych == '\r')
+        goto yy1226;
       goto yy1211;
+    }
   yy1230:
     ++p;
     yych = *p;
@@ -19120,89 +18872,148 @@ bufsize_t _scan_thematic_break(const unsigned char *p) {
   yy1232:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 64) {
+    if (yych == ' ')
       goto yy1232;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy1211;
-      if (yych >= '\n')
-        goto yy1236;
-    } else {
-      if (yych == '\r')
-        goto yy1236;
+    if (yych != '_')
       goto yy1211;
-    }
   yy1234:
     ++p;
     yych = *p;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy1211;
+      } else {
+        if (yych <= '\n')
+          goto yy1238;
+        if (yych <= '\f')
+          goto yy1211;
+        goto yy1238;
+      }
+    } else {
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy1211;
+        goto yy1234;
+      } else {
+        if (yych == '_')
+          goto yy1240;
+        goto yy1211;
+      }
+    }
+  yy1236:
+    ++p;
+    yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
         goto yy1211;
       if (yych <= '\t')
-        goto yy1234;
+        goto yy1236;
       if (yych >= '\v')
         goto yy1211;
     } else {
       if (yych <= '\r')
-        goto yy1236;
+        goto yy1238;
       if (yych == ' ')
-        goto yy1234;
+        goto yy1236;
       goto yy1211;
     }
-  yy1236:
+  yy1238:
     ++p;
     { return (bufsize_t)(p - start); }
-  yy1238:
+  yy1240:
     ++p;
     yych = *p;
-    if (yych == ' ')
+    if (yybm[0 + yych] & 64) {
+      goto yy1240;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych <= '\t')
+        goto yy1236;
       goto yy1238;
+    } else {
+      if (yych == '\r')
+        goto yy1238;
+      goto yy1211;
+    }
+  yy1242:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1242;
     if (yych != '*')
       goto yy1211;
-  yy1240:
+  yy1244:
     ++p;
     yych = *p;
     if (yych == ' ')
-      goto yy1240;
+      goto yy1244;
     if (yych != '*')
       goto yy1211;
-  yy1242:
+  yy1246:
     ++p;
     yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1242;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy1211;
-      if (yych >= '\n')
-        goto yy1246;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy1211;
+      } else {
+        if (yych <= '\n')
+          goto yy1250;
+        if (yych <= '\f')
+          goto yy1211;
+        goto yy1250;
+      }
     } else {
-      if (yych == '\r')
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy1211;
         goto yy1246;
-      goto yy1211;
+      } else {
+        if (yych == '*')
+          goto yy1252;
+        goto yy1211;
+      }
     }
-  yy1244:
+  yy1248:
     ++p;
     yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
         goto yy1211;
       if (yych <= '\t')
-        goto yy1244;
+        goto yy1248;
       if (yych >= '\v')
         goto yy1211;
     } else {
       if (yych <= '\r')
-        goto yy1246;
+        goto yy1250;
       if (yych == ' ')
-        goto yy1244;
+        goto yy1248;
       goto yy1211;
     }
-  yy1246:
+  yy1250:
     ++p;
     { return (bufsize_t)(p - start); }
+  yy1252:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1252;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych <= '\t')
+        goto yy1248;
+      goto yy1250;
+    } else {
+      if (yych == '\r')
+        goto yy1250;
+      goto yy1211;
+    }
   }
 }
 
@@ -19238,374 +19049,374 @@ bufsize_t _scan_open_code_fence(const unsigned char *p) {
     if (yych <= 0xC1) {
       if (yych <= '`') {
         if (yych == '\n')
-          goto yy1250;
+          goto yy1256;
         if (yych <= '_')
-          goto yy1253;
-        goto yy1251;
+          goto yy1259;
+        goto yy1257;
       } else {
         if (yych == '~')
-          goto yy1252;
+          goto yy1258;
         if (yych <= 0x7F)
-          goto yy1253;
+          goto yy1259;
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy1254;
+          goto yy1260;
         if (yych <= 0xE0)
-          goto yy1256;
+          goto yy1262;
         if (yych <= 0xEC)
-          goto yy1257;
-        goto yy1261;
+          goto yy1263;
+        goto yy1267;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy1257;
-          goto yy1258;
+            goto yy1263;
+          goto yy1264;
         } else {
           if (yych <= 0xF3)
-            goto yy1259;
+            goto yy1265;
           if (yych <= 0xF4)
-            goto yy1260;
+            goto yy1266;
         }
       }
     }
-  yy1250 : { return 0; }
-  yy1251:
+  yy1256 : { return 0; }
+  yy1257:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy1276;
-    goto yy1250;
-  yy1252:
+      goto yy1282;
+    goto yy1256;
+  yy1258:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy1262;
-    goto yy1250;
-  yy1253:
+      goto yy1268;
+    goto yy1256;
+  yy1259:
     yych = *++p;
-    goto yy1250;
-  yy1254:
+    goto yy1256;
+  yy1260:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1253;
-  yy1255:
+      goto yy1259;
+  yy1261:
     p = marker;
-    goto yy1250;
-  yy1256:
+    goto yy1256;
+  yy1262:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1254;
-    goto yy1255;
-  yy1257:
+      goto yy1260;
+    goto yy1261;
+  yy1263:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1254;
-    goto yy1255;
-  yy1258:
+      goto yy1260;
+    goto yy1261;
+  yy1264:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1257;
-    goto yy1255;
-  yy1259:
+      goto yy1263;
+    goto yy1261;
+  yy1265:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1257;
-    goto yy1255;
-  yy1260:
+      goto yy1263;
+    goto yy1261;
+  yy1266:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x8F)
-      goto yy1257;
-    goto yy1255;
-  yy1261:
+      goto yy1263;
+    goto yy1261;
+  yy1267:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x9F)
-      goto yy1254;
-    goto yy1255;
-  yy1262:
+      goto yy1260;
+    goto yy1261;
+  yy1268:
     yych = *++p;
     if (yybm[0 + yych] & 16) {
-      goto yy1263;
+      goto yy1269;
     }
-    goto yy1255;
-  yy1263:
-    marker = p + 1;
+    goto yy1261;
+  yy1269:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 32) {
-      goto yy1265;
+      goto yy1271;
     }
     if (yych <= 0xE0) {
       if (yych <= '~') {
         if (yych <= 0x00)
-          goto yy1255;
+          goto yy1261;
         if (yych <= '\r')
-          goto yy1274;
-        goto yy1263;
+          goto yy1280;
+        goto yy1269;
       } else {
         if (yych <= 0xC1)
-          goto yy1255;
+          goto yy1261;
         if (yych <= 0xDF)
-          goto yy1267;
-        goto yy1268;
+          goto yy1273;
+        goto yy1274;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy1273;
-        goto yy1269;
+          goto yy1279;
+        goto yy1275;
       } else {
         if (yych <= 0xF0)
-          goto yy1270;
+          goto yy1276;
         if (yych <= 0xF3)
-          goto yy1271;
+          goto yy1277;
         if (yych <= 0xF4)
-          goto yy1272;
-        goto yy1255;
+          goto yy1278;
+        goto yy1261;
       }
     }
-  yy1265:
+  yy1271:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 32) {
-      goto yy1265;
+      goto yy1271;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy1255;
+          goto yy1261;
         if (yych <= '\r')
-          goto yy1274;
-        goto yy1255;
+          goto yy1280;
+        goto yy1261;
       } else {
         if (yych <= 0xDF)
-          goto yy1267;
+          goto yy1273;
         if (yych <= 0xE0)
-          goto yy1268;
-        goto yy1269;
+          goto yy1274;
+        goto yy1275;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy1273;
+          goto yy1279;
         if (yych <= 0xEF)
-          goto yy1269;
-        goto yy1270;
+          goto yy1275;
+        goto yy1276;
       } else {
         if (yych <= 0xF3)
-          goto yy1271;
+          goto yy1277;
         if (yych <= 0xF4)
-          goto yy1272;
-        goto yy1255;
+          goto yy1278;
+        goto yy1261;
       }
     }
-  yy1267:
+  yy1273:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1265;
-    goto yy1255;
-  yy1268:
+      goto yy1271;
+    goto yy1261;
+  yy1274:
     ++p;
     yych = *p;
     if (yych <= 0x9F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1267;
-    goto yy1255;
-  yy1269:
+      goto yy1273;
+    goto yy1261;
+  yy1275:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1267;
-    goto yy1255;
-  yy1270:
+      goto yy1273;
+    goto yy1261;
+  yy1276:
     ++p;
     yych = *p;
     if (yych <= 0x8F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1269;
-    goto yy1255;
-  yy1271:
+      goto yy1275;
+    goto yy1261;
+  yy1277:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1269;
-    goto yy1255;
-  yy1272:
+      goto yy1275;
+    goto yy1261;
+  yy1278:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x8F)
-      goto yy1269;
-    goto yy1255;
-  yy1273:
+      goto yy1275;
+    goto yy1261;
+  yy1279:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x9F)
-      goto yy1267;
-    goto yy1255;
-  yy1274:
+      goto yy1273;
+    goto yy1261;
+  yy1280:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy1276:
+  yy1282:
     yych = *++p;
     if (yybm[0 + yych] & 64) {
-      goto yy1277;
+      goto yy1283;
     }
-    goto yy1255;
-  yy1277:
-    marker = p + 1;
+    goto yy1261;
+  yy1283:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 128) {
-      goto yy1279;
+      goto yy1285;
     }
     if (yych <= 0xE0) {
       if (yych <= '`') {
         if (yych <= 0x00)
-          goto yy1255;
+          goto yy1261;
         if (yych <= '\r')
-          goto yy1288;
-        goto yy1277;
+          goto yy1294;
+        goto yy1283;
       } else {
         if (yych <= 0xC1)
-          goto yy1255;
+          goto yy1261;
         if (yych <= 0xDF)
-          goto yy1281;
-        goto yy1282;
+          goto yy1287;
+        goto yy1288;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych == 0xED)
-          goto yy1287;
-        goto yy1283;
+          goto yy1293;
+        goto yy1289;
       } else {
         if (yych <= 0xF0)
-          goto yy1284;
+          goto yy1290;
         if (yych <= 0xF3)
-          goto yy1285;
+          goto yy1291;
         if (yych <= 0xF4)
-          goto yy1286;
-        goto yy1255;
+          goto yy1292;
+        goto yy1261;
       }
     }
-  yy1279:
+  yy1285:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 128) {
-      goto yy1279;
+      goto yy1285;
     }
     if (yych <= 0xEC) {
       if (yych <= 0xC1) {
         if (yych <= 0x00)
-          goto yy1255;
+          goto yy1261;
         if (yych <= '\r')
-          goto yy1288;
-        goto yy1255;
+          goto yy1294;
+        goto yy1261;
       } else {
         if (yych <= 0xDF)
-          goto yy1281;
+          goto yy1287;
         if (yych <= 0xE0)
-          goto yy1282;
-        goto yy1283;
+          goto yy1288;
+        goto yy1289;
       }
     } else {
       if (yych <= 0xF0) {
         if (yych <= 0xED)
-          goto yy1287;
+          goto yy1293;
         if (yych <= 0xEF)
-          goto yy1283;
-        goto yy1284;
+          goto yy1289;
+        goto yy1290;
       } else {
         if (yych <= 0xF3)
-          goto yy1285;
+          goto yy1291;
         if (yych <= 0xF4)
-          goto yy1286;
-        goto yy1255;
+          goto yy1292;
+        goto yy1261;
       }
     }
-  yy1281:
+  yy1287:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1279;
-    goto yy1255;
-  yy1282:
+      goto yy1285;
+    goto yy1261;
+  yy1288:
     ++p;
     yych = *p;
     if (yych <= 0x9F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1281;
-    goto yy1255;
-  yy1283:
+      goto yy1287;
+    goto yy1261;
+  yy1289:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1281;
-    goto yy1255;
-  yy1284:
+      goto yy1287;
+    goto yy1261;
+  yy1290:
     ++p;
     yych = *p;
     if (yych <= 0x8F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1283;
-    goto yy1255;
-  yy1285:
+      goto yy1289;
+    goto yy1261;
+  yy1291:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0xBF)
-      goto yy1283;
-    goto yy1255;
-  yy1286:
+      goto yy1289;
+    goto yy1261;
+  yy1292:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x8F)
-      goto yy1283;
-    goto yy1255;
-  yy1287:
+      goto yy1289;
+    goto yy1261;
+  yy1293:
     ++p;
     yych = *p;
     if (yych <= 0x7F)
-      goto yy1255;
+      goto yy1261;
     if (yych <= 0x9F)
-      goto yy1281;
-    goto yy1255;
-  yy1288:
+      goto yy1287;
+    goto yy1261;
+  yy1294:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
@@ -19637,190 +19448,190 @@ bufsize_t _scan_close_code_fence(const unsigned char *p) {
     if (yych <= 0xC1) {
       if (yych <= '`') {
         if (yych == '\n')
-          goto yy1292;
+          goto yy1298;
         if (yych <= '_')
-          goto yy1295;
-        goto yy1293;
+          goto yy1301;
+        goto yy1299;
       } else {
         if (yych == '~')
-          goto yy1294;
+          goto yy1300;
         if (yych <= 0x7F)
-          goto yy1295;
+          goto yy1301;
       }
     } else {
       if (yych <= 0xED) {
         if (yych <= 0xDF)
-          goto yy1296;
+          goto yy1302;
         if (yych <= 0xE0)
-          goto yy1298;
+          goto yy1304;
         if (yych <= 0xEC)
-          goto yy1299;
-        goto yy1303;
+          goto yy1305;
+        goto yy1309;
       } else {
         if (yych <= 0xF0) {
           if (yych <= 0xEF)
-            goto yy1299;
-          goto yy1300;
+            goto yy1305;
+          goto yy1306;
         } else {
           if (yych <= 0xF3)
-            goto yy1301;
+            goto yy1307;
           if (yych <= 0xF4)
-            goto yy1302;
+            goto yy1308;
         }
       }
     }
-  yy1292 : { return 0; }
-  yy1293:
+  yy1298 : { return 0; }
+  yy1299:
     yych = *(marker = ++p);
     if (yych == '`')
-      goto yy1311;
-    goto yy1292;
-  yy1294:
+      goto yy1317;
+    goto yy1298;
+  yy1300:
     yych = *(marker = ++p);
     if (yych == '~')
-      goto yy1304;
-    goto yy1292;
-  yy1295:
+      goto yy1310;
+    goto yy1298;
+  yy1301:
     yych = *++p;
-    goto yy1292;
-  yy1296:
+    goto yy1298;
+  yy1302:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0xBF)
-      goto yy1295;
-  yy1297:
+      goto yy1301;
+  yy1303:
     p = marker;
-    goto yy1292;
-  yy1298:
+    goto yy1298;
+  yy1304:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0xBF)
-      goto yy1296;
-    goto yy1297;
-  yy1299:
+      goto yy1302;
+    goto yy1303;
+  yy1305:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0xBF)
-      goto yy1296;
-    goto yy1297;
-  yy1300:
+      goto yy1302;
+    goto yy1303;
+  yy1306:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0xBF)
-      goto yy1299;
-    goto yy1297;
-  yy1301:
+      goto yy1305;
+    goto yy1303;
+  yy1307:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0xBF)
-      goto yy1299;
-    goto yy1297;
-  yy1302:
+      goto yy1305;
+    goto yy1303;
+  yy1308:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0x8F)
-      goto yy1299;
-    goto yy1297;
-  yy1303:
+      goto yy1305;
+    goto yy1303;
+  yy1309:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1297;
+      goto yy1303;
     if (yych <= 0x9F)
-      goto yy1296;
-    goto yy1297;
-  yy1304:
+      goto yy1302;
+    goto yy1303;
+  yy1310:
     yych = *++p;
     if (yybm[0 + yych] & 32) {
-      goto yy1305;
+      goto yy1311;
     }
-    goto yy1297;
-  yy1305:
-    marker = p + 1;
+    goto yy1303;
+  yy1311:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 64) {
-      goto yy1307;
+      goto yy1313;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy1297;
+        goto yy1303;
       if (yych <= '\n')
-        goto yy1309;
-      goto yy1297;
+        goto yy1315;
+      goto yy1303;
     } else {
       if (yych <= '\r')
-        goto yy1309;
+        goto yy1315;
       if (yych == '~')
-        goto yy1305;
-      goto yy1297;
+        goto yy1311;
+      goto yy1303;
     }
-  yy1307:
+  yy1313:
     ++p;
     yych = *p;
     if (yybm[0 + yych] & 64) {
-      goto yy1307;
+      goto yy1313;
     }
     if (yych <= 0x08)
-      goto yy1297;
+      goto yy1303;
     if (yych <= '\n')
-      goto yy1309;
+      goto yy1315;
     if (yych != '\r')
-      goto yy1297;
-  yy1309:
+      goto yy1303;
+  yy1315:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
-  yy1311:
+  yy1317:
     yych = *++p;
     if (yybm[0 + yych] & 128) {
-      goto yy1312;
+      goto yy1318;
     }
-    goto yy1297;
-  yy1312:
-    marker = p + 1;
+    goto yy1303;
+  yy1318:
     ++p;
     yych = *p;
+    marker = p;
     if (yybm[0 + yych] & 128) {
-      goto yy1312;
+      goto yy1318;
     }
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy1297;
+        goto yy1303;
       if (yych <= '\t')
-        goto yy1314;
+        goto yy1320;
       if (yych <= '\n')
-        goto yy1316;
-      goto yy1297;
+        goto yy1322;
+      goto yy1303;
     } else {
       if (yych <= '\r')
-        goto yy1316;
+        goto yy1322;
       if (yych != ' ')
-        goto yy1297;
+        goto yy1303;
     }
-  yy1314:
+  yy1320:
     ++p;
     yych = *p;
     if (yych <= '\f') {
       if (yych <= 0x08)
-        goto yy1297;
+        goto yy1303;
       if (yych <= '\t')
-        goto yy1314;
+        goto yy1320;
       if (yych >= '\v')
-        goto yy1297;
+        goto yy1303;
     } else {
       if (yych <= '\r')
-        goto yy1316;
+        goto yy1322;
       if (yych == ' ')
-        goto yy1314;
-      goto yy1297;
+        goto yy1320;
+      goto yy1303;
     }
-  yy1316:
+  yy1322:
     ++p;
     p = marker;
     { return (bufsize_t)(p - start); }
@@ -19839,997 +19650,997 @@ bufsize_t _scan_entity(const unsigned char *p) {
     if (yych <= 0xDF) {
       if (yych <= '%') {
         if (yych != '\n')
-          goto yy1322;
+          goto yy1328;
       } else {
         if (yych <= '&')
-          goto yy1321;
+          goto yy1327;
         if (yych <= 0x7F)
-          goto yy1322;
+          goto yy1328;
         if (yych >= 0xC2)
-          goto yy1323;
+          goto yy1329;
       }
     } else {
       if (yych <= 0xEF) {
         if (yych <= 0xE0)
-          goto yy1325;
+          goto yy1331;
         if (yych == 0xED)
-          goto yy1330;
-        goto yy1326;
+          goto yy1336;
+        goto yy1332;
       } else {
         if (yych <= 0xF0)
-          goto yy1327;
+          goto yy1333;
         if (yych <= 0xF3)
-          goto yy1328;
+          goto yy1334;
         if (yych <= 0xF4)
-          goto yy1329;
+          goto yy1335;
       }
     }
-  yy1320 : { return 0; }
-  yy1321:
+  yy1326 : { return 0; }
+  yy1327:
     yych = *(marker = ++p);
     if (yych <= '@') {
       if (yych == '#')
-        goto yy1331;
-      goto yy1320;
+        goto yy1337;
+      goto yy1326;
     } else {
       if (yych <= 'Z')
-        goto yy1332;
+        goto yy1338;
       if (yych <= '`')
-        goto yy1320;
+        goto yy1326;
       if (yych <= 'z')
-        goto yy1332;
-      goto yy1320;
+        goto yy1338;
+      goto yy1326;
     }
-  yy1322:
+  yy1328:
     yych = *++p;
-    goto yy1320;
-  yy1323:
+    goto yy1326;
+  yy1329:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0xBF)
-      goto yy1322;
-  yy1324:
+      goto yy1328;
+  yy1330:
     p = marker;
-    goto yy1320;
-  yy1325:
+    goto yy1326;
+  yy1331:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0xBF)
-      goto yy1323;
-    goto yy1324;
-  yy1326:
+      goto yy1329;
+    goto yy1330;
+  yy1332:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0xBF)
-      goto yy1323;
-    goto yy1324;
-  yy1327:
+      goto yy1329;
+    goto yy1330;
+  yy1333:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0xBF)
-      goto yy1326;
-    goto yy1324;
-  yy1328:
+      goto yy1332;
+    goto yy1330;
+  yy1334:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0xBF)
-      goto yy1326;
-    goto yy1324;
-  yy1329:
+      goto yy1332;
+    goto yy1330;
+  yy1335:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0x8F)
-      goto yy1326;
-    goto yy1324;
-  yy1330:
+      goto yy1332;
+    goto yy1330;
+  yy1336:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1324;
+      goto yy1330;
     if (yych <= 0x9F)
-      goto yy1323;
-    goto yy1324;
-  yy1331:
+      goto yy1329;
+    goto yy1330;
+  yy1337:
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1367;
-      goto yy1324;
+        goto yy1373;
+      goto yy1330;
     } else {
       if (yych <= 'X')
-        goto yy1366;
+        goto yy1372;
       if (yych == 'x')
-        goto yy1366;
-      goto yy1324;
+        goto yy1372;
+      goto yy1330;
     }
-  yy1332:
+  yy1338:
     yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych >= ':')
-        goto yy1324;
+        goto yy1330;
     } else {
       if (yych <= 'Z')
-        goto yy1333;
+        goto yy1339;
       if (yych <= '`')
-        goto yy1324;
+        goto yy1330;
       if (yych >= '{')
-        goto yy1324;
+        goto yy1330;
     }
-  yy1333:
+  yy1339:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1336;
+        goto yy1342;
       if (yych <= ':')
-        goto yy1324;
+        goto yy1330;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
-        goto yy1336;
+          goto yy1330;
+        goto yy1342;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych <= 'z')
-          goto yy1336;
-        goto yy1324;
+          goto yy1342;
+        goto yy1330;
       }
     }
-  yy1334:
+  yy1340:
     ++p;
     { return (bufsize_t)(p - start); }
-  yy1336:
+  yy1342:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1337;
+        goto yy1343;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1337:
+  yy1343:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1338;
+        goto yy1344;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1338:
+  yy1344:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1339;
+        goto yy1345;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1339:
+  yy1345:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1340;
+        goto yy1346;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1340:
+  yy1346:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1341;
+        goto yy1347;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1341:
+  yy1347:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1342;
+        goto yy1348;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1342:
+  yy1348:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1343;
+        goto yy1349;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1343:
+  yy1349:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1344;
+        goto yy1350;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1344:
+  yy1350:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1345;
+        goto yy1351;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1345:
+  yy1351:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1346;
+        goto yy1352;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1346:
+  yy1352:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1347;
+        goto yy1353;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1347:
+  yy1353:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1348;
+        goto yy1354;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1348:
+  yy1354:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1349;
+        goto yy1355;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1349:
+  yy1355:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1350;
+        goto yy1356;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1350:
+  yy1356:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1351;
+        goto yy1357;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1351:
+  yy1357:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1352;
+        goto yy1358;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1352:
+  yy1358:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1353;
+        goto yy1359;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1353:
+  yy1359:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1354;
+        goto yy1360;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1354:
+  yy1360:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1355;
+        goto yy1361;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1355:
+  yy1361:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1356;
+        goto yy1362;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1356:
+  yy1362:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1357;
+        goto yy1363;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1357:
+  yy1363:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1358;
+        goto yy1364;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1358:
+  yy1364:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1359;
+        goto yy1365;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1359:
+  yy1365:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1360;
+        goto yy1366;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1360:
+  yy1366:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1361;
+        goto yy1367;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1361:
+  yy1367:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1362;
+        goto yy1368;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1362:
+  yy1368:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1363;
+        goto yy1369;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1363:
+  yy1369:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1364;
+        goto yy1370;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1364:
+  yy1370:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1365;
+        goto yy1371;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'Z') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= '{')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1365:
+  yy1371:
     yych = *++p;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1366:
+      goto yy1340;
+    goto yy1330;
+  yy1372:
     yych = *++p;
     if (yych <= '@') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1374;
-      goto yy1324;
+        goto yy1380;
+      goto yy1330;
     } else {
       if (yych <= 'F')
-        goto yy1374;
+        goto yy1380;
       if (yych <= '`')
-        goto yy1324;
+        goto yy1330;
       if (yych <= 'f')
-        goto yy1374;
-      goto yy1324;
+        goto yy1380;
+      goto yy1330;
     }
-  yy1367:
+  yy1373:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1368;
+      goto yy1374;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1368:
+      goto yy1340;
+    goto yy1330;
+  yy1374:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1369;
+      goto yy1375;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1369:
+      goto yy1340;
+    goto yy1330;
+  yy1375:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1370;
+      goto yy1376;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1370:
+      goto yy1340;
+    goto yy1330;
+  yy1376:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1371;
+      goto yy1377;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1371:
+      goto yy1340;
+    goto yy1330;
+  yy1377:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1372;
+      goto yy1378;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1372:
+      goto yy1340;
+    goto yy1330;
+  yy1378:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1373;
+      goto yy1379;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1373:
+      goto yy1340;
+    goto yy1330;
+  yy1379:
     yych = *++p;
     if (yych <= '/')
-      goto yy1324;
+      goto yy1330;
     if (yych <= '9')
-      goto yy1365;
+      goto yy1371;
     if (yych == ';')
-      goto yy1334;
-    goto yy1324;
-  yy1374:
+      goto yy1340;
+    goto yy1330;
+  yy1380:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1375;
+        goto yy1381;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1375:
+  yy1381:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1376;
+        goto yy1382;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1376:
+  yy1382:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1377;
+        goto yy1383;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1377:
+  yy1383:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1378;
+        goto yy1384;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1378:
+  yy1384:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1379;
+        goto yy1385;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1379:
+  yy1385:
     yych = *++p;
     if (yych <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1380;
+        goto yy1386;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
+          goto yy1330;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych >= 'g')
-          goto yy1324;
+          goto yy1330;
       }
     }
-  yy1380:
+  yy1386:
     ++p;
     if ((yych = *p) <= ';') {
       if (yych <= '/')
-        goto yy1324;
+        goto yy1330;
       if (yych <= '9')
-        goto yy1365;
+        goto yy1371;
       if (yych <= ':')
-        goto yy1324;
-      goto yy1334;
+        goto yy1330;
+      goto yy1340;
     } else {
       if (yych <= 'F') {
         if (yych <= '@')
-          goto yy1324;
-        goto yy1365;
+          goto yy1330;
+        goto yy1371;
       } else {
         if (yych <= '`')
-          goto yy1324;
+          goto yy1330;
         if (yych <= 'f')
-          goto yy1365;
-        goto yy1324;
+          goto yy1371;
+        goto yy1330;
       }
     }
   }
@@ -20849,415 +20660,415 @@ bufsize_t _scan_dangerous_url(const unsigned char *p) {
       if (yych <= 'I') {
         if (yych <= 'C') {
           if (yych != '\n')
-            goto yy1388;
+            goto yy1394;
         } else {
           if (yych <= 'D')
-            goto yy1384;
+            goto yy1390;
           if (yych == 'F')
-            goto yy1387;
-          goto yy1388;
+            goto yy1393;
+          goto yy1394;
         }
       } else {
         if (yych <= 'V') {
           if (yych <= 'J')
-            goto yy1385;
+            goto yy1391;
           if (yych <= 'U')
-            goto yy1388;
-          goto yy1386;
+            goto yy1394;
+          goto yy1392;
         } else {
           if (yych == 'd')
-            goto yy1384;
+            goto yy1390;
           if (yych <= 'e')
-            goto yy1388;
-          goto yy1387;
+            goto yy1394;
+          goto yy1393;
         }
       }
     } else {
       if (yych <= 0xDF) {
         if (yych <= 'u') {
           if (yych == 'j')
-            goto yy1385;
-          goto yy1388;
+            goto yy1391;
+          goto yy1394;
         } else {
           if (yych <= 'v')
-            goto yy1386;
+            goto yy1392;
           if (yych <= 0x7F)
-            goto yy1388;
+            goto yy1394;
           if (yych >= 0xC2)
-            goto yy1389;
+            goto yy1395;
         }
       } else {
         if (yych <= 0xEF) {
           if (yych <= 0xE0)
-            goto yy1391;
+            goto yy1397;
           if (yych == 0xED)
-            goto yy1396;
-          goto yy1392;
+            goto yy1402;
+          goto yy1398;
         } else {
           if (yych <= 0xF0)
-            goto yy1393;
+            goto yy1399;
           if (yych <= 0xF3)
-            goto yy1394;
+            goto yy1400;
           if (yych <= 0xF4)
-            goto yy1395;
+            goto yy1401;
         }
       }
     }
-  yy1383 : { return 0; }
-  yy1384:
+  yy1389 : { return 0; }
+  yy1390:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy1418;
+      goto yy1424;
     if (yych == 'a')
-      goto yy1418;
-    goto yy1383;
-  yy1385:
+      goto yy1424;
+    goto yy1389;
+  yy1391:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'A')
-      goto yy1409;
+      goto yy1415;
     if (yych == 'a')
-      goto yy1409;
-    goto yy1383;
-  yy1386:
+      goto yy1415;
+    goto yy1389;
+  yy1392:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'B')
-      goto yy1402;
+      goto yy1408;
     if (yych == 'b')
-      goto yy1402;
-    goto yy1383;
-  yy1387:
+      goto yy1408;
+    goto yy1389;
+  yy1393:
     yyaccept = 0;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy1397;
+      goto yy1403;
     if (yych == 'i')
-      goto yy1397;
-    goto yy1383;
-  yy1388:
+      goto yy1403;
+    goto yy1389;
+  yy1394:
     yych = *++p;
-    goto yy1383;
-  yy1389:
+    goto yy1389;
+  yy1395:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0xBF)
-      goto yy1388;
-  yy1390:
+      goto yy1394;
+  yy1396:
     p = marker;
     if (yyaccept == 0) {
-      goto yy1383;
+      goto yy1389;
     } else {
-      goto yy1401;
+      goto yy1407;
     }
-  yy1391:
+  yy1397:
     yych = *++p;
     if (yych <= 0x9F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0xBF)
-      goto yy1389;
-    goto yy1390;
-  yy1392:
+      goto yy1395;
+    goto yy1396;
+  yy1398:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0xBF)
-      goto yy1389;
-    goto yy1390;
-  yy1393:
+      goto yy1395;
+    goto yy1396;
+  yy1399:
     yych = *++p;
     if (yych <= 0x8F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0xBF)
-      goto yy1392;
-    goto yy1390;
-  yy1394:
+      goto yy1398;
+    goto yy1396;
+  yy1400:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0xBF)
-      goto yy1392;
-    goto yy1390;
-  yy1395:
+      goto yy1398;
+    goto yy1396;
+  yy1401:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0x8F)
-      goto yy1392;
-    goto yy1390;
-  yy1396:
+      goto yy1398;
+    goto yy1396;
+  yy1402:
     yych = *++p;
     if (yych <= 0x7F)
-      goto yy1390;
+      goto yy1396;
     if (yych <= 0x9F)
-      goto yy1389;
-    goto yy1390;
-  yy1397:
+      goto yy1395;
+    goto yy1396;
+  yy1403:
     yych = *++p;
     if (yych == 'L')
-      goto yy1398;
+      goto yy1404;
     if (yych != 'l')
-      goto yy1390;
-  yy1398:
+      goto yy1396;
+  yy1404:
     yych = *++p;
     if (yych == 'E')
-      goto yy1399;
+      goto yy1405;
     if (yych != 'e')
-      goto yy1390;
-  yy1399:
+      goto yy1396;
+  yy1405:
     yych = *++p;
     if (yych != ':')
-      goto yy1390;
-  yy1400:
+      goto yy1396;
+  yy1406:
     ++p;
-  yy1401 : { return (bufsize_t)(p - start); }
-  yy1402:
+  yy1407 : { return (bufsize_t)(p - start); }
+  yy1408:
     yych = *++p;
     if (yych == 'S')
-      goto yy1403;
+      goto yy1409;
     if (yych != 's')
-      goto yy1390;
-  yy1403:
+      goto yy1396;
+  yy1409:
     yych = *++p;
     if (yych == 'C')
-      goto yy1404;
+      goto yy1410;
     if (yych != 'c')
-      goto yy1390;
-  yy1404:
+      goto yy1396;
+  yy1410:
     yych = *++p;
     if (yych == 'R')
-      goto yy1405;
+      goto yy1411;
     if (yych != 'r')
-      goto yy1390;
-  yy1405:
+      goto yy1396;
+  yy1411:
     yych = *++p;
     if (yych == 'I')
-      goto yy1406;
+      goto yy1412;
     if (yych != 'i')
-      goto yy1390;
-  yy1406:
+      goto yy1396;
+  yy1412:
     yych = *++p;
     if (yych == 'P')
-      goto yy1407;
+      goto yy1413;
     if (yych != 'p')
-      goto yy1390;
-  yy1407:
+      goto yy1396;
+  yy1413:
     yych = *++p;
     if (yych == 'T')
-      goto yy1408;
+      goto yy1414;
     if (yych != 't')
-      goto yy1390;
-  yy1408:
+      goto yy1396;
+  yy1414:
     yych = *++p;
     if (yych == ':')
-      goto yy1400;
-    goto yy1390;
-  yy1409:
+      goto yy1406;
+    goto yy1396;
+  yy1415:
     yych = *++p;
     if (yych == 'V')
-      goto yy1410;
+      goto yy1416;
     if (yych != 'v')
-      goto yy1390;
-  yy1410:
+      goto yy1396;
+  yy1416:
     yych = *++p;
     if (yych == 'A')
-      goto yy1411;
+      goto yy1417;
     if (yych != 'a')
-      goto yy1390;
-  yy1411:
+      goto yy1396;
+  yy1417:
     yych = *++p;
     if (yych == 'S')
-      goto yy1412;
+      goto yy1418;
     if (yych != 's')
-      goto yy1390;
-  yy1412:
+      goto yy1396;
+  yy1418:
     yych = *++p;
     if (yych == 'C')
-      goto yy1413;
+      goto yy1419;
     if (yych != 'c')
-      goto yy1390;
-  yy1413:
+      goto yy1396;
+  yy1419:
     yych = *++p;
     if (yych == 'R')
-      goto yy1414;
+      goto yy1420;
     if (yych != 'r')
-      goto yy1390;
-  yy1414:
+      goto yy1396;
+  yy1420:
     yych = *++p;
     if (yych == 'I')
-      goto yy1415;
+      goto yy1421;
     if (yych != 'i')
-      goto yy1390;
-  yy1415:
+      goto yy1396;
+  yy1421:
     yych = *++p;
     if (yych == 'P')
-      goto yy1416;
+      goto yy1422;
     if (yych != 'p')
-      goto yy1390;
-  yy1416:
+      goto yy1396;
+  yy1422:
     yych = *++p;
     if (yych == 'T')
-      goto yy1417;
+      goto yy1423;
     if (yych != 't')
-      goto yy1390;
-  yy1417:
+      goto yy1396;
+  yy1423:
     yych = *++p;
     if (yych == ':')
-      goto yy1400;
-    goto yy1390;
-  yy1418:
+      goto yy1406;
+    goto yy1396;
+  yy1424:
     yych = *++p;
     if (yych == 'T')
-      goto yy1419;
+      goto yy1425;
     if (yych != 't')
-      goto yy1390;
-  yy1419:
+      goto yy1396;
+  yy1425:
     yych = *++p;
     if (yych == 'A')
-      goto yy1420;
+      goto yy1426;
     if (yych != 'a')
-      goto yy1390;
-  yy1420:
+      goto yy1396;
+  yy1426:
     yych = *++p;
     if (yych != ':')
-      goto yy1390;
+      goto yy1396;
     yyaccept = 1;
     yych = *(marker = ++p);
     if (yych == 'I')
-      goto yy1422;
+      goto yy1428;
     if (yych != 'i')
-      goto yy1401;
-  yy1422:
+      goto yy1407;
+  yy1428:
     yych = *++p;
     if (yych == 'M')
-      goto yy1423;
+      goto yy1429;
     if (yych != 'm')
-      goto yy1390;
-  yy1423:
+      goto yy1396;
+  yy1429:
     yych = *++p;
     if (yych == 'A')
-      goto yy1424;
+      goto yy1430;
     if (yych != 'a')
-      goto yy1390;
-  yy1424:
+      goto yy1396;
+  yy1430:
     yych = *++p;
     if (yych == 'G')
-      goto yy1425;
+      goto yy1431;
     if (yych != 'g')
-      goto yy1390;
-  yy1425:
+      goto yy1396;
+  yy1431:
     yych = *++p;
     if (yych == 'E')
-      goto yy1426;
+      goto yy1432;
     if (yych != 'e')
-      goto yy1390;
-  yy1426:
+      goto yy1396;
+  yy1432:
     yych = *++p;
     if (yych != '/')
-      goto yy1390;
+      goto yy1396;
     yych = *++p;
     if (yych <= 'W') {
       if (yych <= 'J') {
         if (yych == 'G')
-          goto yy1429;
+          goto yy1435;
         if (yych <= 'I')
-          goto yy1390;
-        goto yy1430;
+          goto yy1396;
+        goto yy1436;
       } else {
         if (yych == 'P')
-          goto yy1428;
+          goto yy1434;
         if (yych <= 'V')
-          goto yy1390;
-        goto yy1431;
+          goto yy1396;
+        goto yy1437;
       }
     } else {
       if (yych <= 'j') {
         if (yych == 'g')
-          goto yy1429;
+          goto yy1435;
         if (yych <= 'i')
-          goto yy1390;
-        goto yy1430;
+          goto yy1396;
+        goto yy1436;
       } else {
         if (yych <= 'p') {
           if (yych <= 'o')
-            goto yy1390;
+            goto yy1396;
         } else {
           if (yych == 'w')
-            goto yy1431;
-          goto yy1390;
+            goto yy1437;
+          goto yy1396;
         }
       }
     }
-  yy1428:
+  yy1434:
     yych = *++p;
     if (yych == 'N')
-      goto yy1439;
+      goto yy1445;
     if (yych == 'n')
-      goto yy1439;
-    goto yy1390;
-  yy1429:
+      goto yy1445;
+    goto yy1396;
+  yy1435:
     yych = *++p;
     if (yych == 'I')
-      goto yy1438;
+      goto yy1444;
     if (yych == 'i')
-      goto yy1438;
-    goto yy1390;
-  yy1430:
+      goto yy1444;
+    goto yy1396;
+  yy1436:
     yych = *++p;
     if (yych == 'P')
-      goto yy1436;
+      goto yy1442;
     if (yych == 'p')
-      goto yy1436;
-    goto yy1390;
-  yy1431:
+      goto yy1442;
+    goto yy1396;
+  yy1437:
     yych = *++p;
     if (yych == 'E')
-      goto yy1432;
+      goto yy1438;
     if (yych != 'e')
-      goto yy1390;
-  yy1432:
+      goto yy1396;
+  yy1438:
     yych = *++p;
     if (yych == 'B')
-      goto yy1433;
+      goto yy1439;
     if (yych != 'b')
-      goto yy1390;
-  yy1433:
+      goto yy1396;
+  yy1439:
     yych = *++p;
     if (yych == 'P')
-      goto yy1434;
+      goto yy1440;
     if (yych != 'p')
-      goto yy1390;
-  yy1434:
+      goto yy1396;
+  yy1440:
     ++p;
     { return 0; }
-  yy1436:
+  yy1442:
     yych = *++p;
     if (yych == 'E')
-      goto yy1437;
+      goto yy1443;
     if (yych != 'e')
-      goto yy1390;
-  yy1437:
+      goto yy1396;
+  yy1443:
     yych = *++p;
     if (yych == 'G')
-      goto yy1434;
+      goto yy1440;
     if (yych == 'g')
-      goto yy1434;
-    goto yy1390;
-  yy1438:
+      goto yy1440;
+    goto yy1396;
+  yy1444:
     yych = *++p;
     if (yych == 'F')
-      goto yy1434;
+      goto yy1440;
     if (yych == 'f')
-      goto yy1434;
-    goto yy1390;
-  yy1439:
+      goto yy1440;
+    goto yy1396;
+  yy1445:
     ++p;
     if ((yych = *p) == 'G')
-      goto yy1434;
+      goto yy1440;
     if (yych == 'g')
-      goto yy1434;
-    goto yy1390;
+      goto yy1440;
+    goto yy1396;
   }
 }