packages feed

cmark-gfm 0.2.5 → 0.2.6

raw patch · 30 files changed

+14846/−10981 lines, 30 filesdep ~bytestringdep ~textPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: bytestring, text

API changes (from Hackage documentation)

Files

cbits/arena.c view
@@ -68,15 +68,16 @@   const size_t align = sizeof(size_t) - 1;   sz = (sz + align) & ~align; +  struct arena_chunk *chunk;   if (sz > A->sz) {-    A->prev = alloc_arena_chunk(sz, A->prev);-    return (uint8_t *) A->prev->ptr + sizeof(size_t);-  }-  if (sz > A->sz - A->used) {-    A = alloc_arena_chunk(A->sz + A->sz / 2, A);+    A->prev = chunk = alloc_arena_chunk(sz, A->prev);+  } else if (sz > A->sz - A->used) {+    A = chunk = alloc_arena_chunk(A->sz + A->sz / 2, A);+  } else {+    chunk = A;   }-  void *ptr = (uint8_t *) A->ptr + A->used;-  A->used += sz;+  void *ptr = (uint8_t *) chunk->ptr + chunk->used;+  chunk->used += sz;   *((size_t *) ptr) = sz - sizeof(size_t);   return (uint8_t *) ptr + sizeof(size_t); }@@ -98,6 +99,6 @@  cmark_mem CMARK_ARENA_MEM_ALLOCATOR = {arena_calloc, arena_realloc, arena_free}; -cmark_mem *cmark_get_arena_mem_allocator() {+cmark_mem *cmark_get_arena_mem_allocator(void) {   return &CMARK_ARENA_MEM_ALLOCATOR; }
cbits/autolink.c view
@@ -2,6 +2,7 @@ #include <parser.h> #include <string.h> #include <utf8.h>+#include <stddef.h>  #if defined(_WIN32) #define strncasecmp _strnicmp@@ -35,44 +36,25 @@ }  static size_t autolink_delim(uint8_t *data, size_t link_end) {-  uint8_t cclose, copen;   size_t i;+  size_t closing = 0;+  size_t opening = 0; -  for (i = 0; i < link_end; ++i)-    if (data[i] == '<') {+  for (i = 0; i < link_end; ++i) {+    const uint8_t c = data[i];+    if (c == '<') {       link_end = i;       break;+    } else if (c == '(') {+      opening++;+    } else if (c == ')') {+      closing++;     }+  }    while (link_end > 0) {-    cclose = data[link_end - 1];--    switch (cclose) {+    switch (data[link_end - 1]) {     case ')':-      copen = '(';-      break;-    default:-      copen = 0;-    }--    if (strchr("?!.,:*_~'\"", data[link_end - 1]) != NULL)-      link_end--;--    else if (data[link_end - 1] == ';') {-      size_t new_end = link_end - 2;--      while (new_end > 0 && cmark_isalpha(data[new_end]))-        new_end--;--      if (new_end < link_end - 2 && data[new_end] == '&')-        link_end = new_end;-      else-        link_end--;-    } else if (copen != 0) {-      size_t closing = 0;-      size_t opening = 0;-      i = 0;-       /* Allow any number of matching brackets (as recognised in copen/cclose)        * at the end of the URL.  If there is a greater number of closing        * brackets than opening ones, we remove one character from the end of@@ -80,34 +62,52 @@        *        * Examples (input text => output linked portion):        *-       *	http://www.pokemon.com/Pikachu_(Electric)-       *		=> http://www.pokemon.com/Pikachu_(Electric)+       *        http://www.pokemon.com/Pikachu_(Electric)+       *                => http://www.pokemon.com/Pikachu_(Electric)        *-       *	http://www.pokemon.com/Pikachu_((Electric)-       *		=> http://www.pokemon.com/Pikachu_((Electric)+       *        http://www.pokemon.com/Pikachu_((Electric)+       *                => http://www.pokemon.com/Pikachu_((Electric)        *-       *	http://www.pokemon.com/Pikachu_(Electric))-       *		=> http://www.pokemon.com/Pikachu_(Electric)+       *        http://www.pokemon.com/Pikachu_(Electric))+       *                => http://www.pokemon.com/Pikachu_(Electric)        *-       *	http://www.pokemon.com/Pikachu_((Electric))-       *		=> http://www.pokemon.com/Pikachu_((Electric))+       *        http://www.pokemon.com/Pikachu_((Electric))+       *                => http://www.pokemon.com/Pikachu_((Electric))        */--      while (i < link_end) {-        if (data[i] == copen)-          opening++;-        else if (data[i] == cclose)-          closing++;--        i++;+      if (closing <= opening) {+        return link_end;       }+      closing--;+      link_end--;+      break;+    case '?':+    case '!':+    case '.':+    case ',':+    case ':':+    case '*':+    case '_':+    case '~':+    case '\'':+    case '"':+      link_end--;+      break;+    case ';': {+      size_t new_end = link_end - 2; -      if (closing <= opening)-        break;+      while (new_end > 0 && cmark_isalpha(data[new_end]))+        new_end--; -      link_end--;-    } else+      if (new_end < link_end - 2 && data[new_end] == '&')+        link_end = new_end;+      else+        link_end--;       break;+    }++    default:+      return link_end;+    }   }    return link_end;@@ -116,7 +116,20 @@ static size_t check_domain(uint8_t *data, size_t size, int allow_short) {   size_t i, np = 0, uscore1 = 0, uscore2 = 0; +  /* The purpose of this code is to reject urls that contain an underscore+   * in one of the last two segments. Examples:+   *+   *   www.xxx.yyy.zzz     autolinked+   *   www.xxx.yyy._zzz    not autolinked+   *   www.xxx._yyy.zzz    not autolinked+   *   www._xxx.yyy.zzz    autolinked+   *+   * The reason is that domain names are allowed to include underscores,+   * but host names are not. See: https://stackoverflow.com/a/2183140+   */   for (i = 1; i < size - 1; i++) {+    if (data[i] == '\\' && i < size - 2)+      i++;     if (data[i] == '_')       uscore2++;     else if (data[i] == '.') {@@ -127,8 +140,17 @@       break;   } -  if (uscore1 > 0 || uscore2 > 0)-    return 0;+  if (uscore1 > 0 || uscore2 > 0) {+    /* If the url is very long then accept it despite the underscores,+     * to avoid quadratic behavior causing a denial of service. See:+     * https://github.com/github/cmark-gfm/security/advisories/GHSA-29g3-96g3-jg6c+     * Reasonable urls are unlikely to have more than 10 segments, so+     * this extra condition shouldn't have any impact on normal usage.+     */+    if (np <= 10) {+      return 0;+    }+  }    if (allow_short) {     /* We don't need a valid domain in the strict sense (with@@ -165,7 +187,7 @@   if (link_end == 0)     return NULL; -  while (link_end < size && !cmark_isspace(data[link_end]))+  while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<')     link_end++;    link_end = autolink_delim(data, link_end);@@ -225,7 +247,7 @@     return 0;    link_end += domain_len;-  while (link_end < size && !cmark_isspace(data[link_end]))+  while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<')     link_end++;    link_end = autolink_delim(data, link_end);@@ -245,7 +267,12 @@   cmark_node *text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);   text->as.literal = url;   cmark_node_append_child(node, text);+  +  node->start_line = text->start_line = node->end_line = text->end_line = cmark_inline_parser_get_line(inline_parser); +  node->start_column = text->start_column = max_rewind - rewind;+  node->end_column = text->end_column = cmark_inline_parser_get_column(inline_parser) - 1;+   return node; } @@ -269,142 +296,167 @@   // inline was finished in inlines.c. } -static bool validate_protocol(char protocol[], uint8_t *data, int rewind) {+static bool validate_protocol(const char protocol[], uint8_t *data, size_t rewind, size_t max_rewind) {   size_t len = strlen(protocol); +  if (len > (max_rewind - rewind)) {+    return false;+  }+   // Check that the protocol matches-  for (int i = 1; i <= len; i++) {-    if (data[-rewind - i] != protocol[len - i]) {-      return false;-    }+  if (memcmp(data - rewind - len, protocol, len) != 0) {+    return false;   } -  char prev_char = data[-rewind - len - 1];+  if (len == (max_rewind - rewind)) {+    return true;+  } +  char prev_char = data[-((ptrdiff_t)rewind) - len - 1];+   // Make sure the character before the protocol is non-alphanumeric   return !cmark_isalnum(prev_char); } -static void postprocess_text(cmark_parser *parser, cmark_node *text, int offset, int depth) {-  // postprocess_text can recurse very deeply if there is a very long line of-  // '@' only.  Stop at a reasonable depth to ensure it cannot crash.-  if (depth > 1000) return;--  size_t link_end;-  uint8_t *data = text->as.literal.data,-    *at;-  size_t size = text->as.literal.len;-  bool auto_mailto = true;-  bool is_xmpp = false;-  int rewind, max_rewind,-      nb = 0, np = 0, ns = 0;--  if (offset < 0 || (size_t)offset >= size)-    return;+static void postprocess_text(cmark_parser *parser, cmark_node *text) {+  size_t start = 0;+  size_t offset = 0;+  // `text` is going to be split into a list of nodes containing shorter segments+  // of text, so we detach the memory buffer from text and use `cmark_chunk_dup` to+  // create references to it. Later, `cmark_chunk_to_cstr` is used to convert+  // the references into allocated buffers. The detached buffer is freed before we+  // return.+  cmark_chunk detached_chunk = text->as.literal;+  text->as.literal = cmark_chunk_dup(&detached_chunk, 0, detached_chunk.len); -  data += offset;-  size -= offset;+  uint8_t *data = text->as.literal.data;+  size_t remaining = text->as.literal.len; -  at = (uint8_t *)memchr(data, '@', size);-  if (!at)-    return;+  while (true) {+    size_t link_end;+    uint8_t *at;+    bool auto_mailto = true;+    bool is_xmpp = false;+    size_t rewind;+    size_t max_rewind;+    size_t np = 0; -  max_rewind = (int)(at - data);-  data += max_rewind;-  size -= max_rewind;+    if (offset >= remaining)+      break; -  for (rewind = 0; rewind < max_rewind; ++rewind) {-    uint8_t c = data[-rewind - 1];+    at = (uint8_t *)memchr(data + start + offset, '@', remaining - offset);+    if (!at)+      break; -    if (cmark_isalnum(c))-      continue;+    max_rewind = at - (data + start + offset); -    if (strchr(".+-_", c) != NULL)-      continue;+found_at:+    for (rewind = 0; rewind < max_rewind; ++rewind) {+      uint8_t c = data[start + offset + max_rewind - rewind - 1]; -    if (strchr(":", c) != NULL) {-      if (validate_protocol("mailto:", data, rewind)) {-        auto_mailto = false;+      if (cmark_isalnum(c))         continue;-      } -      if (validate_protocol("xmpp:", data, rewind)) {-        auto_mailto = false;-        is_xmpp = true;+      if (strchr(".+-_", c) != NULL)         continue;++      if (strchr(":", c) != NULL) {+        if (validate_protocol("mailto:", data + start + offset + max_rewind, rewind, max_rewind)) {+          auto_mailto = false;+          continue;+        }++        if (validate_protocol("xmpp:", data + start + offset + max_rewind, rewind, max_rewind)) {+          auto_mailto = false;+          is_xmpp = true;+          continue;+        }       }++      break;     } -    break;-  }+    if (rewind == 0) {+      offset += max_rewind + 1;+      continue;+    } -  if (rewind == 0 || ns > 0) {-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);-    return;-  }+    assert(data[start + offset + max_rewind] == '@');+    for (link_end = 1; link_end < remaining - offset - max_rewind; ++link_end) {+      uint8_t c = data[start + offset + max_rewind + link_end]; -  for (link_end = 0; link_end < size; ++link_end) {-    uint8_t c = data[link_end];+      if (cmark_isalnum(c))+        continue; -    if (cmark_isalnum(c))-      continue;+      if (c == '@') {+        // Found another '@', so go back and try again with an updated offset and max_rewind.+        offset += max_rewind + 1;+        max_rewind = link_end - 1;+        goto found_at;+      } else if (c == '.' && link_end < remaining - offset - max_rewind - 1 &&+               cmark_isalnum(data[start + offset + max_rewind + link_end + 1]))+        np++;+      else if (c == '/' && is_xmpp)+        continue;+      else if (c != '-' && c != '_')+        break;+    } -    if (c == '@')-      nb++;-    else if (c == '.' && link_end < size - 1 && cmark_isalnum(data[link_end + 1]))-      np++;-    else if (c == '/' && is_xmpp)+    if (link_end < 2 || np == 0 ||+        (!cmark_isalpha(data[start + offset + max_rewind + link_end - 1]) &&+         data[start + offset + max_rewind + link_end - 1] != '.')) {+      offset += max_rewind + link_end;       continue;-    else if (c != '-' && c != '_')-      break;-  }+    } -  if (link_end < 2 || nb != 1 || np == 0 ||-      (!cmark_isalpha(data[link_end - 1]) && data[link_end - 1] != '.')) {-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);-    return;-  }+    link_end = autolink_delim(data + start + offset + max_rewind, link_end); -  link_end = autolink_delim(data, link_end);+    if (link_end == 0) {+      offset += max_rewind + 1;+      continue;+    } -  if (link_end == 0) {-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);-    return;-  }+    cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem);+    cmark_strbuf buf;+    cmark_strbuf_init(parser->mem, &buf, 10);+    if (auto_mailto)+      cmark_strbuf_puts(&buf, "mailto:");+    cmark_strbuf_put(&buf, data + start + offset + max_rewind - rewind, (bufsize_t)(link_end + rewind));+    link_node->as.link.url = cmark_chunk_buf_detach(&buf); -  cmark_chunk_to_cstr(parser->mem, &text->as.literal);+    cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);+    cmark_chunk email = cmark_chunk_dup(+      &detached_chunk,+      (bufsize_t)(start + offset + max_rewind - rewind),+      (bufsize_t)(link_end + rewind));+    cmark_chunk_to_cstr(parser->mem, &email);+    link_text->as.literal = email;+    cmark_node_append_child(link_node, link_text); -  cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem);-  cmark_strbuf buf;-  cmark_strbuf_init(parser->mem, &buf, 10);-  if (auto_mailto)-    cmark_strbuf_puts(&buf, "mailto:");-  cmark_strbuf_put(&buf, data - rewind, (bufsize_t)(link_end + rewind));-  link_node->as.link.url = cmark_chunk_buf_detach(&buf);+    cmark_node_insert_after(text, link_node); -  cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);-  cmark_chunk email = cmark_chunk_dup(-      &text->as.literal,-      offset + max_rewind - rewind,-      (bufsize_t)(link_end + rewind));-  cmark_chunk_to_cstr(parser->mem, &email);-  link_text->as.literal = email;-  cmark_node_append_child(link_node, link_text);+    cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);+    post->as.literal = cmark_chunk_dup(&detached_chunk,+                                       (bufsize_t)(start + offset + max_rewind + link_end),+                                       (bufsize_t)(remaining - offset - max_rewind - link_end)); -  cmark_node_insert_after(text, link_node);+    cmark_node_insert_after(link_node, post); -  cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);-  post->as.literal = cmark_chunk_dup(&text->as.literal,-    (bufsize_t)(offset + max_rewind + link_end),-    (bufsize_t)(size - link_end));-  cmark_chunk_to_cstr(parser->mem, &post->as.literal);+    text->as.literal = cmark_chunk_dup(&detached_chunk, (bufsize_t)start, (bufsize_t)(offset + max_rewind - rewind));+    cmark_chunk_to_cstr(parser->mem, &text->as.literal); -  cmark_node_insert_after(link_node, post);+    text = post;+    start += offset + max_rewind + link_end;+    remaining -= offset + max_rewind + link_end;+    offset = 0;+  } -  text->as.literal.len = offset + max_rewind - rewind;-  text->as.literal.data[text->as.literal.len] = 0;+  // Convert the reference to allocated memory.+  assert(!text->as.literal.alloc);+  cmark_chunk_to_cstr(parser->mem, &text->as.literal); -  postprocess_text(parser, post, 0, depth + 1);+  // Free the detached buffer.+  cmark_chunk_free(parser->mem, &detached_chunk); }  static cmark_node *postprocess(cmark_syntax_extension *ext, cmark_parser *parser, cmark_node *root) {@@ -431,7 +483,7 @@     }      if (ev == CMARK_EVENT_ENTER && node->type == CMARK_NODE_TEXT) {-      postprocess_text(parser, node, 0, /*depth*/0);+      postprocess_text(parser, node);     }   } 
cbits/blocks.c view
@@ -8,6 +8,7 @@ #include <stdlib.h> #include <assert.h> #include <stdio.h>+#include <limits.h>  #include "cmark_ctype.h" #include "syntax_extension.h"@@ -26,6 +27,14 @@ #define CODE_INDENT 4 #define TAB_STOP 4 +/**+ * Very deeply nested lists can cause quadratic performance issues.+ * This constant is used in open_new_blocks() to limit the nesting+ * depth. It is unlikely that a non-contrived markdown document will+ * be nested this deeply.+ */+#define MAX_LIST_DEPTH 100+ #ifndef MIN #define MIN(x, y) ((x < y) ? x : y) #endif@@ -639,6 +648,14 @@   }    finalize(parser, parser->root);++  // Limit total size of extra content created from reference links to+  // document size to avoid superlinear growth. Always allow 100KB.+  if (parser->total_size > 100000)+    parser->refmap->max_ref_size = parser->total_size;+  else+    parser->refmap->max_ref_size = 100000;+   process_inlines(parser, parser->refmap, parser->options);   if (parser->options & CMARK_OPT_FOOTNOTES)     process_footnotes(parser);@@ -698,6 +715,11 @@   const unsigned char *end = buffer + len;   static const uint8_t repl[] = {239, 191, 189}; +  if (len > UINT_MAX - parser->total_size)+    parser->total_size = UINT_MAX;+  else+    parser->total_size += len;+   if (parser->last_buffer_ended_with_cr && *buffer == '\n') {     // skip NL if last buffer ended with CR ; see #117     buffer++;@@ -1105,10 +1127,11 @@   bool has_content;   int save_offset;   int save_column;+  size_t depth = 0;    while (cont_type != CMARK_NODE_CODE_BLOCK &&          cont_type != CMARK_NODE_HTML_BLOCK) {-+    depth++;     S_find_first_nonspace(parser, input);     indented = parser->indent >= CODE_INDENT; @@ -1194,15 +1217,17 @@                              parser->first_nonspace + 1);       S_advance_offset(parser, input, input->len - 1 - parser->offset, false);     } else if (!indented &&-               parser->options & CMARK_OPT_FOOTNOTES &&+               (parser->options & CMARK_OPT_FOOTNOTES) &&+               depth < MAX_LIST_DEPTH &&                (matched = scan_footnote_definition(input, parser->first_nonspace))) {       cmark_chunk c = cmark_chunk_dup(input, parser->first_nonspace + 2, matched - 2);-      cmark_chunk_to_cstr(parser->mem, &c);        while (c.data[c.len - 1] != ']')         --c.len;       --c.len; +      cmark_chunk_to_cstr(parser->mem, &c);+       S_advance_offset(parser, input, parser->first_nonspace + matched - parser->offset, false);       *container = add_child(parser, *container, CMARK_NODE_FOOTNOTE_DEFINITION, parser->first_nonspace + matched + 1);       (*container)->as.literal = c;@@ -1210,6 +1235,7 @@       (*container)->internal_offset = matched;     } else if ((!indented || cont_type == CMARK_NODE_LIST) && 	       parser->indent < 4 &&+               depth < MAX_LIST_DEPTH &&                (matched = parse_list_marker(                     parser->mem, input, parser->first_nonspace,                     (*container)->type == CMARK_NODE_PARAGRAPH, &data))) {
cbits/cmark-gfm-core-extensions.h view
@@ -6,45 +6,45 @@ #endif  #include "cmark-gfm-extension_api.h"-#include "cmark-gfm-extensions_export.h"-#include "config.h" // for bool+#include "cmark-gfm_export.h"+#include <stdbool.h> #include <stdint.h> -CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT void cmark_gfm_core_extensions_ensure_registered(void); -CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT uint16_t cmark_gfm_extensions_get_table_columns(cmark_node *node);  /** Sets the number of columns for the table, returning 1 on success and 0 on error.  */-CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT int cmark_gfm_extensions_set_table_columns(cmark_node *node, uint16_t n_columns); -CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT uint8_t *cmark_gfm_extensions_get_table_alignments(cmark_node *node);  /** Sets the alignments for the table, returning 1 on success and 0 on error.  */-CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT int cmark_gfm_extensions_set_table_alignments(cmark_node *node, uint16_t ncols, uint8_t *alignments); -CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT int cmark_gfm_extensions_get_table_row_is_header(cmark_node *node);  /** Sets whether the node is a table header row, returning 1 on success and 0 on error.  */-CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT int cmark_gfm_extensions_set_table_row_is_header(cmark_node *node, int is_header); -CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT bool cmark_gfm_extensions_get_tasklist_item_checked(cmark_node *node); /* For backwards compatibility */ #define cmark_gfm_extensions_tasklist_is_checked cmark_gfm_extensions_get_tasklist_item_checked  /** Sets whether a tasklist item is "checked" (completed), returning 1 on success and 0 on error.  */-CMARK_GFM_EXTENSIONS_EXPORT+CMARK_GFM_EXPORT int cmark_gfm_extensions_set_tasklist_item_checked(cmark_node *node, bool is_checked);  #ifdef __cplusplus
cbits/cmark-gfm-extension_api.h view
@@ -114,6 +114,7 @@   struct delimiter *previous;   struct delimiter *next;   cmark_node *inl_text;+  bufsize_t position;   bufsize_t length;   unsigned char delim_char;   int can_open;
− cbits/cmark-gfm-extensions_export.h
@@ -1,42 +0,0 @@--#ifndef CMARK_GFM_EXTENSIONS_EXPORT_H-#define CMARK_GFM_EXTENSIONS_EXPORT_H--#ifdef CMARK_GFM_EXTENSIONS_STATIC_DEFINE-#  define CMARK_GFM_EXTENSIONS_EXPORT-#  define CMARK_GFM_EXTENSIONS_NO_EXPORT-#else-#  ifndef CMARK_GFM_EXTENSIONS_EXPORT-#    ifdef libcmark_gfm_extensions_EXPORTS-        /* We are building this library */-#      define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((visibility("default")))-#    else-        /* We are using this library */-#      define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((visibility("default")))-#    endif-#  endif--#  ifndef CMARK_GFM_EXTENSIONS_NO_EXPORT-#    define CMARK_GFM_EXTENSIONS_NO_EXPORT __attribute__((visibility("hidden")))-#  endif-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED-#  define CMARK_GFM_EXTENSIONS_DEPRECATED __attribute__ ((__deprecated__))-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT-#  define CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT CMARK_GFM_EXTENSIONS_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT-#  define CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT CMARK_GFM_EXTENSIONS_NO_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED-#endif--#if 0 /* DEFINE_NO_DEPRECATED */-#  ifndef CMARK_GFM_EXTENSIONS_NO_DEPRECATED-#    define CMARK_GFM_EXTENSIONS_NO_DEPRECATED-#  endif-#endif--#endif /* CMARK_GFM_EXTENSIONS_EXPORT_H */
cbits/cmark-gfm.h view
@@ -111,13 +111,13 @@  * realloc and free.  */ CMARK_GFM_EXPORT-cmark_mem *cmark_get_default_mem_allocator();+cmark_mem *cmark_get_default_mem_allocator(void);  /** An arena allocator; uses system calloc to allocate large  * slabs of memory.  Memory in these slabs is not reused at all.  */ CMARK_GFM_EXPORT-cmark_mem *cmark_get_arena_mem_allocator();+cmark_mem *cmark_get_arena_mem_allocator(void);  /** Resets the arena allocator, quickly returning all used memory  * to the operating system.@@ -225,6 +225,11 @@  */ CMARK_GFM_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); +/** Returns the footnote reference of 'node', or NULL if 'node' doesn't have a+ * footnote reference.+ */+CMARK_GFM_EXPORT cmark_node *cmark_node_parent_footnote_def(cmark_node *node);+ /**  * ## Iterator  *@@ -407,6 +412,17 @@ /** Sets the "tightness" of a list.  Returns 1 on success, 0 on failure.  */ CMARK_GFM_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight);++/**+ * Returns item index of 'node'. This is only used when rendering output+ * formats such as commonmark, which need to output the index. It is not+ * required for formats such as html or latex.+ */+CMARK_GFM_EXPORT int cmark_node_get_item_index(cmark_node *node);++/** Sets item index of 'node'. Returns 1 on success, 0 on failure.+ */+CMARK_GFM_EXPORT int cmark_node_set_item_index(cmark_node *node, int idx);  /** Returns the info string from a fenced code block.  */
cbits/cmark-gfm_version.h view
@@ -1,7 +1,7 @@ #ifndef CMARK_GFM_VERSION_H #define CMARK_GFM_VERSION_H -#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6)-#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6"+#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 13)+#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.13"  #endif
cbits/cmark.c view
@@ -10,9 +10,9 @@ cmark_node_type CMARK_NODE_LAST_BLOCK = CMARK_NODE_FOOTNOTE_DEFINITION; cmark_node_type CMARK_NODE_LAST_INLINE = CMARK_NODE_FOOTNOTE_REFERENCE; -int cmark_version() { return CMARK_GFM_VERSION; }+int cmark_version(void) { return CMARK_GFM_VERSION; } -const char *cmark_version_string() { return CMARK_GFM_VERSION_STRING; }+const char *cmark_version_string(void) { return CMARK_GFM_VERSION_STRING; }  static void *xcalloc(size_t nmem, size_t size) {   void *ptr = calloc(nmem, size);@@ -38,7 +38,7 @@  cmark_mem CMARK_DEFAULT_MEM_ALLOCATOR = {xcalloc, xrealloc, xfree}; -cmark_mem *cmark_get_default_mem_allocator() {+cmark_mem *cmark_get_default_mem_allocator(void) {   return &CMARK_DEFAULT_MEM_ALLOCATOR; } 
cbits/commonmark.c view
@@ -153,23 +153,8 @@                   link_text->as.literal.len) == 0); } -// if node is a block node, returns node.-// otherwise returns first block-level node that is an ancestor of node.-// if there is no block-level ancestor, returns NULL.-static cmark_node *get_containing_block(cmark_node *node) {-  while (node) {-    if (CMARK_NODE_BLOCK_P(node)) {-      return node;-    } else {-      node = node->parent;-    }-  }-  return NULL;-}- static int S_render_node(cmark_renderer *renderer, cmark_node *node,                          cmark_event_type ev_type, int options) {-  cmark_node *tmp;   int list_number;   cmark_delim_type list_delim;   int numticks;@@ -180,7 +165,7 @@   char fencechar[2] = {'\0', '\0'};   size_t info_len, code_len;   char listmarker[LISTMARKER_SIZE];-  char *emph_delim;+  const char *emph_delim;   bool first_in_list_item;   bufsize_t marker_width;   bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) &&@@ -189,14 +174,17 @@   // Don't adjust tight list status til we've started the list.   // Otherwise we loose the blank line between a paragraph and   // a following list.-  if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {-    tmp = get_containing_block(node);-    renderer->in_tight_list_item =-        tmp && // tmp might be NULL if there is no containing block-        ((tmp->type == CMARK_NODE_ITEM &&-          cmark_node_get_list_tight(tmp->parent)) ||-         (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&-          cmark_node_get_list_tight(tmp->parent->parent)));+  if (entering) {+    if (node->parent && node->parent->type == CMARK_NODE_ITEM) {+      renderer->in_tight_list_item = node->parent->parent->as.list.tight;+    }+  } else {+    if (node->type == CMARK_NODE_LIST) {+      renderer->in_tight_list_item =+        node->parent &&+        node->parent->type == CMARK_NODE_ITEM &&+        node->parent->parent->as.list.tight;+    }   }    if (node->extension && node->extension->commonmark_render_func) {@@ -234,13 +222,8 @@     if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {       marker_width = 4;     } else {-      list_number = cmark_node_get_list_start(node->parent);+      list_number = cmark_node_get_item_index(node);       list_delim = cmark_node_get_list_delim(node->parent);-      tmp = node;-      while (tmp->prev) {-        tmp = tmp->prev;-        list_number += 1;-      }       // we ensure a width of at least 4 so       // we get nice transition from single digits       // to double@@ -405,10 +388,12 @@     break;    case CMARK_NODE_STRONG:-    if (entering) {-      LIT("**");-    } else {-      LIT("**");+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {+      if (entering) {+        LIT("**");+      } else {+        LIT("**");+      }     }     break; 
cbits/html.c view
@@ -63,10 +63,16 @@   if (renderer->written_footnote_ix >= renderer->footnote_ix)     return false;   renderer->written_footnote_ix = renderer->footnote_ix;+  char m[32];+  snprintf(m, sizeof(m), "%d", renderer->written_footnote_ix);    cmark_strbuf_puts(html, "<a href=\"#fnref-");   houdini_escape_href(html, node->as.literal.data, node->as.literal.len);-  cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩</a>");+  cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"");+  cmark_strbuf_puts(html, m);+  cmark_strbuf_puts(html, "\" aria-label=\"Back to reference ");+  cmark_strbuf_puts(html, m);+  cmark_strbuf_puts(html, "\">↩</a>");    if (node->footnote.def_count > 1)   {@@ -78,8 +84,16 @@       houdini_escape_href(html, node->as.literal.data, node->as.literal.len);       cmark_strbuf_puts(html, "-");       cmark_strbuf_puts(html, n);-      cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩<sup class=\"footnote-ref\">");+      cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"");+      cmark_strbuf_puts(html, m);+      cmark_strbuf_puts(html, "-");       cmark_strbuf_puts(html, n);+      cmark_strbuf_puts(html, "\" aria-label=\"Back to reference ");+      cmark_strbuf_puts(html, m);+      cmark_strbuf_puts(html, "-");+      cmark_strbuf_puts(html, n);+      cmark_strbuf_puts(html, "\">↩<sup class=\"footnote-ref\">");+      cmark_strbuf_puts(html, n);       cmark_strbuf_puts(html, "</sup></a>");     }   }@@ -350,10 +364,12 @@     break;    case CMARK_NODE_STRONG:-    if (entering) {-      cmark_strbuf_puts(html, "<strong>");-    } else {-      cmark_strbuf_puts(html, "</strong>");+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {+      if (entering) {+        cmark_strbuf_puts(html, "<strong>");+      } else {+        cmark_strbuf_puts(html, "</strong>");+      }     }     break; 
cbits/inlines.c view
@@ -35,7 +35,6 @@  typedef struct bracket {   struct bracket *previous;-  struct delimiter *previous_delimiter;   cmark_node *inl_text;   bufsize_t position;   bool image;@@ -45,9 +44,15 @@   bool in_bracket_image1; } bracket; +#define FLAG_SKIP_HTML_CDATA        (1u << 0)+#define FLAG_SKIP_HTML_DECLARATION  (1u << 1)+#define FLAG_SKIP_HTML_PI           (1u << 2)+#define FLAG_SKIP_HTML_COMMENT      (1u << 3)+ typedef struct subject{   cmark_mem *mem;   cmark_chunk input;+  unsigned flags;   int line;   bufsize_t pos;   int block_offset;@@ -57,6 +62,7 @@   bracket *last_bracket;   bufsize_t backticks[MAXBACKTICKS + 1];   bool scanned_for_backticks;+  bool no_link_openers; } subject;  // Extensions may populate this.@@ -111,6 +117,24 @@   } } +// Like cmark_node_append_child but without costly sanity checks.+// Assumes that child was newly created.+static void append_child(cmark_node *node, cmark_node *child) {+  cmark_node *old_last_child = node->last_child;++  child->next = NULL;+  child->prev = old_last_child;+  child->parent = node;+  node->last_child = child;++  if (old_last_child) {+    old_last_child->next = child;+  } else {+    // Also set first_child if node previously had no children.+    node->first_child = child;+  }+}+ // Duplicate a chunk by creating a copy of the buffer not by reusing the // buffer like cmark_chunk_dup does. static cmark_chunk chunk_clone(cmark_mem *mem, cmark_chunk *src) {@@ -154,7 +178,7 @@   link->start_line = link->end_line = subj->line;   link->start_column = start_column + 1;   link->end_column = end_column + 1;-  cmark_node_append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url));+  append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url));   return link; } @@ -163,6 +187,7 @@   int i;   e->mem = mem;   e->input = *chunk;+  e->flags = 0;   e->line = line_number;   e->pos = 0;   e->block_offset = block_offset;@@ -174,6 +199,7 @@     e->backticks[i] = 0;   }   e->scanned_for_backticks = false;+  e->no_link_openers = true; }  static CMARK_INLINE int isbacktick(int c) { return (c == '`'); }@@ -505,6 +531,7 @@   delim->can_open = can_open;   delim->can_close = can_close;   delim->inl_text = inl_text;+  delim->position = subj->pos;   delim->length = inl_text->as.literal.len;   delim->previous = subj->last_delim;   delim->next = NULL;@@ -525,7 +552,6 @@   b->active = true;   b->inl_text = inl_text;   b->previous = subj->last_bracket;-  b->previous_delimiter = subj->last_delim;   b->position = subj->pos;   b->bracket_after = false;   if (image) {@@ -534,6 +560,9 @@     b->in_bracket_image0 = true;   }   subj->last_bracket = b;+  if (!image) {+    subj->no_link_openers = false;+  } }  // Assumes the subject has a c at the current position.@@ -640,12 +669,13 @@   return NULL; } -static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *stack_bottom) {-  delimiter *closer = subj->last_delim;+static void process_emphasis(cmark_parser *parser, subject *subj, bufsize_t stack_bottom) {+  delimiter *candidate;+  delimiter *closer = NULL;   delimiter *opener;   delimiter *old_closer;   bool opener_found;-  delimiter *openers_bottom[3][128];+  bufsize_t openers_bottom[3][128];   int i;    // initialize openers_bottom:@@ -658,8 +688,10 @@   }    // move back to first relevant delim.-  while (closer != NULL && closer->previous != stack_bottom) {-    closer = closer->previous;+  candidate = subj->last_delim;+  while (candidate != NULL && candidate->position >= stack_bottom) {+    closer = candidate;+    candidate = candidate->previous;   }    // now move forward, looking for closers, and handling each@@ -669,8 +701,8 @@       // Now look backwards for first matching opener:       opener = closer->previous;       opener_found = false;-      while (opener != NULL && opener != stack_bottom &&-             opener != openers_bottom[closer->length % 3][closer->delim_char]) {+      while (opener != NULL && opener->position >= stack_bottom &&+             opener->position >= openers_bottom[closer->length % 3][closer->delim_char]) {         if (opener->can_open && opener->delim_char == closer->delim_char) {           // interior closer of size 2 can't match opener of size 1           // or of size 1 can't match 2@@ -696,27 +728,29 @@         } else {           closer = closer->next;         }-      } else if (closer->delim_char == '\'') {+      } else if (closer->delim_char == '\'' || closer->delim_char == '"') {         cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);-        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);-        if (opener_found) {-          cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);-          opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);+        if (closer->delim_char == '\'') {+          closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);+        } else {+          closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE);         }         closer = closer->next;-      } else if (closer->delim_char == '"') {-        cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);-        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE);         if (opener_found) {           cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);-          opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);+          if (old_closer->delim_char == '\'') {+            opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);+          } else {+            opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);+          }+          remove_delimiter(subj, opener);+          remove_delimiter(subj, old_closer);         }-        closer = closer->next;       }       if (!opener_found) {         // set lower bound for future searches for openers         openers_bottom[old_closer->length % 3][old_closer->delim_char] =-		old_closer->previous;+		old_closer->position;         if (!old_closer->can_open) {           // we can remove a closer that can't be an           // opener, once we've seen there's no@@ -729,7 +763,8 @@     }   }   // free all delimiters in list until stack_bottom:-  while (subj->last_delim != NULL && subj->last_delim != stack_bottom) {+  while (subj->last_delim != NULL &&+         subj->last_delim->position >= stack_bottom) {     remove_delimiter(subj, subj->last_delim);   } }@@ -768,7 +803,8 @@   tmp = opener_inl->next;   while (tmp && tmp != closer_inl) {     tmpnext = tmp->next;-    cmark_node_append_child(emph, tmp);+    cmark_node_unlink(tmp);+    append_child(emph, tmp);     tmp = tmpnext;   }   cmark_node_insert_after(opener_inl, emph);@@ -899,7 +935,63 @@   }    // finally, try to match an html tag-  matchlen = scan_html_tag(&subj->input, subj->pos);+  if (subj->pos + 2 <= subj->input.len) {+    int c = subj->input.data[subj->pos];+    if (c == '!' && (subj->flags & FLAG_SKIP_HTML_COMMENT) == 0) {+      c = subj->input.data[subj->pos+1];+      if (c == '-' && subj->input.data[subj->pos+2] == '-') {+        if (subj->input.data[subj->pos+3] == '>') {+          matchlen = 4;+        } else if (subj->input.data[subj->pos+3] == '-' &&+                   subj->input.data[subj->pos+4] == '>') {+          matchlen = 5;+        } else {+          matchlen = scan_html_comment(&subj->input, subj->pos + 1);+          if (matchlen > 0) {+            matchlen += 1; // prefix "<"+          } else { // no match through end of input: set a flag so+                   // we don't reparse looking for -->:+            subj->flags |= FLAG_SKIP_HTML_COMMENT;+          }+        }+      } else if (c == '[') {+        if ((subj->flags & FLAG_SKIP_HTML_CDATA) == 0) {+          matchlen = scan_html_cdata(&subj->input, subj->pos + 2);+          if (matchlen > 0) {+            // The regex doesn't require the final "]]>". But if we're not at+            // the end of input, it must come after the match. Otherwise,+            // disable subsequent scans to avoid quadratic behavior.+            matchlen += 5; // prefix "![", suffix "]]>"+            if (subj->pos + matchlen > subj->input.len) {+              subj->flags |= FLAG_SKIP_HTML_CDATA;+              matchlen = 0;+            }+          }+        }+      } else if ((subj->flags & FLAG_SKIP_HTML_DECLARATION) == 0) {+        matchlen = scan_html_declaration(&subj->input, subj->pos + 1);+        if (matchlen > 0) {+          matchlen += 2; // prefix "!", suffix ">"+          if (subj->pos + matchlen > subj->input.len) {+            subj->flags |= FLAG_SKIP_HTML_DECLARATION;+            matchlen = 0;+          }+        }+      }+    } else if (c == '?') {+      if ((subj->flags & FLAG_SKIP_HTML_PI) == 0) {+        // Note that we allow an empty match.+        matchlen = scan_html_pi(&subj->input, subj->pos + 1);+        matchlen += 3; // prefix "?", suffix "?>"+        if (subj->pos + matchlen > subj->input.len) {+          subj->flags |= FLAG_SKIP_HTML_PI;+          matchlen = 0;+        }+      }+    } else {+      matchlen = scan_html_tag(&subj->input, subj->pos);+    }+  }   if (matchlen > 0) {     contents = cmark_chunk_dup(&subj->input, subj->pos - 1, matchlen + 1);     subj->pos += matchlen;@@ -1065,16 +1157,16 @@     return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]"));   } -  if (!opener->active) {+  // If we got here, we matched a potential link/image text.+  // Now we check to see if it's a link/image.+  is_image = opener->image;++  if (!is_image && subj->no_link_openers) {     // take delimiter off stack     pop_bracket(subj);     return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]"));   } -  // If we got here, we matched a potential link/image text.-  // Now we check to see if it's a link/image.-  is_image = opener->image;-   after_link_text_pos = subj->pos;    // First, look for an inline link.@@ -1193,7 +1285,7 @@       // being replacing the opening '[' text node with a `^footnote-ref]` node.       cmark_node_insert_before(opener->inl_text, fnref); -      process_emphasis(parser, subj, opener->previous_delimiter);+      process_emphasis(parser, subj, opener->position);       // sometimes, the footnote reference text gets parsed into multiple nodes       // i.e. '[^example]' parsed into '[', '^exam', 'ple]'.       // this happens for ex with the autolink extension. when the autolinker@@ -1238,42 +1330,22 @@   tmp = opener->inl_text->next;   while (tmp) {     tmpnext = tmp->next;-    cmark_node_append_child(inl, tmp);+    cmark_node_unlink(tmp);+    append_child(inl, tmp);     tmp = tmpnext;   }    // Free the bracket [:   cmark_node_free(opener->inl_text); -  process_emphasis(parser, subj, opener->previous_delimiter);+  process_emphasis(parser, subj, opener->position);   pop_bracket(subj); -  // Now, if we have a link, we also want to deactivate earlier link-  // delimiters. (This code can be removed if we decide to allow links+  // Now, if we have a link, we also want to deactivate links until+  // we get a new opener. (This code can be removed if we decide to allow links   // inside links.)   if (!is_image) {-    opener = subj->last_bracket;-    while (opener != NULL) {-      if (!opener->image) {-        if (!opener->active) {-          break;-        } else {-          opener->active = false;-        }-      }-      opener = opener->previous;-    }-    bool in_bracket_image1 = false;-    if (opener) {-      in_bracket_image1 = opener->in_bracket_image1;-    }-    bracket *opener2 = subj->last_bracket;-    while (opener2 != opener) {-      if (opener2->image) {-        opener2->in_bracket_image1 = in_bracket_image1;-      }-      opener2 = opener2->previous;-    }+    subj->no_link_openers = true;   }    return NULL;@@ -1451,7 +1523,7 @@     new_inl = make_str(subj, startpos, endpos - 1, contents);   }   if (new_inl != NULL) {-    cmark_node_append_child(parent, new_inl);+    append_child(parent, new_inl);   }    return 1;@@ -1470,7 +1542,7 @@   while (!is_eof(&subj) && parse_inline(parser, &subj, parent, options))     ; -  process_emphasis(parser, &subj, NULL);+  process_emphasis(parser, &subj, 0);   // free bracket and delim stack   while (subj.last_delim) {     remove_delimiter(&subj, subj.last_delim);
cbits/latex.c view
@@ -385,10 +385,12 @@     break;    case CMARK_NODE_STRONG:-    if (entering) {-      LIT("\\textbf{");-    } else {-      LIT("}");+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {+      if (entering) {+        LIT("\\textbf{");+      } else {+        LIT("}");+      }     }     break; 
cbits/man.c view
@@ -74,7 +74,6 @@  static int S_render_node(cmark_renderer *renderer, cmark_node *node,                          cmark_event_type ev_type, int options) {-  cmark_node *tmp;   int list_number;   bool entering = (ev_type == CMARK_EVENT_ENTER);   bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options);@@ -123,12 +122,7 @@       if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {         LIT("\\[bu] 2");       } else {-        list_number = cmark_node_get_list_start(node->parent);-        tmp = node;-        while (tmp->prev) {-          tmp = tmp->prev;-          list_number += 1;-        }+        list_number = cmark_node_get_item_index(node);         char list_number_s[LIST_NUMBER_SIZE];         snprintf(list_number_s, LIST_NUMBER_SIZE, "\"%d.\" 4", list_number);         LIT(list_number_s);@@ -225,10 +219,12 @@     break;    case CMARK_NODE_STRONG:-    if (entering) {-      LIT("\\f[B]");-    } else {-      LIT("\\f[]");+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {+      if (entering) {+        LIT("\\f[B]");+      } else {+        LIT("\\f[]");+      }     }     break; 
cbits/map.c view
@@ -51,7 +51,7 @@ }  static void sort_map(cmark_map *map) {-  unsigned int i = 0, last = 0, size = map->size;+  size_t i = 0, last = 0, size = map->size;   cmark_map_entry *r = map->refs, **sorted = NULL;    sorted = (cmark_map_entry **)map->mem->calloc(size, sizeof(cmark_map_entry *));@@ -73,6 +73,7 @@  cmark_map_entry *cmark_map_lookup(cmark_map *map, cmark_chunk *label) {   cmark_map_entry **ref = NULL;+  cmark_map_entry *r = NULL;   unsigned char *norm;    if (label->len < 1 || label->len > MAX_LINK_LABEL_LENGTH)@@ -91,10 +92,15 @@   ref = (cmark_map_entry **)bsearch(norm, map->sorted, map->size, sizeof(cmark_map_entry *), refsearch);   map->mem->free(norm); -  if (!ref)-    return NULL;+  if (ref != NULL) {+    r = ref[0];+    /* Check for expansion limit */+    if (r->size > map->max_ref_size - map->ref_size)+      return NULL;+    map->ref_size += r->size;+  } -  return ref[0];+  return r; }  void cmark_map_free(cmark_map *map) {@@ -118,5 +124,6 @@   cmark_map *map = (cmark_map *)mem->calloc(1, sizeof(cmark_map));   map->mem = mem;   map->free = free;+  map->max_ref_size = UINT_MAX;   return map; }
cbits/map.h view
@@ -10,7 +10,8 @@ struct cmark_map_entry {   struct cmark_map_entry *next;   unsigned char *label;-  unsigned int age;+  size_t age;+  size_t size; };  typedef struct cmark_map_entry cmark_map_entry;@@ -23,7 +24,9 @@   cmark_mem *mem;   cmark_map_entry *refs;   cmark_map_entry **sorted;-  unsigned int size;+  size_t size;+  size_t ref_size;+  size_t max_ref_size;   cmark_map_free_f free; }; 
cbits/node.c view
@@ -5,10 +5,42 @@ #include "node.h" #include "syntax_extension.h" +/**+ * Expensive safety checks are off by default, but can be enabled+ * by calling cmark_enable_safety_checks().+ */+static bool enable_safety_checks = false;++void cmark_enable_safety_checks(bool enable) {+  enable_safety_checks = enable;+}+ static void S_node_unlink(cmark_node *node);  #define NODE_MEM(node) cmark_node_mem(node) +void cmark_register_node_flag(cmark_node_internal_flags *flags) {+  static cmark_node_internal_flags nextflag = CMARK_NODE__REGISTER_FIRST;++  // flags should be a pointer to a global variable and this function+  // should only be called once to initialize its value.+  if (*flags) {+    fprintf(stderr, "flag initialization error in cmark_register_node_flag\n");+    abort();+  }++  // Check that we haven't run out of bits.+  if (nextflag == 0) {+    fprintf(stderr, "too many flags in cmark_register_node_flag\n");+    abort();+  }++  *flags = nextflag;+  nextflag <<= 1;+}++void cmark_init_standard_node_flags(void) {}+ bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type) {   if (child_type == CMARK_NODE_DOCUMENT) {       return false;@@ -48,8 +80,6 @@ }  static bool S_can_contain(cmark_node *node, cmark_node *child) {-  cmark_node *cur;-   if (node == NULL || child == NULL) {     return false;   }@@ -57,14 +87,16 @@     return 0;   } -  // Verify that child is not an ancestor of node or equal to node.-  cur = node;-  do {-    if (cur == child) {-      return false;-    }-    cur = cur->parent;-  } while (cur != NULL);+  if (enable_safety_checks) {+    // Verify that child is not an ancestor of node or equal to node.+    cmark_node *cur = node;+    do {+      if (cur == child) {+        return false;+      }+      cur = cur->parent;+    } while (cur != NULL);+  }    return cmark_node_can_contain_type(node, (cmark_node_type) child->type); }@@ -301,6 +333,14 @@   } } +cmark_node *cmark_node_parent_footnote_def(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->parent_footnote_def;+  }+}+ void *cmark_node_get_user_data(cmark_node *node) {   if (node == NULL) {     return NULL;@@ -337,6 +377,7 @@   case CMARK_NODE_HTML_INLINE:   case CMARK_NODE_CODE:   case CMARK_NODE_FOOTNOTE_REFERENCE:+  case CMARK_NODE_FOOTNOTE_DEFINITION:     return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal);    case CMARK_NODE_CODE_BLOCK:@@ -518,6 +559,31 @@    if (node->type == CMARK_NODE_LIST) {     node->as.list.tight = tight == 1;+    return 1;+  } else {+    return 0;+  }+}++int cmark_node_get_item_index(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_ITEM) {+    return node->as.list.start;+  } else {+    return 0;+  }+}++int cmark_node_set_item_index(cmark_node *node, int idx) {+  if (node == NULL || idx < 0) {+    return 0;+  }++  if (node->type == CMARK_NODE_ITEM) {+    node->as.list.start = idx;     return 1;   } else {     return 0;
cbits/node.h view
@@ -52,8 +52,14 @@   CMARK_NODE__OPEN = (1 << 0),   CMARK_NODE__LAST_LINE_BLANK = (1 << 1),   CMARK_NODE__LAST_LINE_CHECKED = (1 << 2),++  // Extensions can register custom flags by calling `cmark_register_node_flag`.+  // This is the starting value for the custom flags.+  CMARK_NODE__REGISTER_FIRST = (1 << 3), }; +typedef uint16_t cmark_node_internal_flags;+ struct cmark_node {   cmark_strbuf content; @@ -72,10 +78,18 @@   int end_column;   int internal_offset;   uint16_t type;-  uint16_t flags;+  cmark_node_internal_flags flags;    cmark_syntax_extension *extension; +  /**+   * Used during cmark_render() to cache the most recent non-NULL+   * extension, if you go up the parent chain like this:+   *+   * node->parent->...parent->extension+   */+  cmark_syntax_extension *ancestor_extension;+   union {     int ref_ix;     int def_count;@@ -91,10 +105,31 @@     cmark_link link;     cmark_custom custom;     int html_block_type;+    int cell_index; // For keeping track of TABLE_CELL table alignments     void *opaque;   } as; }; +/**+ * Syntax extensions can use this function to register a custom node+ * flag. The flags are stored in the `flags` field of the `cmark_node`+ * struct. The `flags` parameter should be the address of a global variable+ * which will store the flag value.+ */+CMARK_GFM_EXPORT+void cmark_register_node_flag(cmark_node_internal_flags *flags);++/**+ * DEPRECATED.+ *+ * This function was added in cmark-gfm version 0.29.0.gfm.7, and was+ * required to be called at program start time, which caused+ * backwards-compatibility issues in applications that use cmark-gfm as a+ * library. It is now a no-op.+ */+CMARK_GFM_EXPORT+void cmark_init_standard_node_flags(void);+ static CMARK_INLINE cmark_mem *cmark_node_mem(cmark_node *node) {   return node->content.mem; }@@ -117,6 +152,13 @@ }  CMARK_GFM_EXPORT bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type);++/**+ * Enable (or disable) extra safety checks. These extra checks cause+ * extra performance overhead (in some cases quadratic), so they are only+ * intended to be used during testing.+ */+CMARK_GFM_EXPORT void cmark_enable_safety_checks(bool enable);  #ifdef __cplusplus }
cbits/parser.h view
@@ -46,6 +46,7 @@   /* Options set by the user, see the Options section in cmark.h */   int options;   bool last_buffer_ended_with_cr;+  size_t total_size;   cmark_llist *syntax_extensions;   cmark_llist *inline_syntax_extensions;   cmark_ispunct_func backslash_ispunct;
cbits/plaintext.c view
@@ -16,23 +16,8 @@   cmark_render_code_point(renderer, c); } -// if node is a block node, returns node.-// otherwise returns first block-level node that is an ancestor of node.-// if there is no block-level ancestor, returns NULL.-static cmark_node *get_containing_block(cmark_node *node) {-  while (node) {-    if (CMARK_NODE_BLOCK_P(node)) {-      return node;-    } else {-      node = node->parent;-    }-  }-  return NULL;-}- static int S_render_node(cmark_renderer *renderer, cmark_node *node,                          cmark_event_type ev_type, int options) {-  cmark_node *tmp;   int list_number;   cmark_delim_type list_delim;   int i;@@ -46,14 +31,17 @@   // Don't adjust tight list status til we've started the list.   // Otherwise we loose the blank line between a paragraph and   // a following list.-  if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {-    tmp = get_containing_block(node);-    renderer->in_tight_list_item =-        tmp && // tmp might be NULL if there is no containing block-        ((tmp->type == CMARK_NODE_ITEM &&-          cmark_node_get_list_tight(tmp->parent)) ||-         (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&-          cmark_node_get_list_tight(tmp->parent->parent)));+  if (entering) {+    if (node->parent && node->parent->type == CMARK_NODE_ITEM) {+      renderer->in_tight_list_item = node->parent->parent->as.list.tight;+    }+  } else {+    if (node->type == CMARK_NODE_LIST) {+      renderer->in_tight_list_item =+        node->parent &&+        node->parent->type == CMARK_NODE_ITEM &&+        node->parent->parent->as.list.tight;+    }   }    if (node->extension && node->extension->plaintext_render_func) {@@ -79,13 +67,8 @@     if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {       marker_width = 4;     } else {-      list_number = cmark_node_get_list_start(node->parent);+      list_number = cmark_node_get_item_index(node);       list_delim = cmark_node_get_list_delim(node->parent);-      tmp = node;-      while (tmp->prev) {-        tmp = tmp->prev;-        list_number += 1;-      }       // we ensure a width of at least 4 so       // we get nice transition from single digits       // to double
cbits/references.c view
@@ -32,6 +32,7 @@   ref->title = cmark_clean_title(map->mem, title);   ref->entry.age = map->size;   ref->entry.next = map->refs;+  ref->entry.size = ref->url.len + ref->title.len;    map->refs = (cmark_map_entry *)ref;   map->size++;
cbits/render.c view
@@ -31,13 +31,7 @@   cmark_chunk remainder = cmark_chunk_literal("");   int k = renderer->buffer->size - 1; -  cmark_syntax_extension *ext = NULL;-  cmark_node *n = node;-  while (n && !ext) {-    ext = n->extension;-    if (!ext)-      n = n->parent;-  }+  cmark_syntax_extension *ext = node->ancestor_extension;   if (ext && !ext->commonmark_escape_func)     ext = NULL; @@ -182,6 +176,20 @@    while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {     cur = cmark_iter_get_node(iter);+    if (cur->extension) {+      cur->ancestor_extension = cur->extension;+    } else if (cur->parent) {+      cur->ancestor_extension = cur->parent->ancestor_extension;+    }+    if (cur->type == CMARK_NODE_ITEM) {+      // Calculate the list item's index, for the benefit of output formats+      // like commonmark and plaintext.+      if (cur->prev) {+        cmark_node_set_item_index(cur, 1 + cmark_node_get_item_index(cur->prev));+      } else {+        cmark_node_set_item_index(cur, cmark_node_get_list_start(cur->parent));+      }+    }     if (!render_node(&renderer, cur, ev_type, options)) {       // a false value causes us to skip processing       // the node's contents.  this is used for
cbits/scanners.c view
@@ -1,10508 +1,14056 @@-/* Generated by re2c 1.3 */-#include <stdlib.h>-#include "chunk.h"-#include "scanners.h"--bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset)-{-	bufsize_t res;-	unsigned char *ptr = (unsigned char *)c->data;--        if (ptr == NULL || offset > c->len) {-          return 0;-        } else {-	  unsigned char lim = ptr[c->len];--	  ptr[c->len] = '\0';-	  res = scanner(ptr + offset);-	  ptr[c->len] = lim;-        }--	return res;-}----// Try to match a scheme including colon.-bufsize_t _scan_scheme(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	yych = *p;-	if (yych <= '@') goto yy2;-	if (yych <= 'Z') goto yy4;-	if (yych <= '`') goto yy2;-	if (yych <= 'z') goto yy4;-yy2:-	++p;-yy3:-	{ return 0; }-yy4:-	yych = *(marker = ++p);-	if (yych <= '/') {-		if (yych <= '+') {-			if (yych <= '*') goto yy3;-		} else {-			if (yych <= ',') goto yy3;-			if (yych >= '/') goto yy3;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '9') goto yy5;-			if (yych <= '@') goto yy3;-		} else {-			if (yych <= '`') goto yy3;-			if (yych >= '{') goto yy3;-		}-	}-yy5:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych == '+') goto yy7;-		} else {-			if (yych != '/') goto yy7;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych >= 'A') goto yy7;-		} else {-			if (yych <= '`') goto yy6;-			if (yych <= 'z') goto yy7;-		}-	}-yy6:-	p = marker;-	goto yy3;-yy7:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych == '+') goto yy10;-			goto yy6;-		} else {-			if (yych == '/') goto yy6;-			goto yy10;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-			goto yy10;-		} else {-			if (yych <= '`') goto yy6;-			if (yych <= 'z') goto yy10;-			goto yy6;-		}-	}-yy8:-	++p;-	{ return (bufsize_t)(p - start); }-yy10:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy6;-		} else {-			if (yych == '/') goto yy6;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy8;-			if (yych <= '@') goto yy6;-		} else {-			if (yych <= '`') goto yy6;-			if (yych >= '{') goto yy6;-		}-	}-	yych = *++p;-	if (yych == ':') goto yy8;-	goto yy6;-}--}--// Try to match URI autolink after first <, returning number of chars matched.-bufsize_t _scan_autolink_uri(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  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, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128,   0, 128,   0, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych <= '@') goto yy41;-	if (yych <= 'Z') goto yy43;-	if (yych <= '`') goto yy41;-	if (yych <= 'z') goto yy43;-yy41:-	++p;-yy42:-	{ return 0; }-yy43:-	yych = *(marker = ++p);-	if (yych <= '/') {-		if (yych <= '+') {-			if (yych <= '*') goto yy42;-		} else {-			if (yych <= ',') goto yy42;-			if (yych >= '/') goto yy42;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '9') goto yy44;-			if (yych <= '@') goto yy42;-		} else {-			if (yych <= '`') goto yy42;-			if (yych >= '{') goto yy42;-		}-	}-yy44:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych == '+') goto yy46;-		} else {-			if (yych != '/') goto yy46;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych >= 'A') goto yy46;-		} else {-			if (yych <= '`') goto yy45;-			if (yych <= 'z') goto yy46;-		}-	}-yy45:-	p = marker;-	goto yy42;-yy46:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych == '+') goto yy49;-			goto yy45;-		} else {-			if (yych == '/') goto yy45;-			goto yy49;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-			goto yy49;-		} else {-			if (yych <= '`') goto yy45;-			if (yych <= 'z') goto yy49;-			goto yy45;-		}-	}-yy47:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy47;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '<') goto yy45;-			if (yych <= '>') goto yy50;-			goto yy45;-		} else {-			if (yych <= 0xDF) goto yy52;-			if (yych <= 0xE0) goto yy53;-			goto yy54;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy55;-			if (yych <= 0xEF) goto yy54;-			goto yy56;-		} else {-			if (yych <= 0xF3) goto yy57;-			if (yych <= 0xF4) goto yy58;-			goto yy45;-		}-	}-yy49:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych == '+') goto yy59;-			goto yy45;-		} else {-			if (yych == '/') goto yy45;-			goto yy59;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-			goto yy59;-		} else {-			if (yych <= '`') goto yy45;-			if (yych <= 'z') goto yy59;-			goto yy45;-		}-	}-yy50:-	++p;-	{ return (bufsize_t)(p - start); }-yy52:-	yych = *++p;-	if (yych <= 0x7F) goto yy45;-	if (yych <= 0xBF) goto yy47;-	goto yy45;-yy53:-	yych = *++p;-	if (yych <= 0x9F) goto yy45;-	if (yych <= 0xBF) goto yy52;-	goto yy45;-yy54:-	yych = *++p;-	if (yych <= 0x7F) goto yy45;-	if (yych <= 0xBF) goto yy52;-	goto yy45;-yy55:-	yych = *++p;-	if (yych <= 0x7F) goto yy45;-	if (yych <= 0x9F) goto yy52;-	goto yy45;-yy56:-	yych = *++p;-	if (yych <= 0x8F) goto yy45;-	if (yych <= 0xBF) goto yy54;-	goto yy45;-yy57:-	yych = *++p;-	if (yych <= 0x7F) goto yy45;-	if (yych <= 0xBF) goto yy54;-	goto yy45;-yy58:-	yych = *++p;-	if (yych <= 0x7F) goto yy45;-	if (yych <= 0x8F) goto yy54;-	goto yy45;-yy59:-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych <= ',') {-			if (yych != '+') goto yy45;-		} else {-			if (yych == '/') goto yy45;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= ':') goto yy47;-			if (yych <= '@') goto yy45;-		} else {-			if (yych <= '`') goto yy45;-			if (yych >= '{') goto yy45;-		}-	}-	yych = *++p;-	if (yych == ':') goto yy47;-	goto yy45;-}--}--// Try to match email autolink after first <, returning num of chars matched.-bufsize_t _scan_autolink_email(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  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, 128,   0, 128, 128, 128, 128, 128, -		  0,   0, 128, 128,   0, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128,   0,   0,   0, 128,   0, 128, -		  0, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128,   0,   0,   0, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych <= '9') {-		if (yych <= '\'') {-			if (yych == '!') goto yy91;-			if (yych >= '#') goto yy91;-		} else {-			if (yych <= ')') goto yy89;-			if (yych != ',') goto yy91;-		}-	} else {-		if (yych <= '?') {-			if (yych == '=') goto yy91;-			if (yych >= '?') goto yy91;-		} else {-			if (yych <= 'Z') {-				if (yych >= 'A') goto yy91;-			} else {-				if (yych <= ']') goto yy89;-				if (yych <= '~') goto yy91;-			}-		}-	}-yy89:-	++p;-yy90:-	{ return 0; }-yy91:-	yych = *(marker = ++p);-	if (yych <= ',') {-		if (yych <= '"') {-			if (yych == '!') goto yy93;-			goto yy90;-		} else {-			if (yych <= '\'') goto yy93;-			if (yych <= ')') goto yy90;-			if (yych <= '+') goto yy93;-			goto yy90;-		}-	} else {-		if (yych <= '>') {-			if (yych <= '9') goto yy93;-			if (yych == '=') goto yy93;-			goto yy90;-		} else {-			if (yych <= 'Z') goto yy93;-			if (yych <= ']') goto yy90;-			if (yych <= '~') goto yy93;-			goto yy90;-		}-	}-yy92:-	yych = *++p;-yy93:-	if (yybm[0+yych] & 128) {-		goto yy92;-	}-	if (yych <= '>') goto yy94;-	if (yych <= '@') goto yy95;-yy94:-	p = marker;-	goto yy90;-yy95:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy94;-		if (yych >= ':') goto yy94;-	} else {-		if (yych <= 'Z') goto yy96;-		if (yych <= '`') goto yy94;-		if (yych >= '{') goto yy94;-	}-yy96:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy98;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy98;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy98;-			goto yy94;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy101;-		if (yych <= '/') goto yy94;-		goto yy102;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy102;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy102;-			goto yy94;-		}-	}-yy98:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych <= '-') goto yy101;-			goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy102;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy102;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy102;-			goto yy94;-		}-	}-yy99:-	++p;-	{ return (bufsize_t)(p - start); }-yy101:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy103;-		if (yych <= '/') goto yy94;-		goto yy104;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy104;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy104;-			goto yy94;-		}-	}-yy102:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy104;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy104;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy104;-			goto yy94;-		}-	}-yy103:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy105;-		if (yych <= '/') goto yy94;-		goto yy106;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy106;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy106;-			goto yy94;-		}-	}-yy104:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy106;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy106;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy106;-			goto yy94;-		}-	}-yy105:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy107;-		if (yych <= '/') goto yy94;-		goto yy108;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy108;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy108;-			goto yy94;-		}-	}-yy106:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy108;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy108;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy108;-			goto yy94;-		}-	}-yy107:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy109;-		if (yych <= '/') goto yy94;-		goto yy110;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy110;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy110;-			goto yy94;-		}-	}-yy108:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy110;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy110;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy110;-			goto yy94;-		}-	}-yy109:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy111;-		if (yych <= '/') goto yy94;-		goto yy112;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy112;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy112;-			goto yy94;-		}-	}-yy110:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy112;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy112;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy112;-			goto yy94;-		}-	}-yy111:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy113;-		if (yych <= '/') goto yy94;-		goto yy114;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy114;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy114;-			goto yy94;-		}-	}-yy112:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy114;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy114;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy114;-			goto yy94;-		}-	}-yy113:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy115;-		if (yych <= '/') goto yy94;-		goto yy116;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy116;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy116;-			goto yy94;-		}-	}-yy114:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy116;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy116;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy116;-			goto yy94;-		}-	}-yy115:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy117;-		if (yych <= '/') goto yy94;-		goto yy118;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy118;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy118;-			goto yy94;-		}-	}-yy116:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy118;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy118;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy118;-			goto yy94;-		}-	}-yy117:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy119;-		if (yych <= '/') goto yy94;-		goto yy120;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy120;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy120;-			goto yy94;-		}-	}-yy118:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy120;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy120;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy120;-			goto yy94;-		}-	}-yy119:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy121;-		if (yych <= '/') goto yy94;-		goto yy122;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy122;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy122;-			goto yy94;-		}-	}-yy120:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy122;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy122;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy122;-			goto yy94;-		}-	}-yy121:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy123;-		if (yych <= '/') goto yy94;-		goto yy124;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy124;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy124;-			goto yy94;-		}-	}-yy122:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy124;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy124;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy124;-			goto yy94;-		}-	}-yy123:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy125;-		if (yych <= '/') goto yy94;-		goto yy126;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy126;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy126;-			goto yy94;-		}-	}-yy124:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy126;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy126;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy126;-			goto yy94;-		}-	}-yy125:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy127;-		if (yych <= '/') goto yy94;-		goto yy128;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy128;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy128;-			goto yy94;-		}-	}-yy126:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy128;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy128;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy128;-			goto yy94;-		}-	}-yy127:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy129;-		if (yych <= '/') goto yy94;-		goto yy130;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy130;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy130;-			goto yy94;-		}-	}-yy128:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy130;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy130;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy130;-			goto yy94;-		}-	}-yy129:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy131;-		if (yych <= '/') goto yy94;-		goto yy132;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy132;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy132;-			goto yy94;-		}-	}-yy130:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy132;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy132;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy132;-			goto yy94;-		}-	}-yy131:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy133;-		if (yych <= '/') goto yy94;-		goto yy134;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy134;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy134;-			goto yy94;-		}-	}-yy132:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy134;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy134;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy134;-			goto yy94;-		}-	}-yy133:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy135;-		if (yych <= '/') goto yy94;-		goto yy136;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy136;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy136;-			goto yy94;-		}-	}-yy134:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy136;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy136;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy136;-			goto yy94;-		}-	}-yy135:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy137;-		if (yych <= '/') goto yy94;-		goto yy138;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy138;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy138;-			goto yy94;-		}-	}-yy136:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy138;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy138;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy138;-			goto yy94;-		}-	}-yy137:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy139;-		if (yych <= '/') goto yy94;-		goto yy140;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy140;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy140;-			goto yy94;-		}-	}-yy138:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy140;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy140;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy140;-			goto yy94;-		}-	}-yy139:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy141;-		if (yych <= '/') goto yy94;-		goto yy142;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy142;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy142;-			goto yy94;-		}-	}-yy140:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy142;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy142;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy142;-			goto yy94;-		}-	}-yy141:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy143;-		if (yych <= '/') goto yy94;-		goto yy144;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy144;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy144;-			goto yy94;-		}-	}-yy142:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy144;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy144;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy144;-			goto yy94;-		}-	}-yy143:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy145;-		if (yych <= '/') goto yy94;-		goto yy146;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy146;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy146;-			goto yy94;-		}-	}-yy144:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy146;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy146;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy146;-			goto yy94;-		}-	}-yy145:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy147;-		if (yych <= '/') goto yy94;-		goto yy148;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy148;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy148;-			goto yy94;-		}-	}-yy146:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy148;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy148;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy148;-			goto yy94;-		}-	}-yy147:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy149;-		if (yych <= '/') goto yy94;-		goto yy150;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy150;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy150;-			goto yy94;-		}-	}-yy148:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy150;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy150;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy150;-			goto yy94;-		}-	}-yy149:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy151;-		if (yych <= '/') goto yy94;-		goto yy152;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy152;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy152;-			goto yy94;-		}-	}-yy150:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy152;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy152;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy152;-			goto yy94;-		}-	}-yy151:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy153;-		if (yych <= '/') goto yy94;-		goto yy154;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy154;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy154;-			goto yy94;-		}-	}-yy152:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy154;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy154;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy154;-			goto yy94;-		}-	}-yy153:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy155;-		if (yych <= '/') goto yy94;-		goto yy156;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy156;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy156;-			goto yy94;-		}-	}-yy154:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy156;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy156;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy156;-			goto yy94;-		}-	}-yy155:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy157;-		if (yych <= '/') goto yy94;-		goto yy158;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy158;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy158;-			goto yy94;-		}-	}-yy156:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy158;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy158;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy158;-			goto yy94;-		}-	}-yy157:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy159;-		if (yych <= '/') goto yy94;-		goto yy160;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy160;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy160;-			goto yy94;-		}-	}-yy158:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy160;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy160;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy160;-			goto yy94;-		}-	}-yy159:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy161;-		if (yych <= '/') goto yy94;-		goto yy162;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy162;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy162;-			goto yy94;-		}-	}-yy160:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy162;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy162;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy162;-			goto yy94;-		}-	}-yy161:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy163;-		if (yych <= '/') goto yy94;-		goto yy164;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy164;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy164;-			goto yy94;-		}-	}-yy162:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy164;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy164;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy164;-			goto yy94;-		}-	}-yy163:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy165;-		if (yych <= '/') goto yy94;-		goto yy166;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy166;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy166;-			goto yy94;-		}-	}-yy164:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy166;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy166;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy166;-			goto yy94;-		}-	}-yy165:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy167;-		if (yych <= '/') goto yy94;-		goto yy168;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy168;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy168;-			goto yy94;-		}-	}-yy166:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy168;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy168;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy168;-			goto yy94;-		}-	}-yy167:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy169;-		if (yych <= '/') goto yy94;-		goto yy170;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy170;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy170;-			goto yy94;-		}-	}-yy168:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy170;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy170;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy170;-			goto yy94;-		}-	}-yy169:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy171;-		if (yych <= '/') goto yy94;-		goto yy172;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy172;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy172;-			goto yy94;-		}-	}-yy170:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy172;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy172;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy172;-			goto yy94;-		}-	}-yy171:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy173;-		if (yych <= '/') goto yy94;-		goto yy174;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy174;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy174;-			goto yy94;-		}-	}-yy172:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy174;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy174;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy174;-			goto yy94;-		}-	}-yy173:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy175;-		if (yych <= '/') goto yy94;-		goto yy176;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy176;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy176;-			goto yy94;-		}-	}-yy174:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy176;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy176;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy176;-			goto yy94;-		}-	}-yy175:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy177;-		if (yych <= '/') goto yy94;-		goto yy178;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy178;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy178;-			goto yy94;-		}-	}-yy176:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy178;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy178;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy178;-			goto yy94;-		}-	}-yy177:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy179;-		if (yych <= '/') goto yy94;-		goto yy180;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy180;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy180;-			goto yy94;-		}-	}-yy178:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy180;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy180;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy180;-			goto yy94;-		}-	}-yy179:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy181;-		if (yych <= '/') goto yy94;-		goto yy182;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy182;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy182;-			goto yy94;-		}-	}-yy180:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy182;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy182;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy182;-			goto yy94;-		}-	}-yy181:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy183;-		if (yych <= '/') goto yy94;-		goto yy184;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy184;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy184;-			goto yy94;-		}-	}-yy182:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy184;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy184;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy184;-			goto yy94;-		}-	}-yy183:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy185;-		if (yych <= '/') goto yy94;-		goto yy186;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy186;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy186;-			goto yy94;-		}-	}-yy184:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy186;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy186;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy186;-			goto yy94;-		}-	}-yy185:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy187;-		if (yych <= '/') goto yy94;-		goto yy188;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy188;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy188;-			goto yy94;-		}-	}-yy186:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy188;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy188;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy188;-			goto yy94;-		}-	}-yy187:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy189;-		if (yych <= '/') goto yy94;-		goto yy190;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy190;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy190;-			goto yy94;-		}-	}-yy188:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy190;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy190;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy190;-			goto yy94;-		}-	}-yy189:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy191;-		if (yych <= '/') goto yy94;-		goto yy192;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy192;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy192;-			goto yy94;-		}-	}-yy190:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy192;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy192;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy192;-			goto yy94;-		}-	}-yy191:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy193;-		if (yych <= '/') goto yy94;-		goto yy194;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy194;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy194;-			goto yy94;-		}-	}-yy192:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy194;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy194;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy194;-			goto yy94;-		}-	}-yy193:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy195;-		if (yych <= '/') goto yy94;-		goto yy196;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy196;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy196;-			goto yy94;-		}-	}-yy194:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy196;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy196;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy196;-			goto yy94;-		}-	}-yy195:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy197;-		if (yych <= '/') goto yy94;-		goto yy198;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy198;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy198;-			goto yy94;-		}-	}-yy196:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy198;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy198;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy198;-			goto yy94;-		}-	}-yy197:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy199;-		if (yych <= '/') goto yy94;-		goto yy200;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy200;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy200;-			goto yy94;-		}-	}-yy198:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy200;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy200;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy200;-			goto yy94;-		}-	}-yy199:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy201;-		if (yych <= '/') goto yy94;-		goto yy202;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy202;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy202;-			goto yy94;-		}-	}-yy200:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy202;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy202;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy202;-			goto yy94;-		}-	}-yy201:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy203;-		if (yych <= '/') goto yy94;-		goto yy204;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy204;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy204;-			goto yy94;-		}-	}-yy202:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy204;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy204;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy204;-			goto yy94;-		}-	}-yy203:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy205;-		if (yych <= '/') goto yy94;-		goto yy206;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy206;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy206;-			goto yy94;-		}-	}-yy204:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy206;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy206;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy206;-			goto yy94;-		}-	}-yy205:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy207;-		if (yych <= '/') goto yy94;-		goto yy208;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy208;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy208;-			goto yy94;-		}-	}-yy206:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy208;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy208;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy208;-			goto yy94;-		}-	}-yy207:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy209;-		if (yych <= '/') goto yy94;-		goto yy210;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy210;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy210;-			goto yy94;-		}-	}-yy208:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy210;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy210;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy210;-			goto yy94;-		}-	}-yy209:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy211;-		if (yych <= '/') goto yy94;-		goto yy212;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy212;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy212;-			goto yy94;-		}-	}-yy210:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy212;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy212;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy212;-			goto yy94;-		}-	}-yy211:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy213;-		if (yych <= '/') goto yy94;-		goto yy214;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy214;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy214;-			goto yy94;-		}-	}-yy212:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy214;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy214;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy214;-			goto yy94;-		}-	}-yy213:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy215;-		if (yych <= '/') goto yy94;-		goto yy216;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy216;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy216;-			goto yy94;-		}-	}-yy214:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy216;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy216;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy216;-			goto yy94;-		}-	}-yy215:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy217;-		if (yych <= '/') goto yy94;-		goto yy218;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy218;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy218;-			goto yy94;-		}-	}-yy216:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy218;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy218;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy218;-			goto yy94;-		}-	}-yy217:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy219;-		if (yych <= '/') goto yy94;-		goto yy220;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy94;-			goto yy220;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy220;-			goto yy94;-		}-	}-yy218:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy94;-			if (yych >= '.') goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych <= '9') goto yy220;-			goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-			goto yy220;-		} else {-			if (yych <= '`') goto yy94;-			if (yych <= 'z') goto yy220;-			goto yy94;-		}-	}-yy219:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy94;-		if (yych <= '9') goto yy221;-		goto yy94;-	} else {-		if (yych <= 'Z') goto yy221;-		if (yych <= '`') goto yy94;-		if (yych <= 'z') goto yy221;-		goto yy94;-	}-yy220:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= '-') goto yy94;-			goto yy95;-		} else {-			if (yych <= '/') goto yy94;-			if (yych >= ':') goto yy94;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy99;-			if (yych <= '@') goto yy94;-		} else {-			if (yych <= '`') goto yy94;-			if (yych >= '{') goto yy94;-		}-	}-yy221:-	yych = *++p;-	if (yych == '.') goto yy95;-	if (yych == '>') goto yy99;-	goto yy94;-}--}--// Try to match an HTML tag after first <, returning num of chars matched.-bufsize_t _scan_html_tag(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		/* table 1 .. 8: 0 */-		  0, 250, 250, 250, 250, 250, 250, 250, -		250, 235, 235, 235, 235, 235, 250, 250, -		250, 250, 250, 250, 250, 250, 250, 250, -		250, 250, 250, 250, 250, 250, 250, 250, -		235, 250, 202, 250, 250, 250, 250, 170, -		250, 250, 250, 250, 250, 246, 254, 250, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 250, 234, 234, 232, 250, -		250, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 250, 250, 122, 250, 254, -		234, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 254, 250, 250, 250, 250, 250, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		/* table 9 .. 11: 256 */-		  0, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 192, 128, 128, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 128, 128, 128, 128, 128,   0, -		128, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 128, 128, 128, 128, 128, -		128, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 128, 128, 128, 128, 128, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych <= '>') {-		if (yych <= '!') {-			if (yych >= '!') goto yy226;-		} else {-			if (yych == '/') goto yy227;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '?') goto yy228;-			if (yych >= 'A') goto yy229;-		} else {-			if (yych <= '`') goto yy224;-			if (yych <= 'z') goto yy229;-		}-	}-yy224:-	++p;-yy225:-	{ return 0; }-yy226:-	yych = *(marker = ++p);-	if (yybm[256+yych] & 32) {-		goto yy232;-	}-	if (yych == '-') goto yy230;-	if (yych <= '@') goto yy225;-	if (yych <= '[') goto yy234;-	goto yy225;-yy227:-	yych = *(marker = ++p);-	if (yych <= '@') goto yy225;-	if (yych <= 'Z') goto yy235;-	if (yych <= '`') goto yy225;-	if (yych <= 'z') goto yy235;-	goto yy225;-yy228:-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy225;-	if (yych <= 0x7F) goto yy238;-	if (yych <= 0xC1) goto yy225;-	if (yych <= 0xF4) goto yy238;-	goto yy225;-yy229:-	yych = *(marker = ++p);-	if (yych <= '.') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy225;-			if (yych <= '\r') goto yy250;-			goto yy225;-		} else {-			if (yych <= ' ') goto yy250;-			if (yych == '-') goto yy250;-			goto yy225;-		}-	} else {-		if (yych <= '@') {-			if (yych <= '9') goto yy250;-			if (yych == '>') goto yy250;-			goto yy225;-		} else {-			if (yych <= 'Z') goto yy250;-			if (yych <= '`') goto yy225;-			if (yych <= 'z') goto yy250;-			goto yy225;-		}-	}-yy230:-	yych = *++p;-	if (yych == '-') goto yy254;-yy231:-	p = marker;-	goto yy225;-yy232:-	yych = *++p;-	if (yybm[256+yych] & 32) {-		goto yy232;-	}-	if (yych <= 0x08) goto yy231;-	if (yych <= '\r') goto yy255;-	if (yych == ' ') goto yy255;-	goto yy231;-yy234:-	yych = *++p;-	if (yych == 'C') goto yy257;-	if (yych == 'c') goto yy257;-	goto yy231;-yy235:-	yych = *++p;-	if (yybm[256+yych] & 64) {-		goto yy235;-	}-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy231;-		if (yych <= '\r') goto yy258;-		goto yy231;-	} else {-		if (yych <= ' ') goto yy258;-		if (yych == '>') goto yy252;-		goto yy231;-	}-yy237:-	yych = *++p;-yy238:-	if (yybm[256+yych] & 128) {-		goto yy237;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych >= '@') goto yy231;-		} else {-			if (yych <= 0xDF) goto yy240;-			if (yych <= 0xE0) goto yy241;-			goto yy242;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy243;-			if (yych <= 0xEF) goto yy242;-			goto yy244;-		} else {-			if (yych <= 0xF3) goto yy245;-			if (yych <= 0xF4) goto yy246;-			goto yy231;-		}-	}-	yych = *++p;-	if (yych <= 0xE0) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy231;-			if (yych <= '=') goto yy237;-			goto yy252;-		} else {-			if (yych <= 0x7F) goto yy237;-			if (yych <= 0xC1) goto yy231;-			if (yych >= 0xE0) goto yy241;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy243;-			goto yy242;-		} else {-			if (yych <= 0xF0) goto yy244;-			if (yych <= 0xF3) goto yy245;-			if (yych <= 0xF4) goto yy246;-			goto yy231;-		}-	}-yy240:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy237;-	goto yy231;-yy241:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy240;-	goto yy231;-yy242:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy240;-	goto yy231;-yy243:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy240;-	goto yy231;-yy244:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy242;-	goto yy231;-yy245:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy242;-	goto yy231;-yy246:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy242;-	goto yy231;-yy247:-	yych = *++p;-	if (yybm[0+yych] & 1) {-		goto yy247;-	}-	if (yych <= '>') {-		if (yych <= '9') {-			if (yych == '/') goto yy251;-			goto yy231;-		} else {-			if (yych <= ':') goto yy260;-			if (yych <= '=') goto yy231;-			goto yy252;-		}-	} else {-		if (yych <= '^') {-			if (yych <= '@') goto yy231;-			if (yych <= 'Z') goto yy260;-			goto yy231;-		} else {-			if (yych == '`') goto yy231;-			if (yych <= 'z') goto yy260;-			goto yy231;-		}-	}-yy249:-	yych = *++p;-yy250:-	if (yybm[0+yych] & 1) {-		goto yy247;-	}-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych == '-') goto yy249;-			goto yy231;-		} else {-			if (yych <= '/') goto yy251;-			if (yych <= '9') goto yy249;-			goto yy231;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy252;-			if (yych <= '@') goto yy231;-			goto yy249;-		} else {-			if (yych <= '`') goto yy231;-			if (yych <= 'z') goto yy249;-			goto yy231;-		}-	}-yy251:-	yych = *++p;-	if (yych != '>') goto yy231;-yy252:-	++p;-	{ return (bufsize_t)(p - start); }-yy254:-	yych = *++p;-	if (yych == '-') goto yy264;-	if (yych == '>') goto yy231;-	goto yy263;-yy255:-	yych = *++p;-	if (yybm[0+yych] & 2) {-		goto yy255;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= '>') goto yy252;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy272;-			if (yych <= 0xE0) goto yy273;-			goto yy274;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy275;-			if (yych <= 0xEF) goto yy274;-			goto yy276;-		} else {-			if (yych <= 0xF3) goto yy277;-			if (yych <= 0xF4) goto yy278;-			goto yy231;-		}-	}-yy257:-	yych = *++p;-	if (yych == 'D') goto yy279;-	if (yych == 'd') goto yy279;-	goto yy231;-yy258:-	yych = *++p;-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy231;-		if (yych <= '\r') goto yy258;-		goto yy231;-	} else {-		if (yych <= ' ') goto yy258;-		if (yych == '>') goto yy252;-		goto yy231;-	}-yy260:-	yych = *++p;-	if (yybm[0+yych] & 4) {-		goto yy260;-	}-	if (yych <= ',') {-		if (yych <= '\r') {-			if (yych <= 0x08) goto yy231;-			goto yy280;-		} else {-			if (yych == ' ') goto yy280;-			goto yy231;-		}-	} else {-		if (yych <= '<') {-			if (yych <= '/') goto yy251;-			goto yy231;-		} else {-			if (yych <= '=') goto yy282;-			if (yych <= '>') goto yy252;-			goto yy231;-		}-	}-yy262:-	yych = *++p;-yy263:-	if (yybm[0+yych] & 8) {-		goto yy262;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= '-') goto yy284;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy265;-			if (yych <= 0xE0) goto yy266;-			goto yy267;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy268;-			if (yych <= 0xEF) goto yy267;-			goto yy269;-		} else {-			if (yych <= 0xF3) goto yy270;-			if (yych <= 0xF4) goto yy271;-			goto yy231;-		}-	}-yy264:-	yych = *++p;-	if (yych == '-') goto yy251;-	if (yych == '>') goto yy231;-	goto yy263;-yy265:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy262;-	goto yy231;-yy266:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy265;-	goto yy231;-yy267:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy265;-	goto yy231;-yy268:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy265;-	goto yy231;-yy269:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy267;-	goto yy231;-yy270:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy267;-	goto yy231;-yy271:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy267;-	goto yy231;-yy272:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy255;-	goto yy231;-yy273:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy272;-	goto yy231;-yy274:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy272;-	goto yy231;-yy275:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy272;-	goto yy231;-yy276:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy274;-	goto yy231;-yy277:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy274;-	goto yy231;-yy278:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy274;-	goto yy231;-yy279:-	yych = *++p;-	if (yych == 'A') goto yy285;-	if (yych == 'a') goto yy285;-	goto yy231;-yy280:-	yych = *++p;-	if (yych <= '<') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy231;-			if (yych <= '\r') goto yy280;-			if (yych <= 0x1F) goto yy231;-			goto yy280;-		} else {-			if (yych <= '/') {-				if (yych <= '.') goto yy231;-				goto yy251;-			} else {-				if (yych == ':') goto yy260;-				goto yy231;-			}-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '=') goto yy282;-			if (yych <= '>') goto yy252;-			if (yych <= '@') goto yy231;-			goto yy260;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy231;-				goto yy260;-			} else {-				if (yych <= '`') goto yy231;-				if (yych <= 'z') goto yy260;-				goto yy231;-			}-		}-	}-yy282:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy286;-	}-	if (yych <= 0xE0) {-		if (yych <= '"') {-			if (yych <= 0x00) goto yy231;-			if (yych <= ' ') goto yy282;-			goto yy288;-		} else {-			if (yych <= '\'') goto yy290;-			if (yych <= 0xC1) goto yy231;-			if (yych <= 0xDF) goto yy292;-			goto yy293;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy295;-			goto yy294;-		} else {-			if (yych <= 0xF0) goto yy296;-			if (yych <= 0xF3) goto yy297;-			if (yych <= 0xF4) goto yy298;-			goto yy231;-		}-	}-yy284:-	yych = *++p;-	if (yybm[0+yych] & 8) {-		goto yy262;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= '-') goto yy251;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy265;-			if (yych <= 0xE0) goto yy266;-			goto yy267;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy268;-			if (yych <= 0xEF) goto yy267;-			goto yy269;-		} else {-			if (yych <= 0xF3) goto yy270;-			if (yych <= 0xF4) goto yy271;-			goto yy231;-		}-	}-yy285:-	yych = *++p;-	if (yych == 'T') goto yy299;-	if (yych == 't') goto yy299;-	goto yy231;-yy286:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy286;-	}-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy231;-			if (yych <= ' ') goto yy247;-			goto yy231;-		} else {-			if (yych <= '>') goto yy252;-			if (yych <= 0xC1) goto yy231;-			if (yych <= 0xDF) goto yy292;-			goto yy293;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy295;-			goto yy294;-		} else {-			if (yych <= 0xF0) goto yy296;-			if (yych <= 0xF3) goto yy297;-			if (yych <= 0xF4) goto yy298;-			goto yy231;-		}-	}-yy288:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy288;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= '"') goto yy300;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy301;-			if (yych <= 0xE0) goto yy302;-			goto yy303;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy304;-			if (yych <= 0xEF) goto yy303;-			goto yy305;-		} else {-			if (yych <= 0xF3) goto yy306;-			if (yych <= 0xF4) goto yy307;-			goto yy231;-		}-	}-yy290:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy290;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= '\'') goto yy300;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy308;-			if (yych <= 0xE0) goto yy309;-			goto yy310;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy311;-			if (yych <= 0xEF) goto yy310;-			goto yy312;-		} else {-			if (yych <= 0xF3) goto yy313;-			if (yych <= 0xF4) goto yy314;-			goto yy231;-		}-	}-yy292:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy286;-	goto yy231;-yy293:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy292;-	goto yy231;-yy294:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy292;-	goto yy231;-yy295:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy292;-	goto yy231;-yy296:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy294;-	goto yy231;-yy297:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy294;-	goto yy231;-yy298:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy294;-	goto yy231;-yy299:-	yych = *++p;-	if (yych == 'A') goto yy315;-	if (yych == 'a') goto yy315;-	goto yy231;-yy300:-	yych = *++p;-	if (yybm[0+yych] & 1) {-		goto yy247;-	}-	if (yych == '/') goto yy251;-	if (yych == '>') goto yy252;-	goto yy231;-yy301:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy288;-	goto yy231;-yy302:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy301;-	goto yy231;-yy303:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy301;-	goto yy231;-yy304:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy301;-	goto yy231;-yy305:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy303;-	goto yy231;-yy306:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy303;-	goto yy231;-yy307:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy303;-	goto yy231;-yy308:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy290;-	goto yy231;-yy309:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy308;-	goto yy231;-yy310:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy308;-	goto yy231;-yy311:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy308;-	goto yy231;-yy312:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy310;-	goto yy231;-yy313:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy310;-	goto yy231;-yy314:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy310;-	goto yy231;-yy315:-	yych = *++p;-	if (yych != '[') goto yy231;-yy316:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy316;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych >= '^') goto yy231;-		} else {-			if (yych <= 0xDF) goto yy319;-			if (yych <= 0xE0) goto yy320;-			goto yy321;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy322;-			if (yych <= 0xEF) goto yy321;-			goto yy323;-		} else {-			if (yych <= 0xF3) goto yy324;-			if (yych <= 0xF4) goto yy325;-			goto yy231;-		}-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy316;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy231;-			if (yych <= ']') goto yy326;-			goto yy231;-		} else {-			if (yych <= 0xDF) goto yy319;-			if (yych <= 0xE0) goto yy320;-			goto yy321;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy322;-			if (yych <= 0xEF) goto yy321;-			goto yy323;-		} else {-			if (yych <= 0xF3) goto yy324;-			if (yych <= 0xF4) goto yy325;-			goto yy231;-		}-	}-yy319:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy316;-	goto yy231;-yy320:-	yych = *++p;-	if (yych <= 0x9F) goto yy231;-	if (yych <= 0xBF) goto yy319;-	goto yy231;-yy321:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy319;-	goto yy231;-yy322:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x9F) goto yy319;-	goto yy231;-yy323:-	yych = *++p;-	if (yych <= 0x8F) goto yy231;-	if (yych <= 0xBF) goto yy321;-	goto yy231;-yy324:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0xBF) goto yy321;-	goto yy231;-yy325:-	yych = *++p;-	if (yych <= 0x7F) goto yy231;-	if (yych <= 0x8F) goto yy321;-	goto yy231;-yy326:-	yych = *++p;-	if (yych <= 0xE0) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy231;-			if (yych <= '=') goto yy316;-			goto yy252;-		} else {-			if (yych <= 0x7F) goto yy316;-			if (yych <= 0xC1) goto yy231;-			if (yych <= 0xDF) goto yy319;-			goto yy320;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy322;-			goto yy321;-		} else {-			if (yych <= 0xF0) goto yy323;-			if (yych <= 0xF3) goto yy324;-			if (yych <= 0xF4) goto yy325;-			goto yy231;-		}-	}-}--}--// Try to (liberally) match an HTML tag after first <, returning num of chars matched.-bufsize_t _scan_liberal_html_tag(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,   0,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64, 128,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych <= 0xE0) {-		if (yych <= '\n') {-			if (yych <= 0x00) goto yy329;-			if (yych <= '\t') goto yy331;-		} else {-			if (yych <= 0x7F) goto yy331;-			if (yych <= 0xC1) goto yy329;-			if (yych <= 0xDF) goto yy332;-			goto yy333;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy335;-			goto yy334;-		} else {-			if (yych <= 0xF0) goto yy336;-			if (yych <= 0xF3) goto yy337;-			if (yych <= 0xF4) goto yy338;-		}-	}-yy329:-	++p;-yy330:-	{ return 0; }-yy331:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy330;-		if (yych <= '\t') goto yy340;-		goto yy330;-	} else {-		if (yych <= 0x7F) goto yy340;-		if (yych <= 0xC1) goto yy330;-		if (yych <= 0xF4) goto yy340;-		goto yy330;-	}-yy332:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy330;-	if (yych <= 0xBF) goto yy339;-	goto yy330;-yy333:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy330;-	if (yych <= 0xBF) goto yy345;-	goto yy330;-yy334:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy330;-	if (yych <= 0xBF) goto yy345;-	goto yy330;-yy335:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy330;-	if (yych <= 0x9F) goto yy345;-	goto yy330;-yy336:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy330;-	if (yych <= 0xBF) goto yy347;-	goto yy330;-yy337:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy330;-	if (yych <= 0xBF) goto yy347;-	goto yy330;-yy338:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy330;-	if (yych <= 0x8F) goto yy347;-	goto yy330;-yy339:-	yych = *++p;-yy340:-	if (yybm[0+yych] & 64) {-		goto yy339;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy341;-			if (yych <= '>') goto yy342;-		} else {-			if (yych <= 0xDF) goto yy345;-			if (yych <= 0xE0) goto yy346;-			goto yy347;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy348;-			if (yych <= 0xEF) goto yy347;-			goto yy349;-		} else {-			if (yych <= 0xF3) goto yy350;-			if (yych <= 0xF4) goto yy351;-		}-	}-yy341:-	p = marker;-	if (yyaccept == 0) {-		goto yy330;-	} else {-		goto yy344;-	}-yy342:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy339;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy344;-			if (yych <= '>') goto yy342;-		} else {-			if (yych <= 0xDF) goto yy345;-			if (yych <= 0xE0) goto yy346;-			goto yy347;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy348;-			if (yych <= 0xEF) goto yy347;-			goto yy349;-		} else {-			if (yych <= 0xF3) goto yy350;-			if (yych <= 0xF4) goto yy351;-		}-	}-yy344:-	{ return (bufsize_t)(p - start); }-yy345:-	yych = *++p;-	if (yych <= 0x7F) goto yy341;-	if (yych <= 0xBF) goto yy339;-	goto yy341;-yy346:-	yych = *++p;-	if (yych <= 0x9F) goto yy341;-	if (yych <= 0xBF) goto yy345;-	goto yy341;-yy347:-	yych = *++p;-	if (yych <= 0x7F) goto yy341;-	if (yych <= 0xBF) goto yy345;-	goto yy341;-yy348:-	yych = *++p;-	if (yych <= 0x7F) goto yy341;-	if (yych <= 0x9F) goto yy345;-	goto yy341;-yy349:-	yych = *++p;-	if (yych <= 0x8F) goto yy341;-	if (yych <= 0xBF) goto yy347;-	goto yy341;-yy350:-	yych = *++p;-	if (yych <= 0x7F) goto yy341;-	if (yych <= 0xBF) goto yy347;-	goto yy341;-yy351:-	yych = *++p;-	if (yych <= 0x7F) goto yy341;-	if (yych <= 0x8F) goto yy347;-	goto yy341;-}--}--// Try to match an HTML block tag start line, returning-// an integer code for the type of block (1-6, matching the spec).-// #7 is handled by a separate function, below.-bufsize_t _scan_html_block_start(const unsigned char *p)-{-  const unsigned char *marker = NULL;--{-	unsigned char yych;-	yych = *p;-	if (yych == '<') goto yy356;-	++p;-yy355:-	{ return 0; }-yy356:-	yych = *(marker = ++p);-	switch (yych) {-	case '!':	goto yy357;-	case '/':	goto yy359;-	case '?':	goto yy360;-	case 'A':-	case 'a':	goto yy362;-	case 'B':-	case 'b':	goto yy363;-	case 'C':-	case 'c':	goto yy364;-	case 'D':-	case 'd':	goto yy365;-	case 'F':-	case 'f':	goto yy366;-	case 'H':-	case 'h':	goto yy367;-	case 'I':-	case 'i':	goto yy368;-	case 'L':-	case 'l':	goto yy369;-	case 'M':-	case 'm':	goto yy370;-	case 'N':-	case 'n':	goto yy371;-	case 'O':-	case 'o':	goto yy372;-	case 'P':-	case 'p':	goto yy373;-	case 'S':-	case 's':	goto yy374;-	case 'T':-	case 't':	goto yy375;-	case 'U':-	case 'u':	goto yy376;-	default:	goto yy355;-	}-yy357:-	yych = *++p;-	if (yych <= '@') {-		if (yych == '-') goto yy377;-	} else {-		if (yych <= 'Z') goto yy378;-		if (yych <= '[') goto yy380;-	}-yy358:-	p = marker;-	goto yy355;-yy359:-	yych = *++p;-	switch (yych) {-	case 'A':-	case 'a':	goto yy362;-	case 'B':-	case 'b':	goto yy363;-	case 'C':-	case 'c':	goto yy364;-	case 'D':-	case 'd':	goto yy365;-	case 'F':-	case 'f':	goto yy366;-	case 'H':-	case 'h':	goto yy367;-	case 'I':-	case 'i':	goto yy368;-	case 'L':-	case 'l':	goto yy369;-	case 'M':-	case 'm':	goto yy370;-	case 'N':-	case 'n':	goto yy371;-	case 'O':-	case 'o':	goto yy372;-	case 'P':-	case 'p':	goto yy381;-	case 'S':-	case 's':	goto yy382;-	case 'T':-	case 't':	goto yy375;-	case 'U':-	case 'u':	goto yy376;-	default:	goto yy358;-	}-yy360:-	++p;-	{ return 3; }-yy362:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'D') {-			if (yych <= 'C') goto yy358;-			goto yy383;-		} else {-			if (yych <= 'Q') goto yy358;-			if (yych <= 'R') goto yy384;-			goto yy385;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'd') goto yy383;-			goto yy358;-		} else {-			if (yych <= 'r') goto yy384;-			if (yych <= 's') goto yy385;-			goto yy358;-		}-	}-yy363:-	yych = *++p;-	if (yych <= 'O') {-		if (yych <= 'K') {-			if (yych == 'A') goto yy386;-			goto yy358;-		} else {-			if (yych <= 'L') goto yy387;-			if (yych <= 'N') goto yy358;-			goto yy388;-		}-	} else {-		if (yych <= 'k') {-			if (yych == 'a') goto yy386;-			goto yy358;-		} else {-			if (yych <= 'l') goto yy387;-			if (yych == 'o') goto yy388;-			goto yy358;-		}-	}-yy364:-	yych = *++p;-	if (yych <= 'O') {-		if (yych <= 'D') {-			if (yych == 'A') goto yy389;-			goto yy358;-		} else {-			if (yych <= 'E') goto yy390;-			if (yych <= 'N') goto yy358;-			goto yy391;-		}-	} else {-		if (yych <= 'd') {-			if (yych == 'a') goto yy389;-			goto yy358;-		} else {-			if (yych <= 'e') goto yy390;-			if (yych == 'o') goto yy391;-			goto yy358;-		}-	}-yy365:-	yych = *++p;-	switch (yych) {-	case 'D':-	case 'L':-	case 'T':-	case 'd':-	case 'l':-	case 't':	goto yy392;-	case 'E':-	case 'e':	goto yy393;-	case 'I':-	case 'i':	goto yy394;-	default:	goto yy358;-	}-yy366:-	yych = *++p;-	if (yych <= 'R') {-		if (yych <= 'N') {-			if (yych == 'I') goto yy395;-			goto yy358;-		} else {-			if (yych <= 'O') goto yy396;-			if (yych <= 'Q') goto yy358;-			goto yy397;-		}-	} else {-		if (yych <= 'n') {-			if (yych == 'i') goto yy395;-			goto yy358;-		} else {-			if (yych <= 'o') goto yy396;-			if (yych == 'r') goto yy397;-			goto yy358;-		}-	}-yy367:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'D') {-			if (yych <= '0') goto yy358;-			if (yych <= '6') goto yy392;-			goto yy358;-		} else {-			if (yych <= 'E') goto yy398;-			if (yych == 'R') goto yy392;-			goto yy358;-		}-	} else {-		if (yych <= 'q') {-			if (yych <= 'T') goto yy399;-			if (yych == 'e') goto yy398;-			goto yy358;-		} else {-			if (yych <= 'r') goto yy392;-			if (yych == 't') goto yy399;-			goto yy358;-		}-	}-yy368:-	yych = *++p;-	if (yych == 'F') goto yy400;-	if (yych == 'f') goto yy400;-	goto yy358;-yy369:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'E') goto yy401;-		if (yych <= 'H') goto yy358;-		goto yy402;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy358;-			goto yy401;-		} else {-			if (yych == 'i') goto yy402;-			goto yy358;-		}-	}-yy370:-	yych = *++p;-	if (yych <= 'E') {-		if (yych == 'A') goto yy403;-		if (yych <= 'D') goto yy358;-		goto yy404;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy358;-			goto yy403;-		} else {-			if (yych == 'e') goto yy404;-			goto yy358;-		}-	}-yy371:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'A') goto yy405;-		if (yych <= 'N') goto yy358;-		goto yy406;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy358;-			goto yy405;-		} else {-			if (yych == 'o') goto yy406;-			goto yy358;-		}-	}-yy372:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy392;-		if (yych <= 'O') goto yy358;-		goto yy407;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy358;-			goto yy392;-		} else {-			if (yych == 'p') goto yy407;-			goto yy358;-		}-	}-yy373:-	yych = *++p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			if (yych <= 0x1F) goto yy358;-			goto yy408;-		} else {-			if (yych == '/') goto yy410;-			if (yych <= '=') goto yy358;-			goto yy408;-		}-	} else {-		if (yych <= 'R') {-			if (yych == 'A') goto yy411;-			if (yych <= 'Q') goto yy358;-			goto yy412;-		} else {-			if (yych <= 'a') {-				if (yych <= '`') goto yy358;-				goto yy411;-			} else {-				if (yych == 'r') goto yy412;-				goto yy358;-			}-		}-	}-yy374:-	yych = *++p;-	if (yych <= 'U') {-		if (yych <= 'D') {-			if (yych == 'C') goto yy413;-			goto yy358;-		} else {-			if (yych <= 'E') goto yy414;-			if (yych <= 'S') goto yy358;-			if (yych <= 'T') goto yy415;-			goto yy416;-		}-	} else {-		if (yych <= 'e') {-			if (yych == 'c') goto yy413;-			if (yych <= 'd') goto yy358;-			goto yy414;-		} else {-			if (yych <= 's') goto yy358;-			if (yych <= 't') goto yy415;-			if (yych <= 'u') goto yy416;-			goto yy358;-		}-	}-yy375:-	yych = *++p;-	switch (yych) {-	case 'A':-	case 'a':	goto yy417;-	case 'B':-	case 'b':	goto yy418;-	case 'D':-	case 'd':	goto yy392;-	case 'F':-	case 'f':	goto yy419;-	case 'H':-	case 'h':	goto yy420;-	case 'I':-	case 'i':	goto yy421;-	case 'R':-	case 'r':	goto yy422;-	default:	goto yy358;-	}-yy376:-	yych = *++p;-	if (yych == 'L') goto yy392;-	if (yych == 'l') goto yy392;-	goto yy358;-yy377:-	yych = *++p;-	if (yych == '-') goto yy423;-	goto yy358;-yy378:-	++p;-	{ return 4; }-yy380:-	yych = *++p;-	if (yych == 'C') goto yy425;-	if (yych == 'c') goto yy425;-	goto yy358;-yy381:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= '@') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'A') goto yy411;-			if (yych == 'a') goto yy411;-			goto yy358;-		}-	}-yy382:-	yych = *++p;-	if (yych <= 'U') {-		if (yych == 'E') goto yy414;-		if (yych <= 'T') goto yy358;-		goto yy416;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy358;-			goto yy414;-		} else {-			if (yych == 'u') goto yy416;-			goto yy358;-		}-	}-yy383:-	yych = *++p;-	if (yych == 'D') goto yy426;-	if (yych == 'd') goto yy426;-	goto yy358;-yy384:-	yych = *++p;-	if (yych == 'T') goto yy427;-	if (yych == 't') goto yy427;-	goto yy358;-yy385:-	yych = *++p;-	if (yych == 'I') goto yy428;-	if (yych == 'i') goto yy428;-	goto yy358;-yy386:-	yych = *++p;-	if (yych == 'S') goto yy429;-	if (yych == 's') goto yy429;-	goto yy358;-yy387:-	yych = *++p;-	if (yych == 'O') goto yy430;-	if (yych == 'o') goto yy430;-	goto yy358;-yy388:-	yych = *++p;-	if (yych == 'D') goto yy431;-	if (yych == 'd') goto yy431;-	goto yy358;-yy389:-	yych = *++p;-	if (yych == 'P') goto yy432;-	if (yych == 'p') goto yy432;-	goto yy358;-yy390:-	yych = *++p;-	if (yych == 'N') goto yy433;-	if (yych == 'n') goto yy433;-	goto yy358;-yy391:-	yych = *++p;-	if (yych == 'L') goto yy434;-	if (yych == 'l') goto yy434;-	goto yy358;-yy392:-	yych = *++p;-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy358;-		if (yych <= '\r') goto yy408;-		if (yych <= 0x1F) goto yy358;-		goto yy408;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy358;-			goto yy410;-		} else {-			if (yych == '>') goto yy408;-			goto yy358;-		}-	}-yy393:-	yych = *++p;-	if (yych == 'T') goto yy435;-	if (yych == 't') goto yy435;-	goto yy358;-yy394:-	yych = *++p;-	if (yych <= 'V') {-		if (yych <= 'Q') {-			if (yych == 'A') goto yy436;-			goto yy358;-		} else {-			if (yych <= 'R') goto yy392;-			if (yych <= 'U') goto yy358;-			goto yy392;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'a') goto yy436;-			goto yy358;-		} else {-			if (yych <= 'r') goto yy392;-			if (yych == 'v') goto yy392;-			goto yy358;-		}-	}-yy395:-	yych = *++p;-	if (yych <= 'G') {-		if (yych == 'E') goto yy437;-		if (yych <= 'F') goto yy358;-		goto yy438;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy358;-			goto yy437;-		} else {-			if (yych == 'g') goto yy438;-			goto yy358;-		}-	}-yy396:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == 'O') goto yy433;-		if (yych <= 'Q') goto yy358;-		goto yy439;-	} else {-		if (yych <= 'o') {-			if (yych <= 'n') goto yy358;-			goto yy433;-		} else {-			if (yych == 'r') goto yy439;-			goto yy358;-		}-	}-yy397:-	yych = *++p;-	if (yych == 'A') goto yy440;-	if (yych == 'a') goto yy440;-	goto yy358;-yy398:-	yych = *++p;-	if (yych == 'A') goto yy441;-	if (yych == 'a') goto yy441;-	goto yy358;-yy399:-	yych = *++p;-	if (yych == 'M') goto yy376;-	if (yych == 'm') goto yy376;-	goto yy358;-yy400:-	yych = *++p;-	if (yych == 'R') goto yy442;-	if (yych == 'r') goto yy442;-	goto yy358;-yy401:-	yych = *++p;-	if (yych == 'G') goto yy443;-	if (yych == 'g') goto yy443;-	goto yy358;-yy402:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'M') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'N') goto yy444;-			if (yych == 'n') goto yy444;-			goto yy358;-		}-	}-yy403:-	yych = *++p;-	if (yych == 'I') goto yy445;-	if (yych == 'i') goto yy445;-	goto yy358;-yy404:-	yych = *++p;-	if (yych == 'N') goto yy446;-	if (yych == 'n') goto yy446;-	goto yy358;-yy405:-	yych = *++p;-	if (yych == 'V') goto yy392;-	if (yych == 'v') goto yy392;-	goto yy358;-yy406:-	yych = *++p;-	if (yych == 'F') goto yy447;-	if (yych == 'f') goto yy447;-	goto yy358;-yy407:-	yych = *++p;-	if (yych == 'T') goto yy448;-	if (yych == 't') goto yy448;-	goto yy358;-yy408:-	++p;-	{ return 6; }-yy410:-	yych = *++p;-	if (yych == '>') goto yy408;-	goto yy358;-yy411:-	yych = *++p;-	if (yych == 'R') goto yy449;-	if (yych == 'r') goto yy449;-	goto yy358;-yy412:-	yych = *++p;-	if (yych == 'E') goto yy450;-	if (yych == 'e') goto yy450;-	goto yy358;-yy413:-	yych = *++p;-	if (yych == 'R') goto yy451;-	if (yych == 'r') goto yy451;-	goto yy358;-yy414:-	yych = *++p;-	if (yych == 'C') goto yy432;-	if (yych == 'c') goto yy432;-	goto yy358;-yy415:-	yych = *++p;-	if (yych == 'Y') goto yy452;-	if (yych == 'y') goto yy452;-	goto yy358;-yy416:-	yych = *++p;-	if (yych == 'M') goto yy453;-	if (yych == 'm') goto yy453;-	goto yy358;-yy417:-	yych = *++p;-	if (yych == 'B') goto yy454;-	if (yych == 'b') goto yy454;-	goto yy358;-yy418:-	yych = *++p;-	if (yych == 'O') goto yy388;-	if (yych == 'o') goto yy388;-	goto yy358;-yy419:-	yych = *++p;-	if (yych == 'O') goto yy455;-	if (yych == 'o') goto yy455;-	goto yy358;-yy420:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'D') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'E') goto yy456;-			if (yych == 'e') goto yy456;-			goto yy358;-		}-	}-yy421:-	yych = *++p;-	if (yych == 'T') goto yy454;-	if (yych == 't') goto yy454;-	goto yy358;-yy422:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= '@') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'A') goto yy457;-			if (yych == 'a') goto yy457;-			goto yy358;-		}-	}-yy423:-	++p;-	{ return 2; }-yy425:-	yych = *++p;-	if (yych == 'D') goto yy458;-	if (yych == 'd') goto yy458;-	goto yy358;-yy426:-	yych = *++p;-	if (yych == 'R') goto yy459;-	if (yych == 'r') goto yy459;-	goto yy358;-yy427:-	yych = *++p;-	if (yych == 'I') goto yy460;-	if (yych == 'i') goto yy460;-	goto yy358;-yy428:-	yych = *++p;-	if (yych == 'D') goto yy461;-	if (yych == 'd') goto yy461;-	goto yy358;-yy429:-	yych = *++p;-	if (yych == 'E') goto yy462;-	if (yych == 'e') goto yy462;-	goto yy358;-yy430:-	yych = *++p;-	if (yych == 'C') goto yy463;-	if (yych == 'c') goto yy463;-	goto yy358;-yy431:-	yych = *++p;-	if (yych == 'Y') goto yy392;-	if (yych == 'y') goto yy392;-	goto yy358;-yy432:-	yych = *++p;-	if (yych == 'T') goto yy464;-	if (yych == 't') goto yy464;-	goto yy358;-yy433:-	yych = *++p;-	if (yych == 'T') goto yy465;-	if (yych == 't') goto yy465;-	goto yy358;-yy434:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'F') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'G') goto yy466;-			if (yych == 'g') goto yy466;-			goto yy358;-		}-	}-yy435:-	yych = *++p;-	if (yych == 'A') goto yy467;-	if (yych == 'a') goto yy467;-	goto yy358;-yy436:-	yych = *++p;-	if (yych == 'L') goto yy468;-	if (yych == 'l') goto yy468;-	goto yy358;-yy437:-	yych = *++p;-	if (yych == 'L') goto yy469;-	if (yych == 'l') goto yy469;-	goto yy358;-yy438:-	yych = *++p;-	if (yych <= 'U') {-		if (yych == 'C') goto yy470;-		if (yych <= 'T') goto yy358;-		goto yy471;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy358;-			goto yy470;-		} else {-			if (yych == 'u') goto yy471;-			goto yy358;-		}-	}-yy439:-	yych = *++p;-	if (yych == 'M') goto yy392;-	if (yych == 'm') goto yy392;-	goto yy358;-yy440:-	yych = *++p;-	if (yych == 'M') goto yy472;-	if (yych == 'm') goto yy472;-	goto yy358;-yy441:-	yych = *++p;-	if (yych == 'D') goto yy473;-	if (yych == 'd') goto yy473;-	goto yy358;-yy442:-	yych = *++p;-	if (yych == 'A') goto yy474;-	if (yych == 'a') goto yy474;-	goto yy358;-yy443:-	yych = *++p;-	if (yych == 'E') goto yy475;-	if (yych == 'e') goto yy475;-	goto yy358;-yy444:-	yych = *++p;-	if (yych == 'K') goto yy392;-	if (yych == 'k') goto yy392;-	goto yy358;-yy445:-	yych = *++p;-	if (yych == 'N') goto yy392;-	if (yych == 'n') goto yy392;-	goto yy358;-yy446:-	yych = *++p;-	if (yych == 'U') goto yy476;-	if (yych == 'u') goto yy476;-	goto yy358;-yy447:-	yych = *++p;-	if (yych == 'R') goto yy477;-	if (yych == 'r') goto yy477;-	goto yy358;-yy448:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'G') goto yy466;-		if (yych <= 'H') goto yy358;-		goto yy478;-	} else {-		if (yych <= 'g') {-			if (yych <= 'f') goto yy358;-			goto yy466;-		} else {-			if (yych == 'i') goto yy478;-			goto yy358;-		}-	}-yy449:-	yych = *++p;-	if (yych == 'A') goto yy439;-	if (yych == 'a') goto yy439;-	goto yy358;-yy450:-	yych = *++p;-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy358;-		if (yych <= '\r') goto yy479;-		goto yy358;-	} else {-		if (yych <= ' ') goto yy479;-		if (yych == '>') goto yy479;-		goto yy358;-	}-yy451:-	yych = *++p;-	if (yych == 'I') goto yy481;-	if (yych == 'i') goto yy481;-	goto yy358;-yy452:-	yych = *++p;-	if (yych == 'L') goto yy412;-	if (yych == 'l') goto yy412;-	goto yy358;-yy453:-	yych = *++p;-	if (yych == 'M') goto yy482;-	if (yych == 'm') goto yy482;-	goto yy358;-yy454:-	yych = *++p;-	if (yych == 'L') goto yy461;-	if (yych == 'l') goto yy461;-	goto yy358;-yy455:-	yych = *++p;-	if (yych == 'O') goto yy483;-	if (yych == 'o') goto yy483;-	goto yy358;-yy456:-	yych = *++p;-	if (yych == 'A') goto yy484;-	if (yych == 'a') goto yy484;-	goto yy358;-yy457:-	yych = *++p;-	if (yych == 'C') goto yy444;-	if (yych == 'c') goto yy444;-	goto yy358;-yy458:-	yych = *++p;-	if (yych == 'A') goto yy485;-	if (yych == 'a') goto yy485;-	goto yy358;-yy459:-	yych = *++p;-	if (yych == 'E') goto yy486;-	if (yych == 'e') goto yy486;-	goto yy358;-yy460:-	yych = *++p;-	if (yych == 'C') goto yy454;-	if (yych == 'c') goto yy454;-	goto yy358;-yy461:-	yych = *++p;-	if (yych == 'E') goto yy392;-	if (yych == 'e') goto yy392;-	goto yy358;-yy462:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'E') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'F') goto yy487;-			if (yych == 'f') goto yy487;-			goto yy358;-		}-	}-yy463:-	yych = *++p;-	if (yych == 'K') goto yy488;-	if (yych == 'k') goto yy488;-	goto yy358;-yy464:-	yych = *++p;-	if (yych == 'I') goto yy478;-	if (yych == 'i') goto yy478;-	goto yy358;-yy465:-	yych = *++p;-	if (yych == 'E') goto yy489;-	if (yych == 'e') goto yy489;-	goto yy358;-yy466:-	yych = *++p;-	if (yych == 'R') goto yy490;-	if (yych == 'r') goto yy490;-	goto yy358;-yy467:-	yych = *++p;-	if (yych == 'I') goto yy491;-	if (yych == 'i') goto yy491;-	goto yy358;-yy468:-	yych = *++p;-	if (yych == 'O') goto yy492;-	if (yych == 'o') goto yy492;-	goto yy358;-yy469:-	yych = *++p;-	if (yych == 'D') goto yy493;-	if (yych == 'd') goto yy493;-	goto yy358;-yy470:-	yych = *++p;-	if (yych == 'A') goto yy389;-	if (yych == 'a') goto yy389;-	goto yy358;-yy471:-	yych = *++p;-	if (yych == 'R') goto yy461;-	if (yych == 'r') goto yy461;-	goto yy358;-yy472:-	yych = *++p;-	if (yych == 'E') goto yy494;-	if (yych == 'e') goto yy494;-	goto yy358;-yy473:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'D') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'E') goto yy489;-			if (yych == 'e') goto yy489;-			goto yy358;-		}-	}-yy474:-	yych = *++p;-	if (yych == 'M') goto yy461;-	if (yych == 'm') goto yy461;-	goto yy358;-yy475:-	yych = *++p;-	if (yych == 'N') goto yy484;-	if (yych == 'n') goto yy484;-	goto yy358;-yy476:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'H') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'I') goto yy495;-			if (yych == 'i') goto yy495;-			goto yy358;-		}-	}-yy477:-	yych = *++p;-	if (yych == 'A') goto yy496;-	if (yych == 'a') goto yy496;-	goto yy358;-yy478:-	yych = *++p;-	if (yych == 'O') goto yy445;-	if (yych == 'o') goto yy445;-	goto yy358;-yy479:-	++p;-	{ return 1; }-yy481:-	yych = *++p;-	if (yych == 'P') goto yy497;-	if (yych == 'p') goto yy497;-	goto yy358;-yy482:-	yych = *++p;-	if (yych == 'A') goto yy498;-	if (yych == 'a') goto yy498;-	goto yy358;-yy483:-	yych = *++p;-	if (yych == 'T') goto yy392;-	if (yych == 't') goto yy392;-	goto yy358;-yy484:-	yych = *++p;-	if (yych == 'D') goto yy392;-	if (yych == 'd') goto yy392;-	goto yy358;-yy485:-	yych = *++p;-	if (yych == 'T') goto yy499;-	if (yych == 't') goto yy499;-	goto yy358;-yy486:-	yych = *++p;-	if (yych == 'S') goto yy500;-	if (yych == 's') goto yy500;-	goto yy358;-yy487:-	yych = *++p;-	if (yych == 'O') goto yy501;-	if (yych == 'o') goto yy501;-	goto yy358;-yy488:-	yych = *++p;-	if (yych == 'Q') goto yy502;-	if (yych == 'q') goto yy502;-	goto yy358;-yy489:-	yych = *++p;-	if (yych == 'R') goto yy392;-	if (yych == 'r') goto yy392;-	goto yy358;-yy490:-	yych = *++p;-	if (yych == 'O') goto yy503;-	if (yych == 'o') goto yy503;-	goto yy358;-yy491:-	yych = *++p;-	if (yych == 'L') goto yy500;-	if (yych == 'l') goto yy500;-	goto yy358;-yy492:-	yych = *++p;-	if (yych == 'G') goto yy392;-	if (yych == 'g') goto yy392;-	goto yy358;-yy493:-	yych = *++p;-	if (yych == 'S') goto yy504;-	if (yych == 's') goto yy504;-	goto yy358;-yy494:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy358;-			if (yych <= '\r') goto yy408;-			goto yy358;-		} else {-			if (yych <= ' ') goto yy408;-			if (yych <= '.') goto yy358;-			goto yy410;-		}-	} else {-		if (yych <= 'R') {-			if (yych == '>') goto yy408;-			goto yy358;-		} else {-			if (yych <= 'S') goto yy504;-			if (yych == 's') goto yy504;-			goto yy358;-		}-	}-yy495:-	yych = *++p;-	if (yych == 'T') goto yy505;-	if (yych == 't') goto yy505;-	goto yy358;-yy496:-	yych = *++p;-	if (yych == 'M') goto yy506;-	if (yych == 'm') goto yy506;-	goto yy358;-yy497:-	yych = *++p;-	if (yych == 'T') goto yy450;-	if (yych == 't') goto yy450;-	goto yy358;-yy498:-	yych = *++p;-	if (yych == 'R') goto yy431;-	if (yych == 'r') goto yy431;-	goto yy358;-yy499:-	yych = *++p;-	if (yych == 'A') goto yy507;-	if (yych == 'a') goto yy507;-	goto yy358;-yy500:-	yych = *++p;-	if (yych == 'S') goto yy392;-	if (yych == 's') goto yy392;-	goto yy358;-yy501:-	yych = *++p;-	if (yych == 'N') goto yy483;-	if (yych == 'n') goto yy483;-	goto yy358;-yy502:-	yych = *++p;-	if (yych == 'U') goto yy508;-	if (yych == 'u') goto yy508;-	goto yy358;-yy503:-	yych = *++p;-	if (yych == 'U') goto yy509;-	if (yych == 'u') goto yy509;-	goto yy358;-yy504:-	yych = *++p;-	if (yych == 'E') goto yy483;-	if (yych == 'e') goto yy483;-	goto yy358;-yy505:-	yych = *++p;-	if (yych == 'E') goto yy439;-	if (yych == 'e') goto yy439;-	goto yy358;-yy506:-	yych = *++p;-	if (yych == 'E') goto yy500;-	if (yych == 'e') goto yy500;-	goto yy358;-yy507:-	yych = *++p;-	if (yych == '[') goto yy510;-	goto yy358;-yy508:-	yych = *++p;-	if (yych == 'O') goto yy512;-	if (yych == 'o') goto yy512;-	goto yy358;-yy509:-	yych = *++p;-	if (yych == 'P') goto yy392;-	if (yych == 'p') goto yy392;-	goto yy358;-yy510:-	++p;-	{ return 5; }-yy512:-	yych = *++p;-	if (yych == 'T') goto yy461;-	if (yych == 't') goto yy461;-	goto yy358;-}--}--// Try to match an HTML block tag start line of type 7, returning-// 7 if successful, 0 if not.-bufsize_t _scan_html_block_start_7(const unsigned char *p)-{-  const unsigned char *marker = NULL;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0, 224, 224, 224, 224, 224, 224, 224, -		224, 198, 210, 194, 198, 194, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		198, 224, 128, 224, 224, 224, 224,  64, -		224, 224, 224, 224, 224, 233, 232, 224, -		233, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 232, 224, 192, 192, 192, 224, -		224, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 224, 224, 224, 224, 232, -		192, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 233, 233, 233, 233, 233, -		233, 233, 233, 224, 224, 224, 224, 224, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych == '<') goto yy517;-	++p;-yy516:-	{ return 0; }-yy517:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '@') {-		if (yych != '/') goto yy516;-	} else {-		if (yych <= 'Z') goto yy520;-		if (yych <= '`') goto yy516;-		if (yych <= 'z') goto yy520;-		goto yy516;-	}-	yych = *++p;-	if (yych <= '@') goto yy519;-	if (yych <= 'Z') goto yy522;-	if (yych <= '`') goto yy519;-	if (yych <= 'z') goto yy522;-yy519:-	p = marker;-	if (yyaccept == 0) {-		goto yy516;-	} else {-		goto yy535;-	}-yy520:-	yych = *++p;-	if (yybm[0+yych] & 2) {-		goto yy524;-	}-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych == '-') goto yy520;-			goto yy519;-		} else {-			if (yych <= '/') goto yy526;-			if (yych <= '9') goto yy520;-			goto yy519;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy527;-			if (yych <= '@') goto yy519;-			goto yy520;-		} else {-			if (yych <= '`') goto yy519;-			if (yych <= 'z') goto yy520;-			goto yy519;-		}-	}-yy522:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy519;-			if (yych <= '\r') goto yy529;-			goto yy519;-		} else {-			if (yych <= ' ') goto yy529;-			if (yych == '-') goto yy522;-			goto yy519;-		}-	} else {-		if (yych <= '@') {-			if (yych <= '9') goto yy522;-			if (yych == '>') goto yy527;-			goto yy519;-		} else {-			if (yych <= 'Z') goto yy522;-			if (yych <= '`') goto yy519;-			if (yych <= 'z') goto yy522;-			goto yy519;-		}-	}-yy524:-	yych = *++p;-	if (yybm[0+yych] & 2) {-		goto yy524;-	}-	if (yych <= '>') {-		if (yych <= '9') {-			if (yych != '/') goto yy519;-		} else {-			if (yych <= ':') goto yy531;-			if (yych <= '=') goto yy519;-			goto yy527;-		}-	} else {-		if (yych <= '^') {-			if (yych <= '@') goto yy519;-			if (yych <= 'Z') goto yy531;-			goto yy519;-		} else {-			if (yych == '`') goto yy519;-			if (yych <= 'z') goto yy531;-			goto yy519;-		}-	}-yy526:-	yych = *++p;-	if (yych != '>') goto yy519;-yy527:-	yych = *++p;-	if (yybm[0+yych] & 4) {-		goto yy527;-	}-	if (yych <= 0x08) goto yy519;-	if (yych <= '\n') goto yy533;-	if (yych <= '\v') goto yy519;-	if (yych <= '\r') goto yy536;-	goto yy519;-yy529:-	yych = *++p;-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy519;-		if (yych <= '\r') goto yy529;-		goto yy519;-	} else {-		if (yych <= ' ') goto yy529;-		if (yych == '>') goto yy527;-		goto yy519;-	}-yy531:-	yych = *++p;-	if (yybm[0+yych] & 8) {-		goto yy531;-	}-	if (yych <= ',') {-		if (yych <= '\r') {-			if (yych <= 0x08) goto yy519;-			goto yy537;-		} else {-			if (yych == ' ') goto yy537;-			goto yy519;-		}-	} else {-		if (yych <= '<') {-			if (yych <= '/') goto yy526;-			goto yy519;-		} else {-			if (yych <= '=') goto yy539;-			if (yych <= '>') goto yy527;-			goto yy519;-		}-	}-yy533:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 4) {-		goto yy527;-	}-	if (yych <= 0x08) goto yy535;-	if (yych <= '\n') goto yy533;-	if (yych <= '\v') goto yy535;-	if (yych <= '\r') goto yy536;-yy535:-	{ return 7; }-yy536:-	++p;-	goto yy535;-yy537:-	yych = *++p;-	if (yych <= '<') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy519;-			if (yych <= '\r') goto yy537;-			if (yych <= 0x1F) goto yy519;-			goto yy537;-		} else {-			if (yych <= '/') {-				if (yych <= '.') goto yy519;-				goto yy526;-			} else {-				if (yych == ':') goto yy531;-				goto yy519;-			}-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '=') goto yy539;-			if (yych <= '>') goto yy527;-			if (yych <= '@') goto yy519;-			goto yy531;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy519;-				goto yy531;-			} else {-				if (yych <= '`') goto yy519;-				if (yych <= 'z') goto yy531;-				goto yy519;-			}-		}-	}-yy539:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy541;-	}-	if (yych <= 0xE0) {-		if (yych <= '"') {-			if (yych <= 0x00) goto yy519;-			if (yych <= ' ') goto yy539;-			goto yy543;-		} else {-			if (yych <= '\'') goto yy545;-			if (yych <= 0xC1) goto yy519;-			if (yych <= 0xDF) goto yy547;-			goto yy548;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy550;-			goto yy549;-		} else {-			if (yych <= 0xF0) goto yy551;-			if (yych <= 0xF3) goto yy552;-			if (yych <= 0xF4) goto yy553;-			goto yy519;-		}-	}-yy541:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy541;-	}-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy519;-			if (yych <= ' ') goto yy524;-			goto yy519;-		} else {-			if (yych <= '>') goto yy527;-			if (yych <= 0xC1) goto yy519;-			if (yych <= 0xDF) goto yy547;-			goto yy548;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy550;-			goto yy549;-		} else {-			if (yych <= 0xF0) goto yy551;-			if (yych <= 0xF3) goto yy552;-			if (yych <= 0xF4) goto yy553;-			goto yy519;-		}-	}-yy543:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy543;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy519;-			if (yych <= '"') goto yy554;-			goto yy519;-		} else {-			if (yych <= 0xDF) goto yy555;-			if (yych <= 0xE0) goto yy556;-			goto yy557;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy558;-			if (yych <= 0xEF) goto yy557;-			goto yy559;-		} else {-			if (yych <= 0xF3) goto yy560;-			if (yych <= 0xF4) goto yy561;-			goto yy519;-		}-	}-yy545:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy545;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy519;-			if (yych <= '\'') goto yy554;-			goto yy519;-		} else {-			if (yych <= 0xDF) goto yy562;-			if (yych <= 0xE0) goto yy563;-			goto yy564;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy565;-			if (yych <= 0xEF) goto yy564;-			goto yy566;-		} else {-			if (yych <= 0xF3) goto yy567;-			if (yych <= 0xF4) goto yy568;-			goto yy519;-		}-	}-yy547:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy541;-	goto yy519;-yy548:-	yych = *++p;-	if (yych <= 0x9F) goto yy519;-	if (yych <= 0xBF) goto yy547;-	goto yy519;-yy549:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy547;-	goto yy519;-yy550:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x9F) goto yy547;-	goto yy519;-yy551:-	yych = *++p;-	if (yych <= 0x8F) goto yy519;-	if (yych <= 0xBF) goto yy549;-	goto yy519;-yy552:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy549;-	goto yy519;-yy553:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x8F) goto yy549;-	goto yy519;-yy554:-	yych = *++p;-	if (yybm[0+yych] & 2) {-		goto yy524;-	}-	if (yych == '/') goto yy526;-	if (yych == '>') goto yy527;-	goto yy519;-yy555:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy543;-	goto yy519;-yy556:-	yych = *++p;-	if (yych <= 0x9F) goto yy519;-	if (yych <= 0xBF) goto yy555;-	goto yy519;-yy557:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy555;-	goto yy519;-yy558:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x9F) goto yy555;-	goto yy519;-yy559:-	yych = *++p;-	if (yych <= 0x8F) goto yy519;-	if (yych <= 0xBF) goto yy557;-	goto yy519;-yy560:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy557;-	goto yy519;-yy561:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x8F) goto yy557;-	goto yy519;-yy562:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy545;-	goto yy519;-yy563:-	yych = *++p;-	if (yych <= 0x9F) goto yy519;-	if (yych <= 0xBF) goto yy562;-	goto yy519;-yy564:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy562;-	goto yy519;-yy565:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x9F) goto yy562;-	goto yy519;-yy566:-	yych = *++p;-	if (yych <= 0x8F) goto yy519;-	if (yych <= 0xBF) goto yy564;-	goto yy519;-yy567:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0xBF) goto yy564;-	goto yy519;-yy568:-	yych = *++p;-	if (yych <= 0x7F) goto yy519;-	if (yych <= 0x8F) goto yy564;-	goto yy519;-}--}--// Try to match an HTML block end line of type 1-bufsize_t _scan_html_block_end_1(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,   0,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64, 128,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych <= 0xDF) {-		if (yych <= ';') {-			if (yych <= 0x00) goto yy571;-			if (yych != '\n') goto yy573;-		} else {-			if (yych <= '<') goto yy574;-			if (yych <= 0x7F) goto yy573;-			if (yych >= 0xC2) goto yy575;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy576;-			if (yych == 0xED) goto yy578;-			goto yy577;-		} else {-			if (yych <= 0xF0) goto yy579;-			if (yych <= 0xF3) goto yy580;-			if (yych <= 0xF4) goto yy581;-		}-	}-yy571:-	++p;-yy572:-	{ return 0; }-yy573:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy572;-		if (yych <= '\t') goto yy583;-		goto yy572;-	} else {-		if (yych <= 0x7F) goto yy583;-		if (yych <= 0xC1) goto yy572;-		if (yych <= 0xF4) goto yy583;-		goto yy572;-	}-yy574:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '.') {-		if (yych <= 0x00) goto yy572;-		if (yych == '\n') goto yy572;-		goto yy583;-	} else {-		if (yych <= 0x7F) {-			if (yych <= '/') goto yy594;-			goto yy583;-		} else {-			if (yych <= 0xC1) goto yy572;-			if (yych <= 0xF4) goto yy583;-			goto yy572;-		}-	}-yy575:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy572;-	if (yych <= 0xBF) goto yy582;-	goto yy572;-yy576:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy572;-	if (yych <= 0xBF) goto yy587;-	goto yy572;-yy577:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy572;-	if (yych <= 0xBF) goto yy587;-	goto yy572;-yy578:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy572;-	if (yych <= 0x9F) goto yy587;-	goto yy572;-yy579:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy572;-	if (yych <= 0xBF) goto yy589;-	goto yy572;-yy580:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy572;-	if (yych <= 0xBF) goto yy589;-	goto yy572;-yy581:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy572;-	if (yych <= 0x8F) goto yy589;-	goto yy572;-yy582:-	yych = *++p;-yy583:-	if (yybm[0+yych] & 64) {-		goto yy582;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy584;-			if (yych <= '<') goto yy585;-		} else {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			goto yy589;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy590;-			if (yych <= 0xEF) goto yy589;-			goto yy591;-		} else {-			if (yych <= 0xF3) goto yy592;-			if (yych <= 0xF4) goto yy593;-		}-	}-yy584:-	p = marker;-	if (yyaccept == 0) {-		goto yy572;-	} else {-		goto yy604;-	}-yy585:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xDF) {-		if (yych <= '.') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= '/') goto yy594;-			if (yych <= 0x7F) goto yy582;-			if (yych <= 0xC1) goto yy584;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy588;-			if (yych == 0xED) goto yy590;-			goto yy589;-		} else {-			if (yych <= 0xF0) goto yy591;-			if (yych <= 0xF3) goto yy592;-			if (yych <= 0xF4) goto yy593;-			goto yy584;-		}-	}-yy587:-	yych = *++p;-	if (yych <= 0x7F) goto yy584;-	if (yych <= 0xBF) goto yy582;-	goto yy584;-yy588:-	yych = *++p;-	if (yych <= 0x9F) goto yy584;-	if (yych <= 0xBF) goto yy587;-	goto yy584;-yy589:-	yych = *++p;-	if (yych <= 0x7F) goto yy584;-	if (yych <= 0xBF) goto yy587;-	goto yy584;-yy590:-	yych = *++p;-	if (yych <= 0x7F) goto yy584;-	if (yych <= 0x9F) goto yy587;-	goto yy584;-yy591:-	yych = *++p;-	if (yych <= 0x8F) goto yy584;-	if (yych <= 0xBF) goto yy589;-	goto yy584;-yy592:-	yych = *++p;-	if (yych <= 0x7F) goto yy584;-	if (yych <= 0xBF) goto yy589;-	goto yy584;-yy593:-	yych = *++p;-	if (yych <= 0x7F) goto yy584;-	if (yych <= 0x8F) goto yy589;-	goto yy584;-yy594:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 's') {-		if (yych <= 'P') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy584;-				goto yy582;-			} else {-				if (yych <= '\n') goto yy584;-				if (yych <= 'O') goto yy582;-			}-		} else {-			if (yych <= 'o') {-				if (yych == 'S') goto yy596;-				goto yy582;-			} else {-				if (yych <= 'p') goto yy595;-				if (yych <= 'r') goto yy582;-				goto yy596;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			} else {-				if (yych <= 0xDF) goto yy587;-				if (yych <= 0xE0) goto yy588;-				goto yy589;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy590;-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy595:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'Q') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'q') {-				if (yych <= 'R') goto yy597;-				goto yy582;-			} else {-				if (yych <= 'r') goto yy597;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy596:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 't') {-		if (yych <= 'C') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy584;-				goto yy582;-			} else {-				if (yych <= '\n') goto yy584;-				if (yych <= 'B') goto yy582;-				goto yy598;-			}-		} else {-			if (yych <= 'b') {-				if (yych == 'T') goto yy599;-				goto yy582;-			} else {-				if (yych <= 'c') goto yy598;-				if (yych <= 's') goto yy582;-				goto yy599;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			} else {-				if (yych <= 0xDF) goto yy587;-				if (yych <= 0xE0) goto yy588;-				goto yy589;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy590;-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy597:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'D') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'd') {-				if (yych <= 'E') goto yy600;-				goto yy582;-			} else {-				if (yych <= 'e') goto yy600;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy598:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'Q') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'q') {-				if (yych <= 'R') goto yy601;-				goto yy582;-			} else {-				if (yych <= 'r') goto yy601;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy599:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'X') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'x') {-				if (yych <= 'Y') goto yy602;-				goto yy582;-			} else {-				if (yych <= 'y') goto yy602;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy600:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= '>') goto yy603;-			if (yych <= 0x7F) goto yy582;-			if (yych <= 0xC1) goto yy584;-			goto yy587;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy588;-			if (yych == 0xED) goto yy590;-			goto yy589;-		} else {-			if (yych <= 0xF0) goto yy591;-			if (yych <= 0xF3) goto yy592;-			if (yych <= 0xF4) goto yy593;-			goto yy584;-		}-	}-yy601:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'H') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'h') {-				if (yych <= 'I') goto yy605;-				goto yy582;-			} else {-				if (yych <= 'i') goto yy605;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy602:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'K') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'k') {-				if (yych <= 'L') goto yy597;-				goto yy582;-			} else {-				if (yych <= 'l') goto yy597;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy603:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy582;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy604;-			if (yych <= '<') goto yy585;-		} else {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			goto yy589;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy590;-			if (yych <= 0xEF) goto yy589;-			goto yy591;-		} else {-			if (yych <= 0xF3) goto yy592;-			if (yych <= 0xF4) goto yy593;-		}-	}-yy604:-	{ return (bufsize_t)(p - start); }-yy605:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'O') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 'o') {-				if (yych >= 'Q') goto yy582;-			} else {-				if (yych <= 'p') goto yy606;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-yy606:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy585;-	}-	if (yych <= 0xC1) {-		if (yych <= 'S') {-			if (yych <= 0x00) goto yy584;-			if (yych == '\n') goto yy584;-			goto yy582;-		} else {-			if (yych <= 's') {-				if (yych <= 'T') goto yy600;-				goto yy582;-			} else {-				if (yych <= 't') goto yy600;-				if (yych <= 0x7F) goto yy582;-				goto yy584;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy587;-			if (yych <= 0xE0) goto yy588;-			if (yych <= 0xEC) goto yy589;-			goto yy590;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy589;-				goto yy591;-			} else {-				if (yych <= 0xF3) goto yy592;-				if (yych <= 0xF4) goto yy593;-				goto yy584;-			}-		}-	}-}--}--// Try to match an HTML block end line of type 2-bufsize_t _scan_html_block_end_2(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,   0,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64, 128,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych <= 0xDF) {-		if (yych <= ',') {-			if (yych <= 0x00) goto yy609;-			if (yych != '\n') goto yy611;-		} else {-			if (yych <= '-') goto yy612;-			if (yych <= 0x7F) goto yy611;-			if (yych >= 0xC2) goto yy613;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy614;-			if (yych == 0xED) goto yy616;-			goto yy615;-		} else {-			if (yych <= 0xF0) goto yy617;-			if (yych <= 0xF3) goto yy618;-			if (yych <= 0xF4) goto yy619;-		}-	}-yy609:-	++p;-yy610:-	{ return 0; }-yy611:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy610;-		if (yych <= '\t') goto yy621;-		goto yy610;-	} else {-		if (yych <= 0x7F) goto yy621;-		if (yych <= 0xC1) goto yy610;-		if (yych <= 0xF4) goto yy621;-		goto yy610;-	}-yy612:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy631;-	}-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy610;-		if (yych <= '\t') goto yy621;-		goto yy610;-	} else {-		if (yych <= 0x7F) goto yy621;-		if (yych <= 0xC1) goto yy610;-		if (yych <= 0xF4) goto yy621;-		goto yy610;-	}-yy613:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy610;-	if (yych <= 0xBF) goto yy620;-	goto yy610;-yy614:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy610;-	if (yych <= 0xBF) goto yy624;-	goto yy610;-yy615:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy610;-	if (yych <= 0xBF) goto yy624;-	goto yy610;-yy616:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy610;-	if (yych <= 0x9F) goto yy624;-	goto yy610;-yy617:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy610;-	if (yych <= 0xBF) goto yy626;-	goto yy610;-yy618:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy610;-	if (yych <= 0xBF) goto yy626;-	goto yy610;-yy619:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy610;-	if (yych <= 0x8F) goto yy626;-	goto yy610;-yy620:-	yych = *++p;-yy621:-	if (yybm[0+yych] & 64) {-		goto yy620;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy622;-			if (yych <= '-') goto yy623;-		} else {-			if (yych <= 0xDF) goto yy624;-			if (yych <= 0xE0) goto yy625;-			goto yy626;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy627;-			if (yych <= 0xEF) goto yy626;-			goto yy628;-		} else {-			if (yych <= 0xF3) goto yy629;-			if (yych <= 0xF4) goto yy630;-		}-	}-yy622:-	p = marker;-	if (yyaccept == 0) {-		goto yy610;-	} else {-		goto yy634;-	}-yy623:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy620;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy622;-			if (yych <= '-') goto yy631;-			goto yy622;-		} else {-			if (yych <= 0xDF) goto yy624;-			if (yych <= 0xE0) goto yy625;-			goto yy626;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy627;-			if (yych <= 0xEF) goto yy626;-			goto yy628;-		} else {-			if (yych <= 0xF3) goto yy629;-			if (yych <= 0xF4) goto yy630;-			goto yy622;-		}-	}-yy624:-	yych = *++p;-	if (yych <= 0x7F) goto yy622;-	if (yych <= 0xBF) goto yy620;-	goto yy622;-yy625:-	yych = *++p;-	if (yych <= 0x9F) goto yy622;-	if (yych <= 0xBF) goto yy624;-	goto yy622;-yy626:-	yych = *++p;-	if (yych <= 0x7F) goto yy622;-	if (yych <= 0xBF) goto yy624;-	goto yy622;-yy627:-	yych = *++p;-	if (yych <= 0x7F) goto yy622;-	if (yych <= 0x9F) goto yy624;-	goto yy622;-yy628:-	yych = *++p;-	if (yych <= 0x8F) goto yy622;-	if (yych <= 0xBF) goto yy626;-	goto yy622;-yy629:-	yych = *++p;-	if (yych <= 0x7F) goto yy622;-	if (yych <= 0xBF) goto yy626;-	goto yy622;-yy630:-	yych = *++p;-	if (yych <= 0x7F) goto yy622;-	if (yych <= 0x8F) goto yy626;-	goto yy622;-yy631:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy631;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy622;-			if (yych == '\n') goto yy622;-			goto yy620;-		} else {-			if (yych <= '>') goto yy633;-			if (yych <= 0x7F) goto yy620;-			if (yych <= 0xC1) goto yy622;-			goto yy624;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy625;-			if (yych == 0xED) goto yy627;-			goto yy626;-		} else {-			if (yych <= 0xF0) goto yy628;-			if (yych <= 0xF3) goto yy629;-			if (yych <= 0xF4) goto yy630;-			goto yy622;-		}-	}-yy633:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy620;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy634;-			if (yych <= '-') goto yy623;-		} else {-			if (yych <= 0xDF) goto yy624;-			if (yych <= 0xE0) goto yy625;-			goto yy626;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy627;-			if (yych <= 0xEF) goto yy626;-			goto yy628;-		} else {-			if (yych <= 0xF3) goto yy629;-			if (yych <= 0xF4) goto yy630;-		}-	}-yy634:-	{ return (bufsize_t)(p - start); }-}--}--// Try to match an HTML block end line of type 3-bufsize_t _scan_html_block_end_3(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,   0,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64, 128, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych <= 0xDF) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy637;-			if (yych != '\n') goto yy639;-		} else {-			if (yych <= '?') goto yy640;-			if (yych <= 0x7F) goto yy639;-			if (yych >= 0xC2) goto yy641;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy642;-			if (yych == 0xED) goto yy644;-			goto yy643;-		} else {-			if (yych <= 0xF0) goto yy645;-			if (yych <= 0xF3) goto yy646;-			if (yych <= 0xF4) goto yy647;-		}-	}-yy637:-	++p;-yy638:-	{ return 0; }-yy639:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy638;-		if (yych <= '\t') goto yy649;-		goto yy638;-	} else {-		if (yych <= 0x7F) goto yy649;-		if (yych <= 0xC1) goto yy638;-		if (yych <= 0xF4) goto yy649;-		goto yy638;-	}-yy640:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '=') {-		if (yych <= 0x00) goto yy638;-		if (yych == '\n') goto yy638;-		goto yy649;-	} else {-		if (yych <= 0x7F) {-			if (yych <= '>') goto yy660;-			goto yy649;-		} else {-			if (yych <= 0xC1) goto yy638;-			if (yych <= 0xF4) goto yy649;-			goto yy638;-		}-	}-yy641:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy638;-	if (yych <= 0xBF) goto yy648;-	goto yy638;-yy642:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy638;-	if (yych <= 0xBF) goto yy653;-	goto yy638;-yy643:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy638;-	if (yych <= 0xBF) goto yy653;-	goto yy638;-yy644:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy638;-	if (yych <= 0x9F) goto yy653;-	goto yy638;-yy645:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy638;-	if (yych <= 0xBF) goto yy655;-	goto yy638;-yy646:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy638;-	if (yych <= 0xBF) goto yy655;-	goto yy638;-yy647:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy638;-	if (yych <= 0x8F) goto yy655;-	goto yy638;-yy648:-	yych = *++p;-yy649:-	if (yybm[0+yych] & 64) {-		goto yy648;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy650;-			if (yych <= '?') goto yy651;-		} else {-			if (yych <= 0xDF) goto yy653;-			if (yych <= 0xE0) goto yy654;-			goto yy655;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy656;-			if (yych <= 0xEF) goto yy655;-			goto yy657;-		} else {-			if (yych <= 0xF3) goto yy658;-			if (yych <= 0xF4) goto yy659;-		}-	}-yy650:-	p = marker;-	if (yyaccept == 0) {-		goto yy638;-	} else {-		goto yy661;-	}-yy651:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy651;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy650;-			if (yych == '\n') goto yy650;-			goto yy648;-		} else {-			if (yych <= '>') goto yy660;-			if (yych <= 0x7F) goto yy648;-			if (yych <= 0xC1) goto yy650;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy654;-			if (yych == 0xED) goto yy656;-			goto yy655;-		} else {-			if (yych <= 0xF0) goto yy657;-			if (yych <= 0xF3) goto yy658;-			if (yych <= 0xF4) goto yy659;-			goto yy650;-		}-	}-yy653:-	yych = *++p;-	if (yych <= 0x7F) goto yy650;-	if (yych <= 0xBF) goto yy648;-	goto yy650;-yy654:-	yych = *++p;-	if (yych <= 0x9F) goto yy650;-	if (yych <= 0xBF) goto yy653;-	goto yy650;-yy655:-	yych = *++p;-	if (yych <= 0x7F) goto yy650;-	if (yych <= 0xBF) goto yy653;-	goto yy650;-yy656:-	yych = *++p;-	if (yych <= 0x7F) goto yy650;-	if (yych <= 0x9F) goto yy653;-	goto yy650;-yy657:-	yych = *++p;-	if (yych <= 0x8F) goto yy650;-	if (yych <= 0xBF) goto yy655;-	goto yy650;-yy658:-	yych = *++p;-	if (yych <= 0x7F) goto yy650;-	if (yych <= 0xBF) goto yy655;-	goto yy650;-yy659:-	yych = *++p;-	if (yych <= 0x7F) goto yy650;-	if (yych <= 0x8F) goto yy655;-	goto yy650;-yy660:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy648;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy661;-			if (yych <= '?') goto yy651;-		} else {-			if (yych <= 0xDF) goto yy653;-			if (yych <= 0xE0) goto yy654;-			goto yy655;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy656;-			if (yych <= 0xEF) goto yy655;-			goto yy657;-		} else {-			if (yych <= 0xF3) goto yy658;-			if (yych <= 0xF4) goto yy659;-		}-	}-yy661:-	{ return (bufsize_t)(p - start); }-}--}--// Try to match an HTML block end line of type 4-bufsize_t _scan_html_block_end_4(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0, 128, 128, 128, 128, 128, 128, 128, -		128, 128,   0, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128,  64, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy667;-	}-	if (yych <= 0xE0) {-		if (yych <= '\n') {-			if (yych <= 0x00) goto yy664;-			if (yych <= '\t') goto yy666;-		} else {-			if (yych <= 0x7F) goto yy666;-			if (yych <= 0xC1) goto yy664;-			if (yych <= 0xDF) goto yy670;-			goto yy671;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy673;-			goto yy672;-		} else {-			if (yych <= 0xF0) goto yy674;-			if (yych <= 0xF3) goto yy675;-			if (yych <= 0xF4) goto yy676;-		}-	}-yy664:-	++p;-yy665:-	{ return 0; }-yy666:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy665;-		if (yych <= '\t') goto yy678;-		goto yy665;-	} else {-		if (yych <= 0x7F) goto yy678;-		if (yych <= 0xC1) goto yy665;-		if (yych <= 0xF4) goto yy678;-		goto yy665;-	}-yy667:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy677;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy669;-			if (yych <= '>') goto yy667;-		} else {-			if (yych <= 0xDF) goto yy680;-			if (yych <= 0xE0) goto yy681;-			goto yy682;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy683;-			if (yych <= 0xEF) goto yy682;-			goto yy684;-		} else {-			if (yych <= 0xF3) goto yy685;-			if (yych <= 0xF4) goto yy686;-		}-	}-yy669:-	{ return (bufsize_t)(p - start); }-yy670:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy665;-	if (yych <= 0xBF) goto yy677;-	goto yy665;-yy671:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy665;-	if (yych <= 0xBF) goto yy680;-	goto yy665;-yy672:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy665;-	if (yych <= 0xBF) goto yy680;-	goto yy665;-yy673:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy665;-	if (yych <= 0x9F) goto yy680;-	goto yy665;-yy674:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy665;-	if (yych <= 0xBF) goto yy682;-	goto yy665;-yy675:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy665;-	if (yych <= 0xBF) goto yy682;-	goto yy665;-yy676:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy665;-	if (yych <= 0x8F) goto yy682;-	goto yy665;-yy677:-	yych = *++p;-yy678:-	if (yybm[0+yych] & 128) {-		goto yy677;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy679;-			if (yych <= '>') goto yy667;-		} else {-			if (yych <= 0xDF) goto yy680;-			if (yych <= 0xE0) goto yy681;-			goto yy682;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy683;-			if (yych <= 0xEF) goto yy682;-			goto yy684;-		} else {-			if (yych <= 0xF3) goto yy685;-			if (yych <= 0xF4) goto yy686;-		}-	}-yy679:-	p = marker;-	if (yyaccept == 0) {-		goto yy665;-	} else {-		goto yy669;-	}-yy680:-	yych = *++p;-	if (yych <= 0x7F) goto yy679;-	if (yych <= 0xBF) goto yy677;-	goto yy679;-yy681:-	yych = *++p;-	if (yych <= 0x9F) goto yy679;-	if (yych <= 0xBF) goto yy680;-	goto yy679;-yy682:-	yych = *++p;-	if (yych <= 0x7F) goto yy679;-	if (yych <= 0xBF) goto yy680;-	goto yy679;-yy683:-	yych = *++p;-	if (yych <= 0x7F) goto yy679;-	if (yych <= 0x9F) goto yy680;-	goto yy679;-yy684:-	yych = *++p;-	if (yych <= 0x8F) goto yy679;-	if (yych <= 0xBF) goto yy682;-	goto yy679;-yy685:-	yych = *++p;-	if (yych <= 0x7F) goto yy679;-	if (yych <= 0xBF) goto yy682;-	goto yy679;-yy686:-	yych = *++p;-	if (yych <= 0x7F) goto yy679;-	if (yych <= 0x8F) goto yy682;-	goto yy679;-}--}--// Try to match an HTML block end line of type 5-bufsize_t _scan_html_block_end_5(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,   0,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64, 128,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych <= 0xDF) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy689;-			if (yych != '\n') goto yy691;-		} else {-			if (yych <= ']') goto yy692;-			if (yych <= 0x7F) goto yy691;-			if (yych >= 0xC2) goto yy693;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy694;-			if (yych == 0xED) goto yy696;-			goto yy695;-		} else {-			if (yych <= 0xF0) goto yy697;-			if (yych <= 0xF3) goto yy698;-			if (yych <= 0xF4) goto yy699;-		}-	}-yy689:-	++p;-yy690:-	{ return 0; }-yy691:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy690;-		if (yych <= '\t') goto yy701;-		goto yy690;-	} else {-		if (yych <= 0x7F) goto yy701;-		if (yych <= 0xC1) goto yy690;-		if (yych <= 0xF4) goto yy701;-		goto yy690;-	}-yy692:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy711;-	}-	if (yych <= '\n') {-		if (yych <= 0x00) goto yy690;-		if (yych <= '\t') goto yy701;-		goto yy690;-	} else {-		if (yych <= 0x7F) goto yy701;-		if (yych <= 0xC1) goto yy690;-		if (yych <= 0xF4) goto yy701;-		goto yy690;-	}-yy693:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy690;-	if (yych <= 0xBF) goto yy700;-	goto yy690;-yy694:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x9F) goto yy690;-	if (yych <= 0xBF) goto yy704;-	goto yy690;-yy695:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy690;-	if (yych <= 0xBF) goto yy704;-	goto yy690;-yy696:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy690;-	if (yych <= 0x9F) goto yy704;-	goto yy690;-yy697:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x8F) goto yy690;-	if (yych <= 0xBF) goto yy706;-	goto yy690;-yy698:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy690;-	if (yych <= 0xBF) goto yy706;-	goto yy690;-yy699:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) goto yy690;-	if (yych <= 0x8F) goto yy706;-	goto yy690;-yy700:-	yych = *++p;-yy701:-	if (yybm[0+yych] & 64) {-		goto yy700;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy702;-			if (yych <= ']') goto yy703;-		} else {-			if (yych <= 0xDF) goto yy704;-			if (yych <= 0xE0) goto yy705;-			goto yy706;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy707;-			if (yych <= 0xEF) goto yy706;-			goto yy708;-		} else {-			if (yych <= 0xF3) goto yy709;-			if (yych <= 0xF4) goto yy710;-		}-	}-yy702:-	p = marker;-	if (yyaccept == 0) {-		goto yy690;-	} else {-		goto yy714;-	}-yy703:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy700;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy702;-			if (yych <= ']') goto yy711;-			goto yy702;-		} else {-			if (yych <= 0xDF) goto yy704;-			if (yych <= 0xE0) goto yy705;-			goto yy706;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy707;-			if (yych <= 0xEF) goto yy706;-			goto yy708;-		} else {-			if (yych <= 0xF3) goto yy709;-			if (yych <= 0xF4) goto yy710;-			goto yy702;-		}-	}-yy704:-	yych = *++p;-	if (yych <= 0x7F) goto yy702;-	if (yych <= 0xBF) goto yy700;-	goto yy702;-yy705:-	yych = *++p;-	if (yych <= 0x9F) goto yy702;-	if (yych <= 0xBF) goto yy704;-	goto yy702;-yy706:-	yych = *++p;-	if (yych <= 0x7F) goto yy702;-	if (yych <= 0xBF) goto yy704;-	goto yy702;-yy707:-	yych = *++p;-	if (yych <= 0x7F) goto yy702;-	if (yych <= 0x9F) goto yy704;-	goto yy702;-yy708:-	yych = *++p;-	if (yych <= 0x8F) goto yy702;-	if (yych <= 0xBF) goto yy706;-	goto yy702;-yy709:-	yych = *++p;-	if (yych <= 0x7F) goto yy702;-	if (yych <= 0xBF) goto yy706;-	goto yy702;-yy710:-	yych = *++p;-	if (yych <= 0x7F) goto yy702;-	if (yych <= 0x8F) goto yy706;-	goto yy702;-yy711:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy711;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy702;-			if (yych == '\n') goto yy702;-			goto yy700;-		} else {-			if (yych <= '>') goto yy713;-			if (yych <= 0x7F) goto yy700;-			if (yych <= 0xC1) goto yy702;-			goto yy704;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy705;-			if (yych == 0xED) goto yy707;-			goto yy706;-		} else {-			if (yych <= 0xF0) goto yy708;-			if (yych <= 0xF3) goto yy709;-			if (yych <= 0xF4) goto yy710;-			goto yy702;-		}-	}-yy713:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy700;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy714;-			if (yych <= ']') goto yy703;-		} else {-			if (yych <= 0xDF) goto yy704;-			if (yych <= 0xE0) goto yy705;-			goto yy706;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy707;-			if (yych <= 0xEF) goto yy706;-			goto yy708;-		} else {-			if (yych <= 0xF3) goto yy709;-			if (yych <= 0xF4) goto yy710;-		}-	}-yy714:-	{ return (bufsize_t)(p - start); }-}--}--// Try to match a link title (in single quotes, in double quotes, or-// in parentheses), returning number of chars matched.  Allow one-// level of internal nesting (quotes within quotes).-bufsize_t _scan_link_title(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	static const unsigned char yybm[] = {-		  0, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 192, 208, 208, 208, 208, 144, -		 80,  80, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208,  32, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		208, 208, 208, 208, 208, 208, 208, 208, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych <= '&') {-		if (yych == '"') goto yy719;-	} else {-		if (yych <= '\'') goto yy720;-		if (yych <= '(') goto yy721;-	}-	++p;-yy718:-	{ return 0; }-yy719:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy718;-	if (yych <= 0x7F) goto yy723;-	if (yych <= 0xC1) goto yy718;-	if (yych <= 0xF4) goto yy723;-	goto yy718;-yy720:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy718;-	if (yych <= 0x7F) goto yy737;-	if (yych <= 0xC1) goto yy718;-	if (yych <= 0xF4) goto yy737;-	goto yy718;-yy721:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '(') {-		if (yych <= 0x00) goto yy718;-		if (yych <= '\'') goto yy750;-		goto yy718;-	} else {-		if (yych <= 0x7F) goto yy750;-		if (yych <= 0xC1) goto yy718;-		if (yych <= 0xF4) goto yy750;-		goto yy718;-	}-yy722:-	yych = *++p;-yy723:-	if (yybm[0+yych] & 16) {-		goto yy722;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy724;-			if (yych <= '"') goto yy725;-			goto yy727;-		} else {-			if (yych <= 0xC1) goto yy724;-			if (yych <= 0xDF) goto yy729;-			goto yy730;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy732;-			goto yy731;-		} else {-			if (yych <= 0xF0) goto yy733;-			if (yych <= 0xF3) goto yy734;-			if (yych <= 0xF4) goto yy735;-		}-	}-yy724:-	p = marker;-	if (yyaccept <= 1) {-		if (yyaccept == 0) {-			goto yy718;-		} else {-			goto yy726;-		}-	} else {-		if (yyaccept == 2) {-			goto yy739;-		} else {-			goto yy752;-		}-	}-yy725:-	++p;-yy726:-	{ return (bufsize_t)(p - start); }-yy727:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy722;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy724;-			if (yych <= '"') goto yy762;-			goto yy727;-		} else {-			if (yych <= 0xC1) goto yy724;-			if (yych >= 0xE0) goto yy730;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy732;-			goto yy731;-		} else {-			if (yych <= 0xF0) goto yy733;-			if (yych <= 0xF3) goto yy734;-			if (yych <= 0xF4) goto yy735;-			goto yy724;-		}-	}-yy729:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy722;-	goto yy724;-yy730:-	yych = *++p;-	if (yych <= 0x9F) goto yy724;-	if (yych <= 0xBF) goto yy729;-	goto yy724;-yy731:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy729;-	goto yy724;-yy732:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x9F) goto yy729;-	goto yy724;-yy733:-	yych = *++p;-	if (yych <= 0x8F) goto yy724;-	if (yych <= 0xBF) goto yy731;-	goto yy724;-yy734:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy731;-	goto yy724;-yy735:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x8F) goto yy731;-	goto yy724;-yy736:-	yych = *++p;-yy737:-	if (yybm[0+yych] & 64) {-		goto yy736;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy724;-			if (yych >= '(') goto yy740;-		} else {-			if (yych <= 0xC1) goto yy724;-			if (yych <= 0xDF) goto yy742;-			goto yy743;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy745;-			goto yy744;-		} else {-			if (yych <= 0xF0) goto yy746;-			if (yych <= 0xF3) goto yy747;-			if (yych <= 0xF4) goto yy748;-			goto yy724;-		}-	}-yy738:-	++p;-yy739:-	{ return (bufsize_t)(p - start); }-yy740:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy736;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy724;-			if (yych <= '\'') goto yy763;-			goto yy740;-		} else {-			if (yych <= 0xC1) goto yy724;-			if (yych >= 0xE0) goto yy743;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy745;-			goto yy744;-		} else {-			if (yych <= 0xF0) goto yy746;-			if (yych <= 0xF3) goto yy747;-			if (yych <= 0xF4) goto yy748;-			goto yy724;-		}-	}-yy742:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy736;-	goto yy724;-yy743:-	yych = *++p;-	if (yych <= 0x9F) goto yy724;-	if (yych <= 0xBF) goto yy742;-	goto yy724;-yy744:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy742;-	goto yy724;-yy745:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x9F) goto yy742;-	goto yy724;-yy746:-	yych = *++p;-	if (yych <= 0x8F) goto yy724;-	if (yych <= 0xBF) goto yy744;-	goto yy724;-yy747:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy744;-	goto yy724;-yy748:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x8F) goto yy744;-	goto yy724;-yy749:-	yych = *++p;-yy750:-	if (yybm[0+yych] & 128) {-		goto yy749;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= '(') goto yy724;-			if (yych >= '*') goto yy753;-		} else {-			if (yych <= 0xC1) goto yy724;-			if (yych <= 0xDF) goto yy755;-			goto yy756;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy758;-			goto yy757;-		} else {-			if (yych <= 0xF0) goto yy759;-			if (yych <= 0xF3) goto yy760;-			if (yych <= 0xF4) goto yy761;-			goto yy724;-		}-	}-yy751:-	++p;-yy752:-	{ return (bufsize_t)(p - start); }-yy753:-	yych = *++p;-	if (yych <= 0xDF) {-		if (yych <= '[') {-			if (yych <= 0x00) goto yy724;-			if (yych == ')') goto yy764;-			goto yy749;-		} else {-			if (yych <= '\\') goto yy753;-			if (yych <= 0x7F) goto yy749;-			if (yych <= 0xC1) goto yy724;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy756;-			if (yych == 0xED) goto yy758;-			goto yy757;-		} else {-			if (yych <= 0xF0) goto yy759;-			if (yych <= 0xF3) goto yy760;-			if (yych <= 0xF4) goto yy761;-			goto yy724;-		}-	}-yy755:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy749;-	goto yy724;-yy756:-	yych = *++p;-	if (yych <= 0x9F) goto yy724;-	if (yych <= 0xBF) goto yy755;-	goto yy724;-yy757:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy755;-	goto yy724;-yy758:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x9F) goto yy755;-	goto yy724;-yy759:-	yych = *++p;-	if (yych <= 0x8F) goto yy724;-	if (yych <= 0xBF) goto yy757;-	goto yy724;-yy760:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0xBF) goto yy757;-	goto yy724;-yy761:-	yych = *++p;-	if (yych <= 0x7F) goto yy724;-	if (yych <= 0x8F) goto yy757;-	goto yy724;-yy762:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 16) {-		goto yy722;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy726;-			if (yych <= '"') goto yy725;-			goto yy727;-		} else {-			if (yych <= 0xC1) goto yy726;-			if (yych <= 0xDF) goto yy729;-			goto yy730;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy732;-			goto yy731;-		} else {-			if (yych <= 0xF0) goto yy733;-			if (yych <= 0xF3) goto yy734;-			if (yych <= 0xF4) goto yy735;-			goto yy726;-		}-	}-yy763:-	yyaccept = 2;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy736;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy739;-			if (yych <= '\'') goto yy738;-			goto yy740;-		} else {-			if (yych <= 0xC1) goto yy739;-			if (yych <= 0xDF) goto yy742;-			goto yy743;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy745;-			goto yy744;-		} else {-			if (yych <= 0xF0) goto yy746;-			if (yych <= 0xF3) goto yy747;-			if (yych <= 0xF4) goto yy748;-			goto yy739;-		}-	}-yy764:-	yyaccept = 3;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy749;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= '(') goto yy752;-			if (yych <= ')') goto yy751;-			goto yy753;-		} else {-			if (yych <= 0xC1) goto yy752;-			if (yych <= 0xDF) goto yy755;-			goto yy756;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy758;-			goto yy757;-		} else {-			if (yych <= 0xF0) goto yy759;-			if (yych <= 0xF3) goto yy760;-			if (yych <= 0xF4) goto yy761;-			goto yy752;-		}-	}-}--}--// Match space characters, including newlines.-bufsize_t _scan_spacechars(const unsigned char *p)-{-  const unsigned char *start = p; \--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  0,   0,   0,   0,   0,   0,   0,   0, -		  0, 128, 128, 128, 128, 128,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		128,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy769;-	}-	++p;-	{ return 0; }-yy769:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy769;-	}-	{ return (bufsize_t)(p - start); }-}--}--// Match ATX heading start.-bufsize_t _scan_atx_heading_start(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  0,   0,   0,   0,   0,   0,   0,   0, -		  0, 128,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		128,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych == '#') goto yy776;-	++p;-yy775:-	{ return 0; }-yy776:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy775;-		if (yych <= '\n') goto yy780;-		goto yy775;-	} else {-		if (yych <= '\r') goto yy780;-		if (yych == '#') goto yy781;-		goto yy775;-	}-yy777:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-yy779:-	{ return (bufsize_t)(p - start); }-yy780:-	++p;-	goto yy779;-yy781:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy782;-		if (yych <= '\n') goto yy780;-	} else {-		if (yych <= '\r') goto yy780;-		if (yych == '#') goto yy783;-	}-yy782:-	p = marker;-	goto yy775;-yy783:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy782;-		if (yych <= '\n') goto yy780;-		goto yy782;-	} else {-		if (yych <= '\r') goto yy780;-		if (yych != '#') goto yy782;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy782;-		if (yych <= '\n') goto yy780;-		goto yy782;-	} else {-		if (yych <= '\r') goto yy780;-		if (yych != '#') goto yy782;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy782;-		if (yych <= '\n') goto yy780;-		goto yy782;-	} else {-		if (yych <= '\r') goto yy780;-		if (yych != '#') goto yy782;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy777;-	}-	if (yych <= 0x08) goto yy782;-	if (yych <= '\n') goto yy780;-	if (yych == '\r') goto yy780;-	goto yy782;-}--}--// Match setext heading line.  Return 1 for level-1 heading,-// 2 for level-2, 0 for no match.-bufsize_t _scan_setext_heading_line(const unsigned char *p)-{-  const unsigned char *marker = NULL;--{-	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,   0, -		 32,   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, 128,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   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, -	};-	yych = *p;-	if (yych == '-') goto yy791;-	if (yych == '=') goto yy792;-	++p;-yy790:-	{ return 0; }-yy791:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy798;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy790;-		if (yych <= '\n') goto yy794;-		goto yy790;-	} else {-		if (yych <= '\r') goto yy794;-		if (yych == ' ') goto yy794;-		goto yy790;-	}-yy792:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy804;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy790;-		if (yych <= '\n') goto yy801;-		goto yy790;-	} else {-		if (yych <= '\r') goto yy801;-		if (yych == ' ') goto yy801;-		goto yy790;-	}-yy793:-	yych = *++p;-yy794:-	if (yybm[0+yych] & 32) {-		goto yy793;-	}-	if (yych <= 0x08) goto yy795;-	if (yych <= '\n') goto yy796;-	if (yych == '\r') goto yy796;-yy795:-	p = marker;-	goto yy790;-yy796:-	++p;-	{ return 2; }-yy798:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy793;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy795;-		if (yych <= '\n') goto yy796;-		goto yy795;-	} else {-		if (yych <= '\r') goto yy796;-		if (yych == '-') goto yy798;-		goto yy795;-	}-yy800:-	yych = *++p;-yy801:-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy795;-		if (yych <= '\t') goto yy800;-		if (yych >= '\v') goto yy795;-	} else {-		if (yych <= '\r') goto yy802;-		if (yych == ' ') goto yy800;-		goto yy795;-	}-yy802:-	++p;-	{ return 1; }-yy804:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy804;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy795;-		if (yych <= '\t') goto yy800;-		if (yych <= '\n') goto yy802;-		goto yy795;-	} else {-		if (yych <= '\r') goto yy802;-		if (yych == ' ') goto yy800;-		goto yy795;-	}-}--}--// Scan an opening code fence.-bufsize_t _scan_open_code_fence(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  0, 192, 192, 192, 192, 192, 192, 192, -		192, 192,   0, 192, 192,   0, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		144, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 192, 192, -		192, 192, 192, 192, 192, 192, 224, 192, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -	};-	yych = *p;-	if (yych == '`') goto yy810;-	if (yych == '~') goto yy811;-	++p;-yy809:-	{ return 0; }-yy810:-	yych = *(marker = ++p);-	if (yych == '`') goto yy812;-	goto yy809;-yy811:-	yych = *(marker = ++p);-	if (yych == '~') goto yy814;-	goto yy809;-yy812:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy815;-	}-yy813:-	p = marker;-	goto yy809;-yy814:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy817;-	}-	goto yy813;-yy815:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy815;-	}-	if (yych <= 0xDF) {-		if (yych <= '\f') {-			if (yych <= 0x00) goto yy813;-			if (yych == '\n') {-				marker = p;-				goto yy821;-			}-			marker = p;-			goto yy819;-		} else {-			if (yych <= '\r') {-				marker = p;-				goto yy821;-			}-			if (yych <= 0x7F) {-				marker = p;-				goto yy819;-			}-			if (yych <= 0xC1) goto yy813;-			marker = p;-			goto yy823;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) {-				marker = p;-				goto yy824;-			}-			if (yych == 0xED) {-				marker = p;-				goto yy826;-			}-			marker = p;-			goto yy825;-		} else {-			if (yych <= 0xF0) {-				marker = p;-				goto yy827;-			}-			if (yych <= 0xF3) {-				marker = p;-				goto yy828;-			}-			if (yych <= 0xF4) {-				marker = p;-				goto yy829;-			}-			goto yy813;-		}-	}-yy817:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy817;-	}-	if (yych <= 0xDF) {-		if (yych <= '\f') {-			if (yych <= 0x00) goto yy813;-			if (yych == '\n') {-				marker = p;-				goto yy832;-			}-			marker = p;-			goto yy830;-		} else {-			if (yych <= '\r') {-				marker = p;-				goto yy832;-			}-			if (yych <= 0x7F) {-				marker = p;-				goto yy830;-			}-			if (yych <= 0xC1) goto yy813;-			marker = p;-			goto yy834;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) {-				marker = p;-				goto yy835;-			}-			if (yych == 0xED) {-				marker = p;-				goto yy837;-			}-			marker = p;-			goto yy836;-		} else {-			if (yych <= 0xF0) {-				marker = p;-				goto yy838;-			}-			if (yych <= 0xF3) {-				marker = p;-				goto yy839;-			}-			if (yych <= 0xF4) {-				marker = p;-				goto yy840;-			}-			goto yy813;-		}-	}-yy819:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy819;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy813;-			if (yych >= 0x0E) goto yy813;-		} else {-			if (yych <= 0xDF) goto yy823;-			if (yych <= 0xE0) goto yy824;-			goto yy825;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy826;-			if (yych <= 0xEF) goto yy825;-			goto yy827;-		} else {-			if (yych <= 0xF3) goto yy828;-			if (yych <= 0xF4) goto yy829;-			goto yy813;-		}-	}-yy821:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-yy823:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy819;-	goto yy813;-yy824:-	yych = *++p;-	if (yych <= 0x9F) goto yy813;-	if (yych <= 0xBF) goto yy823;-	goto yy813;-yy825:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy823;-	goto yy813;-yy826:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0x9F) goto yy823;-	goto yy813;-yy827:-	yych = *++p;-	if (yych <= 0x8F) goto yy813;-	if (yych <= 0xBF) goto yy825;-	goto yy813;-yy828:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy825;-	goto yy813;-yy829:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0x8F) goto yy825;-	goto yy813;-yy830:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy830;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy813;-			if (yych >= 0x0E) goto yy813;-		} else {-			if (yych <= 0xDF) goto yy834;-			if (yych <= 0xE0) goto yy835;-			goto yy836;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy837;-			if (yych <= 0xEF) goto yy836;-			goto yy838;-		} else {-			if (yych <= 0xF3) goto yy839;-			if (yych <= 0xF4) goto yy840;-			goto yy813;-		}-	}-yy832:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-yy834:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy830;-	goto yy813;-yy835:-	yych = *++p;-	if (yych <= 0x9F) goto yy813;-	if (yych <= 0xBF) goto yy834;-	goto yy813;-yy836:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy834;-	goto yy813;-yy837:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0x9F) goto yy834;-	goto yy813;-yy838:-	yych = *++p;-	if (yych <= 0x8F) goto yy813;-	if (yych <= 0xBF) goto yy836;-	goto yy813;-yy839:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0xBF) goto yy836;-	goto yy813;-yy840:-	yych = *++p;-	if (yych <= 0x7F) goto yy813;-	if (yych <= 0x8F) goto yy836;-	goto yy813;-}--}--// Scan a closing code fence with length at least len.-bufsize_t _scan_close_code_fence(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  0,   0,   0,   0,   0,   0,   0,   0, -		  0, 128,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		128,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   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,  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,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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, -	};-	yych = *p;-	if (yych == '`') goto yy845;-	if (yych == '~') goto yy846;-	++p;-yy844:-	{ return 0; }-yy845:-	yych = *(marker = ++p);-	if (yych == '`') goto yy847;-	goto yy844;-yy846:-	yych = *(marker = ++p);-	if (yych == '~') goto yy849;-	goto yy844;-yy847:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy850;-	}-yy848:-	p = marker;-	goto yy844;-yy849:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy852;-	}-	goto yy848;-yy850:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy850;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy848;-		if (yych <= '\t') {-			marker = p;-			goto yy854;-		}-		if (yych <= '\n') {-			marker = p;-			goto yy856;-		}-		goto yy848;-	} else {-		if (yych <= '\r') {-			marker = p;-			goto yy856;-		}-		if (yych == ' ') {-			marker = p;-			goto yy854;-		}-		goto yy848;-	}-yy852:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy852;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy848;-		if (yych <= '\t') {-			marker = p;-			goto yy858;-		}-		if (yych <= '\n') {-			marker = p;-			goto yy860;-		}-		goto yy848;-	} else {-		if (yych <= '\r') {-			marker = p;-			goto yy860;-		}-		if (yych == ' ') {-			marker = p;-			goto yy858;-		}-		goto yy848;-	}-yy854:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy854;-	}-	if (yych <= 0x08) goto yy848;-	if (yych <= '\n') goto yy856;-	if (yych != '\r') goto yy848;-yy856:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-yy858:-	yych = *++p;-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy848;-		if (yych <= '\t') goto yy858;-		if (yych >= '\v') goto yy848;-	} else {-		if (yych <= '\r') goto yy860;-		if (yych == ' ') goto yy858;-		goto yy848;-	}-yy860:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-}--}--// Scans an entity.-// Returns number of chars matched.-bufsize_t _scan_entity(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	yych = *p;-	if (yych == '&') goto yy866;-	++p;-yy865:-	{ return 0; }-yy866:-	yych = *(marker = ++p);-	if (yych <= '@') {-		if (yych != '#') goto yy865;-	} else {-		if (yych <= 'Z') goto yy869;-		if (yych <= '`') goto yy865;-		if (yych <= 'z') goto yy869;-		goto yy865;-	}-	yych = *++p;-	if (yych <= 'W') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy870;-	} else {-		if (yych <= 'X') goto yy871;-		if (yych == 'x') goto yy871;-	}-yy868:-	p = marker;-	goto yy865;-yy869:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy872;-		goto yy868;-	} else {-		if (yych <= 'Z') goto yy872;-		if (yych <= '`') goto yy868;-		if (yych <= 'z') goto yy872;-		goto yy868;-	}-yy870:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy873;-	if (yych == ';') goto yy874;-	goto yy868;-yy871:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy876;-		goto yy868;-	} else {-		if (yych <= 'F') goto yy876;-		if (yych <= '`') goto yy868;-		if (yych <= 'f') goto yy876;-		goto yy868;-	}-yy872:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy877;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy877;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy877;-			goto yy868;-		}-	}-yy873:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy878;-	if (yych != ';') goto yy868;-yy874:-	++p;-	{ return (bufsize_t)(p - start); }-yy876:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy879;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy868;-			goto yy879;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'f') goto yy879;-			goto yy868;-		}-	}-yy877:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy880;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy880;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy880;-			goto yy868;-		}-	}-yy878:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy881;-	if (yych == ';') goto yy874;-	goto yy868;-yy879:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy882;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy868;-			goto yy882;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'f') goto yy882;-			goto yy868;-		}-	}-yy880:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy883;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy883;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy883;-			goto yy868;-		}-	}-yy881:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy884;-	if (yych == ';') goto yy874;-	goto yy868;-yy882:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy885;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy868;-			goto yy885;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'f') goto yy885;-			goto yy868;-		}-	}-yy883:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy886;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy886;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy886;-			goto yy868;-		}-	}-yy884:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy887;-	if (yych == ';') goto yy874;-	goto yy868;-yy885:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy888;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy868;-			goto yy888;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'f') goto yy888;-			goto yy868;-		}-	}-yy886:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy889;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy889;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy889;-			goto yy868;-		}-	}-yy887:-	yych = *++p;-	if (yych <= '/') goto yy868;-	if (yych <= '9') goto yy890;-	if (yych == ';') goto yy874;-	goto yy868;-yy888:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy890;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy868;-			goto yy890;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'f') goto yy890;-			goto yy868;-		}-	}-yy889:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy891;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy891;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy891;-			goto yy868;-		}-	}-yy890:-	yych = *++p;-	if (yych == ';') goto yy874;-	goto yy868;-yy891:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy892;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy892:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy893;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy893:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy894;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy894:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy895;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy895:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy896;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy896:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy897;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy897:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy898;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy898:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy899;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy899:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy900;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy900:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy901;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy901:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy902;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy902:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy903;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy903:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy904;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy904:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy905;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy905:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy906;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy906:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy907;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy907:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy908;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy908:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy909;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy909:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy910;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy910:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy911;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy911:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy912;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy912:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy913;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy913:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy914;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-		} else {-			if (yych <= '`') goto yy868;-			if (yych >= '{') goto yy868;-		}-	}-yy914:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy868;-		if (yych <= '9') goto yy890;-		if (yych <= ':') goto yy868;-		goto yy874;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy868;-			goto yy890;-		} else {-			if (yych <= '`') goto yy868;-			if (yych <= 'z') goto yy890;-			goto yy868;-		}-	}-}--}--// Returns positive value if a URL begins in a way that is potentially-// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.-bufsize_t _scan_dangerous_url(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	unsigned int yyaccept = 0;-	yych = *p;-	if (yych <= 'V') {-		if (yych <= 'F') {-			if (yych == 'D') goto yy919;-			if (yych >= 'F') goto yy920;-		} else {-			if (yych == 'J') goto yy921;-			if (yych >= 'V') goto yy922;-		}-	} else {-		if (yych <= 'f') {-			if (yych == 'd') goto yy919;-			if (yych >= 'f') goto yy920;-		} else {-			if (yych <= 'j') {-				if (yych >= 'j') goto yy921;-			} else {-				if (yych == 'v') goto yy922;-			}-		}-	}-	++p;-yy918:-	{ return 0; }-yy919:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'A') goto yy923;-	if (yych == 'a') goto yy923;-	goto yy918;-yy920:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'I') goto yy925;-	if (yych == 'i') goto yy925;-	goto yy918;-yy921:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'A') goto yy926;-	if (yych == 'a') goto yy926;-	goto yy918;-yy922:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'B') goto yy927;-	if (yych == 'b') goto yy927;-	goto yy918;-yy923:-	yych = *++p;-	if (yych == 'T') goto yy928;-	if (yych == 't') goto yy928;-yy924:-	p = marker;-	if (yyaccept == 0) {-		goto yy918;-	} else {-		goto yy936;-	}-yy925:-	yych = *++p;-	if (yych == 'L') goto yy929;-	if (yych == 'l') goto yy929;-	goto yy924;-yy926:-	yych = *++p;-	if (yych == 'V') goto yy930;-	if (yych == 'v') goto yy930;-	goto yy924;-yy927:-	yych = *++p;-	if (yych == 'S') goto yy931;-	if (yych == 's') goto yy931;-	goto yy924;-yy928:-	yych = *++p;-	if (yych == 'A') goto yy932;-	if (yych == 'a') goto yy932;-	goto yy924;-yy929:-	yych = *++p;-	if (yych == 'E') goto yy933;-	if (yych == 'e') goto yy933;-	goto yy924;-yy930:-	yych = *++p;-	if (yych == 'A') goto yy927;-	if (yych == 'a') goto yy927;-	goto yy924;-yy931:-	yych = *++p;-	if (yych == 'C') goto yy934;-	if (yych == 'c') goto yy934;-	goto yy924;-yy932:-	yych = *++p;-	if (yych == ':') goto yy935;-	goto yy924;-yy933:-	yych = *++p;-	if (yych == ':') goto yy937;-	goto yy924;-yy934:-	yych = *++p;-	if (yych == 'R') goto yy938;-	if (yych == 'r') goto yy938;-	goto yy924;-yy935:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yych == 'I') goto yy939;-	if (yych == 'i') goto yy939;-yy936:-	{ return (bufsize_t)(p - start); }-yy937:-	++p;-	goto yy936;-yy938:-	yych = *++p;-	if (yych == 'I') goto yy940;-	if (yych == 'i') goto yy940;-	goto yy924;-yy939:-	yych = *++p;-	if (yych == 'M') goto yy941;-	if (yych == 'm') goto yy941;-	goto yy924;-yy940:-	yych = *++p;-	if (yych == 'P') goto yy942;-	if (yych == 'p') goto yy942;-	goto yy924;-yy941:-	yych = *++p;-	if (yych == 'A') goto yy943;-	if (yych == 'a') goto yy943;-	goto yy924;-yy942:-	yych = *++p;-	if (yych == 'T') goto yy933;-	if (yych == 't') goto yy933;-	goto yy924;-yy943:-	yych = *++p;-	if (yych == 'G') goto yy944;-	if (yych != 'g') goto yy924;-yy944:-	yych = *++p;-	if (yych == 'E') goto yy945;-	if (yych != 'e') goto yy924;-yy945:-	yych = *++p;-	if (yych != '/') goto yy924;-	yych = *++p;-	if (yych <= 'W') {-		if (yych <= 'J') {-			if (yych == 'G') goto yy947;-			if (yych <= 'I') goto yy924;-			goto yy948;-		} else {-			if (yych == 'P') goto yy949;-			if (yych <= 'V') goto yy924;-			goto yy950;-		}-	} else {-		if (yych <= 'j') {-			if (yych == 'g') goto yy947;-			if (yych <= 'i') goto yy924;-			goto yy948;-		} else {-			if (yych <= 'p') {-				if (yych <= 'o') goto yy924;-				goto yy949;-			} else {-				if (yych == 'w') goto yy950;-				goto yy924;-			}-		}-	}-yy947:-	yych = *++p;-	if (yych == 'I') goto yy951;-	if (yych == 'i') goto yy951;-	goto yy924;-yy948:-	yych = *++p;-	if (yych == 'P') goto yy952;-	if (yych == 'p') goto yy952;-	goto yy924;-yy949:-	yych = *++p;-	if (yych == 'N') goto yy953;-	if (yych == 'n') goto yy953;-	goto yy924;-yy950:-	yych = *++p;-	if (yych == 'E') goto yy954;-	if (yych == 'e') goto yy954;-	goto yy924;-yy951:-	yych = *++p;-	if (yych == 'F') goto yy955;-	if (yych == 'f') goto yy955;-	goto yy924;-yy952:-	yych = *++p;-	if (yych == 'E') goto yy953;-	if (yych != 'e') goto yy924;-yy953:-	yych = *++p;-	if (yych == 'G') goto yy955;-	if (yych == 'g') goto yy955;-	goto yy924;-yy954:-	yych = *++p;-	if (yych == 'B') goto yy957;-	if (yych == 'b') goto yy957;-	goto yy924;-yy955:-	++p;-	{ return 0; }-yy957:-	yych = *++p;-	if (yych == 'P') goto yy955;-	if (yych == 'p') goto yy955;-	goto yy924;-}--}--// Scans a footnote definition opening.-bufsize_t _scan_footnote_definition(const unsigned char *p)-{-  const unsigned char *marker = NULL;-  const unsigned char *start = p;--{-	unsigned char yych;-	static const unsigned char yybm[] = {-		  0,  64,  64,  64,  64,  64,  64,  64, -		 64, 128,   0,  64,  64,   0,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		128,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,   0,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  64, -		 64,  64,  64,  64,  64,  64,  64,  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,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   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, -	};-	yych = *p;-	if (yych == '[') goto yy962;-	++p;-yy961:-	{ return 0; }-yy962:-	yych = *(marker = ++p);-	if (yych != '^') goto yy961;-	yych = *++p;-	if (yych != ']') goto yy966;-yy964:-	p = marker;-	goto yy961;-yy965:-	yych = *++p;-yy966:-	if (yybm[0+yych] & 64) {-		goto yy965;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= ' ') goto yy964;-			if (yych <= ']') goto yy974;-			goto yy964;-		} else {-			if (yych <= 0xDF) goto yy967;-			if (yych <= 0xE0) goto yy968;-			goto yy969;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy970;-			if (yych <= 0xEF) goto yy969;-			goto yy971;-		} else {-			if (yych <= 0xF3) goto yy972;-			if (yych <= 0xF4) goto yy973;-			goto yy964;-		}-	}-yy967:-	yych = *++p;-	if (yych <= 0x7F) goto yy964;-	if (yych <= 0xBF) goto yy965;-	goto yy964;-yy968:-	yych = *++p;-	if (yych <= 0x9F) goto yy964;-	if (yych <= 0xBF) goto yy967;-	goto yy964;-yy969:-	yych = *++p;-	if (yych <= 0x7F) goto yy964;-	if (yych <= 0xBF) goto yy967;-	goto yy964;-yy970:-	yych = *++p;-	if (yych <= 0x7F) goto yy964;-	if (yych <= 0x9F) goto yy967;-	goto yy964;-yy971:-	yych = *++p;-	if (yych <= 0x8F) goto yy964;-	if (yych <= 0xBF) goto yy969;-	goto yy964;-yy972:-	yych = *++p;-	if (yych <= 0x7F) goto yy964;-	if (yych <= 0xBF) goto yy969;-	goto yy964;-yy973:-	yych = *++p;-	if (yych <= 0x7F) goto yy964;-	if (yych <= 0x8F) goto yy969;-	goto yy964;-yy974:-	yych = *++p;-	if (yych != ':') goto yy964;-yy975:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy975;-	}-	{ return (bufsize_t)(p - start); }-}-+/* Generated by re2c 3.0 */+#include "scanners.h"+#include "chunk.h"+#include <stdlib.h>++bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,+                   bufsize_t offset) {+  bufsize_t res;+  unsigned char *ptr = (unsigned char *)c->data;++  if (ptr == NULL || offset > c->len) {+    return 0;+  } else {+    unsigned char lim = ptr[c->len];++    ptr[c->len] = '\0';+    res = scanner(ptr + offset);+    ptr[c->len] = lim;+  }++  return res;+}++// Try to match a scheme including colon.+bufsize_t _scan_scheme(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    yych = *p;+    if (yych <= '@')+      goto yy1;+    if (yych <= 'Z')+      goto yy3;+    if (yych <= '`')+      goto yy1;+    if (yych <= 'z')+      goto yy3;+  yy1:+    ++p;+  yy2 : { return 0; }+  yy3:+    yych = *(marker = ++p);+    if (yych <= '/') {+      if (yych <= '+') {+        if (yych <= '*')+          goto yy2;+      } else {+        if (yych <= ',')+          goto yy2;+        if (yych >= '/')+          goto yy2;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '9')+          goto yy4;+        if (yych <= '@')+          goto yy2;+      } else {+        if (yych <= '`')+          goto yy2;+        if (yych >= '{')+          goto yy2;+      }+    }+  yy4:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych == '+')+          goto yy6;+      } else {+        if (yych != '/')+          goto yy6;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych >= 'A')+          goto yy6;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych <= 'z')+          goto yy6;+      }+    }+  yy5:+    p = marker;+    goto yy2;+  yy6:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych == '+')+          goto yy8;+        goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+        goto yy8;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+        goto yy8;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych <= 'z')+          goto yy8;+        goto yy5;+      }+    }+  yy7:+    ++p;+    { return (bufsize_t)(p - start); }+  yy8:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy5;+      } else {+        if (yych == '/')+          goto yy5;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy7;+        if (yych <= '@')+          goto yy5;+      } else {+        if (yych <= '`')+          goto yy5;+        if (yych >= '{')+          goto yy5;+      }+    }+    yych = *++p;+    if (yych == ':')+      goto yy7;+    goto yy5;+  }+}++// Try to match URI autolink after first <, returning number of chars matched.+bufsize_t _scan_autolink_uri(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        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,   128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych <= '@')+      goto yy10;+    if (yych <= 'Z')+      goto yy12;+    if (yych <= '`')+      goto yy10;+    if (yych <= 'z')+      goto yy12;+  yy10:+    ++p;+  yy11 : { return 0; }+  yy12:+    yych = *(marker = ++p);+    if (yych <= '/') {+      if (yych <= '+') {+        if (yych <= '*')+          goto yy11;+      } else {+        if (yych <= ',')+          goto yy11;+        if (yych >= '/')+          goto yy11;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '9')+          goto yy13;+        if (yych <= '@')+          goto yy11;+      } else {+        if (yych <= '`')+          goto yy11;+        if (yych >= '{')+          goto yy11;+      }+    }+  yy13:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych == '+')+          goto yy15;+      } else {+        if (yych != '/')+          goto yy15;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych >= 'A')+          goto yy15;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych <= 'z')+          goto yy15;+      }+    }+  yy14:+    p = marker;+    goto yy11;+  yy15:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych == '+')+          goto yy17;+        goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+        goto yy17;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+        goto yy17;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych <= 'z')+          goto yy17;+        goto yy14;+      }+    }+  yy16:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy16;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '<')+          goto yy14;+        if (yych <= '>')+          goto yy18;+        goto yy14;+      } else {+        if (yych <= 0xDF)+          goto yy19;+        if (yych <= 0xE0)+          goto yy20;+        goto yy21;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy22;+        if (yych <= 0xEF)+          goto yy21;+        goto yy23;+      } else {+        if (yych <= 0xF3)+          goto yy24;+        if (yych <= 0xF4)+          goto yy25;+        goto yy14;+      }+    }+  yy17:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych == '+')+          goto yy26;+        goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+        goto yy26;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+        goto yy26;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych <= 'z')+          goto yy26;+        goto yy14;+      }+    }+  yy18:+    ++p;+    { return (bufsize_t)(p - start); }+  yy19:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy14;+    if (yych <= 0xBF)+      goto yy16;+    goto yy14;+  yy20:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy14;+    if (yych <= 0xBF)+      goto yy19;+    goto yy14;+  yy21:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy14;+    if (yych <= 0xBF)+      goto yy19;+    goto yy14;+  yy22:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy14;+    if (yych <= 0x9F)+      goto yy19;+    goto yy14;+  yy23:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy14;+    if (yych <= 0xBF)+      goto yy21;+    goto yy14;+  yy24:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy14;+    if (yych <= 0xBF)+      goto yy21;+    goto yy14;+  yy25:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy14;+    if (yych <= 0x8F)+      goto yy21;+    goto yy14;+  yy26:+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych <= ',') {+        if (yych != '+')+          goto yy14;+      } else {+        if (yych == '/')+          goto yy14;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= ':')+          goto yy16;+        if (yych <= '@')+          goto yy14;+      } else {+        if (yych <= '`')+          goto yy14;+        if (yych >= '{')+          goto yy14;+      }+    }+    yych = *++p;+    if (yych == ':')+      goto yy16;+    goto yy14;+  }+}++// Try to match email autolink after first <, returning num of chars matched.+bufsize_t _scan_autolink_email(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        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,   128, 0,   128, 128, 128, 128, 128, 0,   0,+        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych <= '9') {+      if (yych <= '\'') {+        if (yych == '!')+          goto yy30;+        if (yych >= '#')+          goto yy30;+      } else {+        if (yych <= ')')+          goto yy28;+        if (yych != ',')+          goto yy30;+      }+    } else {+      if (yych <= '?') {+        if (yych == '=')+          goto yy30;+        if (yych >= '?')+          goto yy30;+      } else {+        if (yych <= 'Z') {+          if (yych >= 'A')+            goto yy30;+        } else {+          if (yych <= ']')+            goto yy28;+          if (yych <= '~')+            goto yy30;+        }+      }+    }+  yy28:+    ++p;+  yy29 : { return 0; }+  yy30:+    yych = *(marker = ++p);+    if (yych <= ',') {+      if (yych <= '"') {+        if (yych == '!')+          goto yy32;+        goto yy29;+      } else {+        if (yych <= '\'')+          goto yy32;+        if (yych <= ')')+          goto yy29;+        if (yych <= '+')+          goto yy32;+        goto yy29;+      }+    } else {+      if (yych <= '>') {+        if (yych <= '9')+          goto yy32;+        if (yych == '=')+          goto yy32;+        goto yy29;+      } else {+        if (yych <= 'Z')+          goto yy32;+        if (yych <= ']')+          goto yy29;+        if (yych <= '~')+          goto yy32;+        goto yy29;+      }+    }+  yy31:+    yych = *++p;+  yy32:+    if (yybm[0 + yych] & 128) {+      goto yy31;+    }+    if (yych <= '>')+      goto yy33;+    if (yych <= '@')+      goto yy34;+  yy33:+    p = marker;+    goto yy29;+  yy34:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy33;+      if (yych >= ':')+        goto yy33;+    } else {+      if (yych <= 'Z')+        goto yy35;+      if (yych <= '`')+        goto yy33;+      if (yych >= '{')+        goto yy33;+    }+  yy35:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy36;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy36;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy36;+        goto yy33;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy38;+      if (yych <= '/')+        goto yy33;+      goto yy39;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy39;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy39;+        goto yy33;+      }+    }+  yy36:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych <= '-')+          goto yy38;+        goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy39;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy39;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy39;+        goto yy33;+      }+    }+  yy37:+    ++p;+    { return (bufsize_t)(p - start); }+  yy38:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy40;+      if (yych <= '/')+        goto yy33;+      goto yy41;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy41;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy41;+        goto yy33;+      }+    }+  yy39:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy41;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy41;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy41;+        goto yy33;+      }+    }+  yy40:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy42;+      if (yych <= '/')+        goto yy33;+      goto yy43;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy43;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy43;+        goto yy33;+      }+    }+  yy41:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy43;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy43;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy43;+        goto yy33;+      }+    }+  yy42:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy44;+      if (yych <= '/')+        goto yy33;+      goto yy45;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy45;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy45;+        goto yy33;+      }+    }+  yy43:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy45;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy45;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy45;+        goto yy33;+      }+    }+  yy44:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy46;+      if (yych <= '/')+        goto yy33;+      goto yy47;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy47;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy47;+        goto yy33;+      }+    }+  yy45:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy47;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy47;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy47;+        goto yy33;+      }+    }+  yy46:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy48;+      if (yych <= '/')+        goto yy33;+      goto yy49;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy49;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy49;+        goto yy33;+      }+    }+  yy47:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy49;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy49;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy49;+        goto yy33;+      }+    }+  yy48:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy50;+      if (yych <= '/')+        goto yy33;+      goto yy51;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy51;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy51;+        goto yy33;+      }+    }+  yy49:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy51;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy51;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy51;+        goto yy33;+      }+    }+  yy50:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy52;+      if (yych <= '/')+        goto yy33;+      goto yy53;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy53;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy53;+        goto yy33;+      }+    }+  yy51:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy53;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy53;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy53;+        goto yy33;+      }+    }+  yy52:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy54;+      if (yych <= '/')+        goto yy33;+      goto yy55;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy55;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy55;+        goto yy33;+      }+    }+  yy53:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy55;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy55;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy55;+        goto yy33;+      }+    }+  yy54:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy56;+      if (yych <= '/')+        goto yy33;+      goto yy57;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy57;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy57;+        goto yy33;+      }+    }+  yy55:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy57;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy57;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy57;+        goto yy33;+      }+    }+  yy56:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy58;+      if (yych <= '/')+        goto yy33;+      goto yy59;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy59;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy59;+        goto yy33;+      }+    }+  yy57:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy59;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy59;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy59;+        goto yy33;+      }+    }+  yy58:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy60;+      if (yych <= '/')+        goto yy33;+      goto yy61;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy61;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy61;+        goto yy33;+      }+    }+  yy59:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy61;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy61;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy61;+        goto yy33;+      }+    }+  yy60:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy62;+      if (yych <= '/')+        goto yy33;+      goto yy63;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy63;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy63;+        goto yy33;+      }+    }+  yy61:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy63;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy63;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy63;+        goto yy33;+      }+    }+  yy62:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy64;+      if (yych <= '/')+        goto yy33;+      goto yy65;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy65;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy65;+        goto yy33;+      }+    }+  yy63:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy65;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy65;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy65;+        goto yy33;+      }+    }+  yy64:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy66;+      if (yych <= '/')+        goto yy33;+      goto yy67;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy67;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy67;+        goto yy33;+      }+    }+  yy65:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy67;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy67;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy67;+        goto yy33;+      }+    }+  yy66:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy68;+      if (yych <= '/')+        goto yy33;+      goto yy69;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy69;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy69;+        goto yy33;+      }+    }+  yy67:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy69;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy69;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy69;+        goto yy33;+      }+    }+  yy68:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy70;+      if (yych <= '/')+        goto yy33;+      goto yy71;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy71;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy71;+        goto yy33;+      }+    }+  yy69:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy71;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy71;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy71;+        goto yy33;+      }+    }+  yy70:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy72;+      if (yych <= '/')+        goto yy33;+      goto yy73;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy73;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy73;+        goto yy33;+      }+    }+  yy71:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy73;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy73;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy73;+        goto yy33;+      }+    }+  yy72:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy74;+      if (yych <= '/')+        goto yy33;+      goto yy75;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy75;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy75;+        goto yy33;+      }+    }+  yy73:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy75;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy75;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy75;+        goto yy33;+      }+    }+  yy74:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy76;+      if (yych <= '/')+        goto yy33;+      goto yy77;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy77;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy77;+        goto yy33;+      }+    }+  yy75:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy77;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy77;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy77;+        goto yy33;+      }+    }+  yy76:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy78;+      if (yych <= '/')+        goto yy33;+      goto yy79;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy79;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy79;+        goto yy33;+      }+    }+  yy77:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy79;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy79;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy79;+        goto yy33;+      }+    }+  yy78:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy80;+      if (yych <= '/')+        goto yy33;+      goto yy81;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy81;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy81;+        goto yy33;+      }+    }+  yy79:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy81;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy81;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy81;+        goto yy33;+      }+    }+  yy80:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy82;+      if (yych <= '/')+        goto yy33;+      goto yy83;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy83;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy83;+        goto yy33;+      }+    }+  yy81:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy83;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy83;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy83;+        goto yy33;+      }+    }+  yy82:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy84;+      if (yych <= '/')+        goto yy33;+      goto yy85;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy85;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy85;+        goto yy33;+      }+    }+  yy83:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy85;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy85;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy85;+        goto yy33;+      }+    }+  yy84:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy86;+      if (yych <= '/')+        goto yy33;+      goto yy87;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy87;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy87;+        goto yy33;+      }+    }+  yy85:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy87;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy87;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy87;+        goto yy33;+      }+    }+  yy86:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy88;+      if (yych <= '/')+        goto yy33;+      goto yy89;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy89;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy89;+        goto yy33;+      }+    }+  yy87:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy89;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy89;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy89;+        goto yy33;+      }+    }+  yy88:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy90;+      if (yych <= '/')+        goto yy33;+      goto yy91;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy91;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy91;+        goto yy33;+      }+    }+  yy89:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy91;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy91;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy91;+        goto yy33;+      }+    }+  yy90:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy92;+      if (yych <= '/')+        goto yy33;+      goto yy93;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy93;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy93;+        goto yy33;+      }+    }+  yy91:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy93;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy93;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy93;+        goto yy33;+      }+    }+  yy92:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy94;+      if (yych <= '/')+        goto yy33;+      goto yy95;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy95;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy95;+        goto yy33;+      }+    }+  yy93:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy95;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy95;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy95;+        goto yy33;+      }+    }+  yy94:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy96;+      if (yych <= '/')+        goto yy33;+      goto yy97;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy97;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy97;+        goto yy33;+      }+    }+  yy95:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy97;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy97;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy97;+        goto yy33;+      }+    }+  yy96:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy98;+      if (yych <= '/')+        goto yy33;+      goto yy99;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy99;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy99;+        goto yy33;+      }+    }+  yy97:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy99;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy99;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy99;+        goto yy33;+      }+    }+  yy98:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy100;+      if (yych <= '/')+        goto yy33;+      goto yy101;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy101;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy101;+        goto yy33;+      }+    }+  yy99:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy101;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy101;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy101;+        goto yy33;+      }+    }+  yy100:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy102;+      if (yych <= '/')+        goto yy33;+      goto yy103;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy103;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy103;+        goto yy33;+      }+    }+  yy101:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy103;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy103;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy103;+        goto yy33;+      }+    }+  yy102:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy104;+      if (yych <= '/')+        goto yy33;+      goto yy105;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy105;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy105;+        goto yy33;+      }+    }+  yy103:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy105;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy105;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy105;+        goto yy33;+      }+    }+  yy104:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy106;+      if (yych <= '/')+        goto yy33;+      goto yy107;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy107;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy107;+        goto yy33;+      }+    }+  yy105:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy107;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy107;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy107;+        goto yy33;+      }+    }+  yy106:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy108;+      if (yych <= '/')+        goto yy33;+      goto yy109;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy109;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy109;+        goto yy33;+      }+    }+  yy107:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy109;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy109;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy109;+        goto yy33;+      }+    }+  yy108:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy110;+      if (yych <= '/')+        goto yy33;+      goto yy111;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy111;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy111;+        goto yy33;+      }+    }+  yy109:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy111;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy111;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy111;+        goto yy33;+      }+    }+  yy110:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy112;+      if (yych <= '/')+        goto yy33;+      goto yy113;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy113;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy113;+        goto yy33;+      }+    }+  yy111:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy113;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy113;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy113;+        goto yy33;+      }+    }+  yy112:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy114;+      if (yych <= '/')+        goto yy33;+      goto yy115;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy115;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy115;+        goto yy33;+      }+    }+  yy113:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy115;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy115;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy115;+        goto yy33;+      }+    }+  yy114:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy116;+      if (yych <= '/')+        goto yy33;+      goto yy117;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy117;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy117;+        goto yy33;+      }+    }+  yy115:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy117;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy117;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy117;+        goto yy33;+      }+    }+  yy116:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy118;+      if (yych <= '/')+        goto yy33;+      goto yy119;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy119;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy119;+        goto yy33;+      }+    }+  yy117:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy119;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy119;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy119;+        goto yy33;+      }+    }+  yy118:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy120;+      if (yych <= '/')+        goto yy33;+      goto yy121;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy121;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy121;+        goto yy33;+      }+    }+  yy119:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy121;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy121;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy121;+        goto yy33;+      }+    }+  yy120:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy122;+      if (yych <= '/')+        goto yy33;+      goto yy123;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy123;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy123;+        goto yy33;+      }+    }+  yy121:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy123;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy123;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy123;+        goto yy33;+      }+    }+  yy122:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy124;+      if (yych <= '/')+        goto yy33;+      goto yy125;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy125;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy125;+        goto yy33;+      }+    }+  yy123:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy125;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy125;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy125;+        goto yy33;+      }+    }+  yy124:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy126;+      if (yych <= '/')+        goto yy33;+      goto yy127;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy127;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy127;+        goto yy33;+      }+    }+  yy125:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy127;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy127;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy127;+        goto yy33;+      }+    }+  yy126:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy128;+      if (yych <= '/')+        goto yy33;+      goto yy129;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy129;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy129;+        goto yy33;+      }+    }+  yy127:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy129;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy129;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy129;+        goto yy33;+      }+    }+  yy128:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy130;+      if (yych <= '/')+        goto yy33;+      goto yy131;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy131;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy131;+        goto yy33;+      }+    }+  yy129:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy131;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy131;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy131;+        goto yy33;+      }+    }+  yy130:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy132;+      if (yych <= '/')+        goto yy33;+      goto yy133;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy133;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy133;+        goto yy33;+      }+    }+  yy131:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy133;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy133;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy133;+        goto yy33;+      }+    }+  yy132:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy134;+      if (yych <= '/')+        goto yy33;+      goto yy135;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy135;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy135;+        goto yy33;+      }+    }+  yy133:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy135;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy135;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy135;+        goto yy33;+      }+    }+  yy134:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy136;+      if (yych <= '/')+        goto yy33;+      goto yy137;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy137;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy137;+        goto yy33;+      }+    }+  yy135:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy137;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy137;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy137;+        goto yy33;+      }+    }+  yy136:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy138;+      if (yych <= '/')+        goto yy33;+      goto yy139;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy139;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy139;+        goto yy33;+      }+    }+  yy137:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy139;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy139;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy139;+        goto yy33;+      }+    }+  yy138:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy140;+      if (yych <= '/')+        goto yy33;+      goto yy141;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy141;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy141;+        goto yy33;+      }+    }+  yy139:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy141;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy141;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy141;+        goto yy33;+      }+    }+  yy140:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy142;+      if (yych <= '/')+        goto yy33;+      goto yy143;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy143;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy143;+        goto yy33;+      }+    }+  yy141:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy143;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy143;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy143;+        goto yy33;+      }+    }+  yy142:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy144;+      if (yych <= '/')+        goto yy33;+      goto yy145;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy145;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy145;+        goto yy33;+      }+    }+  yy143:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy145;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy145;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy145;+        goto yy33;+      }+    }+  yy144:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy146;+      if (yych <= '/')+        goto yy33;+      goto yy147;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy147;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy147;+        goto yy33;+      }+    }+  yy145:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy147;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy147;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy147;+        goto yy33;+      }+    }+  yy146:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy148;+      if (yych <= '/')+        goto yy33;+      goto yy149;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy149;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy149;+        goto yy33;+      }+    }+  yy147:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy149;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy149;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy149;+        goto yy33;+      }+    }+  yy148:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy150;+      if (yych <= '/')+        goto yy33;+      goto yy151;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy151;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy151;+        goto yy33;+      }+    }+  yy149:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy151;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy151;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy151;+        goto yy33;+      }+    }+  yy150:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy152;+      if (yych <= '/')+        goto yy33;+      goto yy153;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy153;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy153;+        goto yy33;+      }+    }+  yy151:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy153;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy153;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy153;+        goto yy33;+      }+    }+  yy152:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy154;+      if (yych <= '/')+        goto yy33;+      goto yy155;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy155;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy155;+        goto yy33;+      }+    }+  yy153:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy155;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy155;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy155;+        goto yy33;+      }+    }+  yy154:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy156;+      if (yych <= '/')+        goto yy33;+      goto yy157;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy33;+        goto yy157;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy157;+        goto yy33;+      }+    }+  yy155:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy33;+        if (yych >= '.')+          goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych <= '9')+          goto yy157;+        goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+        goto yy157;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych <= 'z')+          goto yy157;+        goto yy33;+      }+    }+  yy156:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy33;+      if (yych <= '9')+        goto yy158;+      goto yy33;+    } else {+      if (yych <= 'Z')+        goto yy158;+      if (yych <= '`')+        goto yy33;+      if (yych <= 'z')+        goto yy158;+      goto yy33;+    }+  yy157:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= '-')+          goto yy33;+        goto yy34;+      } else {+        if (yych <= '/')+          goto yy33;+        if (yych >= ':')+          goto yy33;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy37;+        if (yych <= '@')+          goto yy33;+      } else {+        if (yych <= '`')+          goto yy33;+        if (yych >= '{')+          goto yy33;+      }+    }+  yy158:+    yych = *++p;+    if (yych == '.')+      goto yy34;+    if (yych == '>')+      goto yy37;+    goto yy33;+  }+}++// Try to match an HTML tag after first <, returning num of chars matched.+bufsize_t _scan_html_tag(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0,   224, 224, 224, 224, 224, 224, 224, 224, 200, 200, 200, 200, 200,+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+        224, 224, 224, 224, 200, 224, 128, 224, 224, 224, 224, 64,  224, 224,+        224, 224, 224, 244, 240, 224, 244, 244, 244, 244, 244, 244, 244, 244,+        244, 244, 240, 224, 192, 192, 192, 224, 224, 244, 244, 244, 244, 244,+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,+        244, 244, 244, 244, 244, 244, 244, 224, 224, 224, 224, 240, 192, 244,+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 224, 224, 224,+        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych <= '@') {+      if (yych == '/')+        goto yy162;+    } else {+      if (yych <= 'Z')+        goto yy163;+      if (yych <= '`')+        goto yy160;+      if (yych <= 'z')+        goto yy163;+    }+  yy160:+    ++p;+  yy161 : { return 0; }+  yy162:+    yych = *(marker = ++p);+    if (yych <= '@')+      goto yy161;+    if (yych <= 'Z')+      goto yy164;+    if (yych <= '`')+      goto yy161;+    if (yych <= 'z')+      goto yy164;+    goto yy161;+  yy163:+    yych = *(marker = ++p);+    if (yych <= '.') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy161;+        if (yych <= '\r')+          goto yy168;+        goto yy161;+      } else {+        if (yych <= ' ')+          goto yy168;+        if (yych == '-')+          goto yy168;+        goto yy161;+      }+    } else {+      if (yych <= '@') {+        if (yych <= '9')+          goto yy168;+        if (yych == '>')+          goto yy168;+        goto yy161;+      } else {+        if (yych <= 'Z')+          goto yy168;+        if (yych <= '`')+          goto yy161;+        if (yych <= 'z')+          goto yy168;+        goto yy161;+      }+    }+  yy164:+    yych = *++p;+    if (yybm[0 + yych] & 4) {+      goto yy164;+    }+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy165;+      if (yych <= '\r')+        goto yy171;+    } else {+      if (yych <= ' ')+        goto yy171;+      if (yych == '>')+        goto yy170;+    }+  yy165:+    p = marker;+    goto yy161;+  yy166:+    yych = *++p;+    if (yybm[0 + yych] & 8) {+      goto yy166;+    }+    if (yych <= '>') {+      if (yych <= '9') {+        if (yych == '/')+          goto yy169;+        goto yy165;+      } else {+        if (yych <= ':')+          goto yy172;+        if (yych <= '=')+          goto yy165;+        goto yy170;+      }+    } else {+      if (yych <= '^') {+        if (yych <= '@')+          goto yy165;+        if (yych <= 'Z')+          goto yy172;+        goto yy165;+      } else {+        if (yych == '`')+          goto yy165;+        if (yych <= 'z')+          goto yy172;+        goto yy165;+      }+    }+  yy167:+    yych = *++p;+  yy168:+    if (yybm[0 + yych] & 8) {+      goto yy166;+    }+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych == '-')+          goto yy167;+        goto yy165;+      } else {+        if (yych <= '/')+          goto yy169;+        if (yych <= '9')+          goto yy167;+        goto yy165;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy170;+        if (yych <= '@')+          goto yy165;+        goto yy167;+      } else {+        if (yych <= '`')+          goto yy165;+        if (yych <= 'z')+          goto yy167;+        goto yy165;+      }+    }+  yy169:+    yych = *++p;+    if (yych != '>')+      goto yy165;+  yy170:+    ++p;+    { return (bufsize_t)(p - start); }+  yy171:+    yych = *++p;+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy165;+      if (yych <= '\r')+        goto yy171;+      goto yy165;+    } else {+      if (yych <= ' ')+        goto yy171;+      if (yych == '>')+        goto yy170;+      goto yy165;+    }+  yy172:+    yych = *++p;+    if (yybm[0 + yych] & 16) {+      goto yy172;+    }+    if (yych <= ',') {+      if (yych <= '\r') {+        if (yych <= 0x08)+          goto yy165;+      } else {+        if (yych != ' ')+          goto yy165;+      }+    } else {+      if (yych <= '<') {+        if (yych <= '/')+          goto yy169;+        goto yy165;+      } else {+        if (yych <= '=')+          goto yy174;+        if (yych <= '>')+          goto yy170;+        goto yy165;+      }+    }+  yy173:+    yych = *++p;+    if (yych <= '<') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy165;+        if (yych <= '\r')+          goto yy173;+        if (yych <= 0x1F)+          goto yy165;+        goto yy173;+      } else {+        if (yych <= '/') {+          if (yych <= '.')+            goto yy165;+          goto yy169;+        } else {+          if (yych == ':')+            goto yy172;+          goto yy165;+        }+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '=')+          goto yy174;+        if (yych <= '>')+          goto yy170;+        if (yych <= '@')+          goto yy165;+        goto yy172;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy165;+          goto yy172;+        } else {+          if (yych <= '`')+            goto yy165;+          if (yych <= 'z')+            goto yy172;+          goto yy165;+        }+      }+    }+  yy174:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy175;+    }+    if (yych <= 0xE0) {+      if (yych <= '"') {+        if (yych <= 0x00)+          goto yy165;+        if (yych <= ' ')+          goto yy174;+        goto yy176;+      } else {+        if (yych <= '\'')+          goto yy177;+        if (yych <= 0xC1)+          goto yy165;+        if (yych <= 0xDF)+          goto yy178;+        goto yy179;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy181;+        goto yy180;+      } else {+        if (yych <= 0xF0)+          goto yy182;+        if (yych <= 0xF3)+          goto yy183;+        if (yych <= 0xF4)+          goto yy184;+        goto yy165;+      }+    }+  yy175:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy175;+    }+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy165;+        if (yych <= ' ')+          goto yy166;+        goto yy165;+      } else {+        if (yych <= '>')+          goto yy170;+        if (yych <= 0xC1)+          goto yy165;+        if (yych <= 0xDF)+          goto yy178;+        goto yy179;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy181;+        goto yy180;+      } else {+        if (yych <= 0xF0)+          goto yy182;+        if (yych <= 0xF3)+          goto yy183;+        if (yych <= 0xF4)+          goto yy184;+        goto yy165;+      }+    }+  yy176:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy176;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy165;+        if (yych <= '"')+          goto yy185;+        goto yy165;+      } else {+        if (yych <= 0xDF)+          goto yy186;+        if (yych <= 0xE0)+          goto yy187;+        goto yy188;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy189;+        if (yych <= 0xEF)+          goto yy188;+        goto yy190;+      } else {+        if (yych <= 0xF3)+          goto yy191;+        if (yych <= 0xF4)+          goto yy192;+        goto yy165;+      }+    }+  yy177:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy177;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy165;+        if (yych <= '\'')+          goto yy185;+        goto yy165;+      } else {+        if (yych <= 0xDF)+          goto yy193;+        if (yych <= 0xE0)+          goto yy194;+        goto yy195;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy196;+        if (yych <= 0xEF)+          goto yy195;+        goto yy197;+      } else {+        if (yych <= 0xF3)+          goto yy198;+        if (yych <= 0xF4)+          goto yy199;+        goto yy165;+      }+    }+  yy178:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy175;+    goto yy165;+  yy179:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy178;+    goto yy165;+  yy180:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy178;+    goto yy165;+  yy181:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x9F)+      goto yy178;+    goto yy165;+  yy182:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy180;+    goto yy165;+  yy183:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy180;+    goto yy165;+  yy184:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x8F)+      goto yy180;+    goto yy165;+  yy185:+    yych = *++p;+    if (yybm[0 + yych] & 8) {+      goto yy166;+    }+    if (yych == '/')+      goto yy169;+    if (yych == '>')+      goto yy170;+    goto yy165;+  yy186:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy176;+    goto yy165;+  yy187:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy186;+    goto yy165;+  yy188:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy186;+    goto yy165;+  yy189:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x9F)+      goto yy186;+    goto yy165;+  yy190:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy188;+    goto yy165;+  yy191:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy188;+    goto yy165;+  yy192:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x8F)+      goto yy188;+    goto yy165;+  yy193:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy177;+    goto yy165;+  yy194:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy193;+    goto yy165;+  yy195:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy193;+    goto yy165;+  yy196:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x9F)+      goto yy193;+    goto yy165;+  yy197:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy195;+    goto yy165;+  yy198:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0xBF)+      goto yy195;+    goto yy165;+  yy199:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy165;+    if (yych <= 0x8F)+      goto yy195;+    goto yy165;+  }+}++// Try to (liberally) match an HTML tag after first <, returning num of chars+// matched.+bufsize_t _scan_liberal_html_tag(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,  64, 64, 64, 64, 64, 64, 64, 64,  64, 0,  64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 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,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  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,+    };+    yych = *p;+    if (yych <= 0xE0) {+      if (yych <= '\n') {+        if (yych <= 0x00)+          goto yy201;+        if (yych <= '\t')+          goto yy203;+      } else {+        if (yych <= 0x7F)+          goto yy203;+        if (yych <= 0xC1)+          goto yy201;+        if (yych <= 0xDF)+          goto yy204;+        goto yy205;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy207;+        goto yy206;+      } else {+        if (yych <= 0xF0)+          goto yy208;+        if (yych <= 0xF3)+          goto yy209;+        if (yych <= 0xF4)+          goto yy210;+      }+    }+  yy201:+    ++p;+  yy202 : { return 0; }+  yy203:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy202;+      if (yych <= '\t')+        goto yy212;+      goto yy202;+    } else {+      if (yych <= 0x7F)+        goto yy212;+      if (yych <= 0xC1)+        goto yy202;+      if (yych <= 0xF4)+        goto yy212;+      goto yy202;+    }+  yy204:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy202;+    if (yych <= 0xBF)+      goto yy211;+    goto yy202;+  yy205:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy202;+    if (yych <= 0xBF)+      goto yy216;+    goto yy202;+  yy206:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy202;+    if (yych <= 0xBF)+      goto yy216;+    goto yy202;+  yy207:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy202;+    if (yych <= 0x9F)+      goto yy216;+    goto yy202;+  yy208:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy202;+    if (yych <= 0xBF)+      goto yy218;+    goto yy202;+  yy209:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy202;+    if (yych <= 0xBF)+      goto yy218;+    goto yy202;+  yy210:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy202;+    if (yych <= 0x8F)+      goto yy218;+    goto yy202;+  yy211:+    yych = *++p;+  yy212:+    if (yybm[0 + yych] & 64) {+      goto yy211;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy213;+        if (yych <= '>')+          goto yy214;+      } else {+        if (yych <= 0xDF)+          goto yy216;+        if (yych <= 0xE0)+          goto yy217;+        goto yy218;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy219;+        if (yych <= 0xEF)+          goto yy218;+        goto yy220;+      } else {+        if (yych <= 0xF3)+          goto yy221;+        if (yych <= 0xF4)+          goto yy222;+      }+    }+  yy213:+    p = marker;+    if (yyaccept == 0) {+      goto yy202;+    } else {+      goto yy215;+    }+  yy214:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy211;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy215;+        if (yych <= '>')+          goto yy214;+      } else {+        if (yych <= 0xDF)+          goto yy216;+        if (yych <= 0xE0)+          goto yy217;+        goto yy218;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy219;+        if (yych <= 0xEF)+          goto yy218;+        goto yy220;+      } else {+        if (yych <= 0xF3)+          goto yy221;+        if (yych <= 0xF4)+          goto yy222;+      }+    }+  yy215 : { return (bufsize_t)(p - start); }+  yy216:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy213;+    if (yych <= 0xBF)+      goto yy211;+    goto yy213;+  yy217:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy213;+    if (yych <= 0xBF)+      goto yy216;+    goto yy213;+  yy218:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy213;+    if (yych <= 0xBF)+      goto yy216;+    goto yy213;+  yy219:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy213;+    if (yych <= 0x9F)+      goto yy216;+    goto yy213;+  yy220:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy213;+    if (yych <= 0xBF)+      goto yy218;+    goto yy213;+  yy221:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy213;+    if (yych <= 0xBF)+      goto yy218;+    goto yy213;+  yy222:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy213;+    if (yych <= 0x8F)+      goto yy218;+    goto yy213;+  }+}++bufsize_t _scan_html_comment(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych == '-')+      goto yy225;+    ++p;+  yy224 : { return 0; }+  yy225:+    yych = *(marker = ++p);+    if (yych != '-')+      goto yy224;+  yy226:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy226;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy227;+        if (yych <= '-')+          goto yy228;+      } else {+        if (yych <= 0xDF)+          goto yy229;+        if (yych <= 0xE0)+          goto yy230;+        goto yy231;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy232;+        if (yych <= 0xEF)+          goto yy231;+        goto yy233;+      } else {+        if (yych <= 0xF3)+          goto yy234;+        if (yych <= 0xF4)+          goto yy235;+      }+    }+  yy227:+    p = marker;+    goto yy224;+  yy228:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy226;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy227;+        if (yych <= '-')+          goto yy236;+        goto yy227;+      } else {+        if (yych <= 0xDF)+          goto yy229;+        if (yych <= 0xE0)+          goto yy230;+        goto yy231;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy232;+        if (yych <= 0xEF)+          goto yy231;+        goto yy233;+      } else {+        if (yych <= 0xF3)+          goto yy234;+        if (yych <= 0xF4)+          goto yy235;+        goto yy227;+      }+    }+  yy229:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy227;+    if (yych <= 0xBF)+      goto yy226;+    goto yy227;+  yy230:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy227;+    if (yych <= 0xBF)+      goto yy229;+    goto yy227;+  yy231:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy227;+    if (yych <= 0xBF)+      goto yy229;+    goto yy227;+  yy232:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy227;+    if (yych <= 0x9F)+      goto yy229;+    goto yy227;+  yy233:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy227;+    if (yych <= 0xBF)+      goto yy231;+    goto yy227;+  yy234:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy227;+    if (yych <= 0xBF)+      goto yy231;+    goto yy227;+  yy235:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy227;+    if (yych <= 0x8F)+      goto yy231;+    goto yy227;+  yy236:+    yych = *++p;+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy227;+        if (yych <= '=')+          goto yy226;+      } else {+        if (yych <= 0x7F)+          goto yy226;+        if (yych <= 0xC1)+          goto yy227;+        if (yych <= 0xDF)+          goto yy229;+        goto yy230;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy232;+        goto yy231;+      } else {+        if (yych <= 0xF0)+          goto yy233;+        if (yych <= 0xF3)+          goto yy234;+        if (yych <= 0xF4)+          goto yy235;+        goto yy227;+      }+    }+    ++p;+    { return (bufsize_t)(p - start); }+  }+}++bufsize_t _scan_html_pi(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy240;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy238;+        if (yych <= '?')+          goto yy243;+      } else {+        if (yych <= 0xDF)+          goto yy244;+        if (yych <= 0xE0)+          goto yy245;+        goto yy246;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy247;+        if (yych <= 0xEF)+          goto yy246;+        goto yy248;+      } else {+        if (yych <= 0xF3)+          goto yy249;+        if (yych <= 0xF4)+          goto yy250;+      }+    }+  yy238:+    ++p;+  yy239 : { return 0; }+  yy240:+    yyaccept = 0;+    yych = *(marker = ++p);+  yy241:+    if (yybm[0 + yych] & 128) {+      goto yy240;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy242;+        if (yych <= '?')+          goto yy251;+      } else {+        if (yych <= 0xDF)+          goto yy253;+        if (yych <= 0xE0)+          goto yy254;+        goto yy255;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy256;+        if (yych <= 0xEF)+          goto yy255;+        goto yy257;+      } else {+        if (yych <= 0xF3)+          goto yy258;+        if (yych <= 0xF4)+          goto yy259;+      }+    }+  yy242 : { return (bufsize_t)(p - start); }+  yy243:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= '?') {+      if (yych <= 0x00)+        goto yy239;+      if (yych <= '=')+        goto yy241;+      if (yych <= '>')+        goto yy239;+      goto yy240;+    } else {+      if (yych <= 0x7F)+        goto yy241;+      if (yych <= 0xC1)+        goto yy239;+      if (yych <= 0xF4)+        goto yy241;+      goto yy239;+    }+  yy244:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy239;+    if (yych <= 0xBF)+      goto yy240;+    goto yy239;+  yy245:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy239;+    if (yych <= 0xBF)+      goto yy253;+    goto yy239;+  yy246:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy239;+    if (yych <= 0xBF)+      goto yy253;+    goto yy239;+  yy247:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy239;+    if (yych <= 0x9F)+      goto yy253;+    goto yy239;+  yy248:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy239;+    if (yych <= 0xBF)+      goto yy255;+    goto yy239;+  yy249:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy239;+    if (yych <= 0xBF)+      goto yy255;+    goto yy239;+  yy250:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy239;+    if (yych <= 0x8F)+      goto yy255;+    goto yy239;+  yy251:+    yych = *++p;+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy252;+        if (yych <= '=')+          goto yy240;+      } else {+        if (yych <= 0x7F)+          goto yy240;+        if (yych <= 0xC1)+          goto yy252;+        if (yych <= 0xDF)+          goto yy253;+        goto yy254;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy256;+        goto yy255;+      } else {+        if (yych <= 0xF0)+          goto yy257;+        if (yych <= 0xF3)+          goto yy258;+        if (yych <= 0xF4)+          goto yy259;+      }+    }+  yy252:+    p = marker;+    if (yyaccept == 0) {+      goto yy242;+    } else {+      goto yy239;+    }+  yy253:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy252;+    if (yych <= 0xBF)+      goto yy240;+    goto yy252;+  yy254:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy252;+    if (yych <= 0xBF)+      goto yy253;+    goto yy252;+  yy255:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy252;+    if (yych <= 0xBF)+      goto yy253;+    goto yy252;+  yy256:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy252;+    if (yych <= 0x9F)+      goto yy253;+    goto yy252;+  yy257:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy252;+    if (yych <= 0xBF)+      goto yy255;+    goto yy252;+  yy258:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy252;+    if (yych <= 0xBF)+      goto yy255;+    goto yy252;+  yy259:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy252;+    if (yych <= 0x8F)+      goto yy255;+    goto yy252;+  }+}++bufsize_t _scan_html_declaration(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  0,   64,  64,  192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,+        64,  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,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   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,+    };+    yych = *p;+    if (yych <= '@')+      goto yy261;+    if (yych <= 'Z')+      goto yy263;+  yy261:+    ++p;+  yy262 : { return 0; }+  yy263:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy266;+    }+    if (yych <= 0x08)+      goto yy262;+    if (yych <= '\r')+      goto yy264;+    if (yych != ' ')+      goto yy262;+  yy264:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy264;+    }+    if (yych <= 0xED) {+      if (yych <= 0xDF) {+        if (yych >= 0xC2)+          goto yy268;+      } else {+        if (yych <= 0xE0)+          goto yy269;+        if (yych <= 0xEC)+          goto yy270;+        goto yy271;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xEF)+          goto yy270;+        goto yy272;+      } else {+        if (yych <= 0xF3)+          goto yy273;+        if (yych <= 0xF4)+          goto yy274;+      }+    }+  yy265 : { return (bufsize_t)(p - start); }+  yy266:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy266;+    }+    if (yych <= 0x08)+      goto yy267;+    if (yych <= '\r')+      goto yy264;+    if (yych == ' ')+      goto yy264;+  yy267:+    p = marker;+    if (yyaccept == 0) {+      goto yy262;+    } else {+      goto yy265;+    }+  yy268:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy267;+    if (yych <= 0xBF)+      goto yy264;+    goto yy267;+  yy269:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy267;+    if (yych <= 0xBF)+      goto yy268;+    goto yy267;+  yy270:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy267;+    if (yych <= 0xBF)+      goto yy268;+    goto yy267;+  yy271:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy267;+    if (yych <= 0x9F)+      goto yy268;+    goto yy267;+  yy272:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy267;+    if (yych <= 0xBF)+      goto yy270;+    goto yy267;+  yy273:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy267;+    if (yych <= 0xBF)+      goto yy270;+    goto yy267;+  yy274:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy267;+    if (yych <= 0x8F)+      goto yy270;+    goto yy267;+  }+}++bufsize_t _scan_html_cdata(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych == 'C')+      goto yy277;+    if (yych == 'c')+      goto yy277;+    ++p;+  yy276 : { return 0; }+  yy277:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'D')+      goto yy278;+    if (yych != 'd')+      goto yy276;+  yy278:+    yych = *++p;+    if (yych == 'A')+      goto yy280;+    if (yych == 'a')+      goto yy280;+  yy279:+    p = marker;+    if (yyaccept == 0) {+      goto yy276;+    } else {+      goto yy284;+    }+  yy280:+    yych = *++p;+    if (yych == 'T')+      goto yy281;+    if (yych != 't')+      goto yy279;+  yy281:+    yych = *++p;+    if (yych == 'A')+      goto yy282;+    if (yych != 'a')+      goto yy279;+  yy282:+    yych = *++p;+    if (yych != '[')+      goto yy279;+  yy283:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy283;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy284;+        if (yych <= ']')+          goto yy285;+      } else {+        if (yych <= 0xDF)+          goto yy286;+        if (yych <= 0xE0)+          goto yy287;+        goto yy288;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy289;+        if (yych <= 0xEF)+          goto yy288;+        goto yy290;+      } else {+        if (yych <= 0xF3)+          goto yy291;+        if (yych <= 0xF4)+          goto yy292;+      }+    }+  yy284 : { return (bufsize_t)(p - start); }+  yy285:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy283;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy279;+        if (yych <= ']')+          goto yy293;+        goto yy279;+      } else {+        if (yych <= 0xDF)+          goto yy286;+        if (yych <= 0xE0)+          goto yy287;+        goto yy288;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy289;+        if (yych <= 0xEF)+          goto yy288;+        goto yy290;+      } else {+        if (yych <= 0xF3)+          goto yy291;+        if (yych <= 0xF4)+          goto yy292;+        goto yy279;+      }+    }+  yy286:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy279;+    if (yych <= 0xBF)+      goto yy283;+    goto yy279;+  yy287:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy279;+    if (yych <= 0xBF)+      goto yy286;+    goto yy279;+  yy288:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy279;+    if (yych <= 0xBF)+      goto yy286;+    goto yy279;+  yy289:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy279;+    if (yych <= 0x9F)+      goto yy286;+    goto yy279;+  yy290:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy279;+    if (yych <= 0xBF)+      goto yy288;+    goto yy279;+  yy291:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy279;+    if (yych <= 0xBF)+      goto yy288;+    goto yy279;+  yy292:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy279;+    if (yych <= 0x8F)+      goto yy288;+    goto yy279;+  yy293:+    yych = *++p;+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy279;+        if (yych <= '=')+          goto yy283;+        goto yy279;+      } else {+        if (yych <= 0x7F)+          goto yy283;+        if (yych <= 0xC1)+          goto yy279;+        if (yych <= 0xDF)+          goto yy286;+        goto yy287;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy289;+        goto yy288;+      } else {+        if (yych <= 0xF0)+          goto yy290;+        if (yych <= 0xF3)+          goto yy291;+        if (yych <= 0xF4)+          goto yy292;+        goto yy279;+      }+    }+  }+}++// Try to match an HTML block tag start line, returning+// an integer code for the type of block (1-6, matching the spec).+// #7 is handled by a separate function, below.+bufsize_t _scan_html_block_start(const unsigned char *p) {+  const unsigned char *marker = NULL;++  {+    unsigned char yych;+    yych = *p;+    if (yych == '<')+      goto yy296;+    ++p;+  yy295 : { return 0; }+  yy296:+    yych = *(marker = ++p);+    switch (yych) {+    case '!':+      goto yy297;+    case '/':+      goto yy299;+    case '?':+      goto yy300;+    case 'A':+    case 'a':+      goto yy301;+    case 'B':+    case 'b':+      goto yy302;+    case 'C':+    case 'c':+      goto yy303;+    case 'D':+    case 'd':+      goto yy304;+    case 'F':+    case 'f':+      goto yy305;+    case 'H':+    case 'h':+      goto yy306;+    case 'I':+    case 'i':+      goto yy307;+    case 'L':+    case 'l':+      goto yy308;+    case 'M':+    case 'm':+      goto yy309;+    case 'N':+    case 'n':+      goto yy310;+    case 'O':+    case 'o':+      goto yy311;+    case 'P':+    case 'p':+      goto yy312;+    case 'S':+    case 's':+      goto yy313;+    case 'T':+    case 't':+      goto yy314;+    case 'U':+    case 'u':+      goto yy315;+    default:+      goto yy295;+    }+  yy297:+    yych = *++p;+    if (yych <= '@') {+      if (yych == '-')+        goto yy316;+    } else {+      if (yych <= 'Z')+        goto yy317;+      if (yych <= '[')+        goto yy318;+    }+  yy298:+    p = marker;+    goto yy295;+  yy299:+    yych = *++p;+    switch (yych) {+    case 'A':+    case 'a':+      goto yy301;+    case 'B':+    case 'b':+      goto yy302;+    case 'C':+    case 'c':+      goto yy303;+    case 'D':+    case 'd':+      goto yy304;+    case 'F':+    case 'f':+      goto yy305;+    case 'H':+    case 'h':+      goto yy306;+    case 'I':+    case 'i':+      goto yy307;+    case 'L':+    case 'l':+      goto yy308;+    case 'M':+    case 'm':+      goto yy309;+    case 'N':+    case 'n':+      goto yy310;+    case 'O':+    case 'o':+      goto yy311;+    case 'P':+    case 'p':+      goto yy319;+    case 'S':+    case 's':+      goto yy320;+    case 'T':+    case 't':+      goto yy321;+    case 'U':+    case 'u':+      goto yy315;+    default:+      goto yy298;+    }+  yy300:+    ++p;+    { return 3; }+  yy301:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'D') {+        if (yych <= 'C')+          goto yy298;+        goto yy322;+      } else {+        if (yych <= 'Q')+          goto yy298;+        if (yych <= 'R')+          goto yy323;+        goto yy324;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'd')+          goto yy322;+        goto yy298;+      } else {+        if (yych <= 'r')+          goto yy323;+        if (yych <= 's')+          goto yy324;+        goto yy298;+      }+    }+  yy302:+    yych = *++p;+    if (yych <= 'O') {+      if (yych <= 'K') {+        if (yych == 'A')+          goto yy325;+        goto yy298;+      } else {+        if (yych <= 'L')+          goto yy326;+        if (yych <= 'N')+          goto yy298;+        goto yy327;+      }+    } else {+      if (yych <= 'k') {+        if (yych == 'a')+          goto yy325;+        goto yy298;+      } else {+        if (yych <= 'l')+          goto yy326;+        if (yych == 'o')+          goto yy327;+        goto yy298;+      }+    }+  yy303:+    yych = *++p;+    if (yych <= 'O') {+      if (yych <= 'D') {+        if (yych == 'A')+          goto yy328;+        goto yy298;+      } else {+        if (yych <= 'E')+          goto yy329;+        if (yych <= 'N')+          goto yy298;+        goto yy330;+      }+    } else {+      if (yych <= 'd') {+        if (yych == 'a')+          goto yy328;+        goto yy298;+      } else {+        if (yych <= 'e')+          goto yy329;+        if (yych == 'o')+          goto yy330;+        goto yy298;+      }+    }+  yy304:+    yych = *++p;+    switch (yych) {+    case 'D':+    case 'L':+    case 'T':+    case 'd':+    case 'l':+    case 't':+      goto yy331;+    case 'E':+    case 'e':+      goto yy332;+    case 'I':+    case 'i':+      goto yy333;+    default:+      goto yy298;+    }+  yy305:+    yych = *++p;+    if (yych <= 'R') {+      if (yych <= 'N') {+        if (yych == 'I')+          goto yy334;+        goto yy298;+      } else {+        if (yych <= 'O')+          goto yy335;+        if (yych <= 'Q')+          goto yy298;+        goto yy336;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'i')+          goto yy334;+        goto yy298;+      } else {+        if (yych <= 'o')+          goto yy335;+        if (yych == 'r')+          goto yy336;+        goto yy298;+      }+    }+  yy306:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'D') {+        if (yych <= '0')+          goto yy298;+        if (yych <= '6')+          goto yy331;+        goto yy298;+      } else {+        if (yych <= 'E')+          goto yy337;+        if (yych == 'R')+          goto yy331;+        goto yy298;+      }+    } else {+      if (yych <= 'q') {+        if (yych <= 'T')+          goto yy338;+        if (yych == 'e')+          goto yy337;+        goto yy298;+      } else {+        if (yych <= 'r')+          goto yy331;+        if (yych == 't')+          goto yy338;+        goto yy298;+      }+    }+  yy307:+    yych = *++p;+    if (yych == 'F')+      goto yy339;+    if (yych == 'f')+      goto yy339;+    goto yy298;+  yy308:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'E')+        goto yy340;+      if (yych <= 'H')+        goto yy298;+      goto yy341;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy298;+        goto yy340;+      } else {+        if (yych == 'i')+          goto yy341;+        goto yy298;+      }+    }+  yy309:+    yych = *++p;+    if (yych <= 'E') {+      if (yych == 'A')+        goto yy342;+      if (yych <= 'D')+        goto yy298;+      goto yy343;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy298;+        goto yy342;+      } else {+        if (yych == 'e')+          goto yy343;+        goto yy298;+      }+    }+  yy310:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'A')+        goto yy344;+      if (yych <= 'N')+        goto yy298;+      goto yy345;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy298;+        goto yy344;+      } else {+        if (yych == 'o')+          goto yy345;+        goto yy298;+      }+    }+  yy311:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy331;+      if (yych <= 'O')+        goto yy298;+      goto yy346;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy298;+        goto yy331;+      } else {+        if (yych == 'p')+          goto yy346;+        goto yy298;+      }+    }+  yy312:+    yych = *++p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        if (yych <= 0x1F)+          goto yy298;+        goto yy347;+      } else {+        if (yych == '/')+          goto yy348;+        if (yych <= '=')+          goto yy298;+        goto yy347;+      }+    } else {+      if (yych <= 'R') {+        if (yych == 'A')+          goto yy349;+        if (yych <= 'Q')+          goto yy298;+        goto yy350;+      } else {+        if (yych <= 'a') {+          if (yych <= '`')+            goto yy298;+          goto yy349;+        } else {+          if (yych == 'r')+            goto yy350;+          goto yy298;+        }+      }+    }+  yy313:+    yych = *++p;+    switch (yych) {+    case 'C':+    case 'c':+      goto yy351;+    case 'E':+    case 'e':+      goto yy352;+    case 'O':+    case 'o':+      goto yy353;+    case 'T':+    case 't':+      goto yy354;+    case 'U':+    case 'u':+      goto yy355;+    default:+      goto yy298;+    }+  yy314:+    yych = *++p;+    switch (yych) {+    case 'A':+    case 'a':+      goto yy356;+    case 'B':+    case 'b':+      goto yy357;+    case 'D':+    case 'd':+      goto yy331;+    case 'E':+    case 'e':+      goto yy358;+    case 'F':+    case 'f':+      goto yy359;+    case 'H':+    case 'h':+      goto yy360;+    case 'I':+    case 'i':+      goto yy361;+    case 'R':+    case 'r':+      goto yy362;+    default:+      goto yy298;+    }+  yy315:+    yych = *++p;+    if (yych == 'L')+      goto yy331;+    if (yych == 'l')+      goto yy331;+    goto yy298;+  yy316:+    yych = *++p;+    if (yych == '-')+      goto yy363;+    goto yy298;+  yy317:+    ++p;+    { return 4; }+  yy318:+    yych = *++p;+    if (yych == 'C')+      goto yy364;+    if (yych == 'c')+      goto yy364;+    goto yy298;+  yy319:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= '@') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'A')+          goto yy349;+        if (yych == 'a')+          goto yy349;+        goto yy298;+      }+    }+  yy320:+    yych = *++p;+    if (yych <= 'U') {+      if (yych <= 'N') {+        if (yych == 'E')+          goto yy352;+        goto yy298;+      } else {+        if (yych <= 'O')+          goto yy353;+        if (yych <= 'T')+          goto yy298;+        goto yy355;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'e')+          goto yy352;+        goto yy298;+      } else {+        if (yych <= 'o')+          goto yy353;+        if (yych == 'u')+          goto yy355;+        goto yy298;+      }+    }+  yy321:+    yych = *++p;+    switch (yych) {+    case 'A':+    case 'a':+      goto yy356;+    case 'B':+    case 'b':+      goto yy357;+    case 'D':+    case 'd':+      goto yy331;+    case 'F':+    case 'f':+      goto yy359;+    case 'H':+    case 'h':+      goto yy360;+    case 'I':+    case 'i':+      goto yy361;+    case 'R':+    case 'r':+      goto yy362;+    default:+      goto yy298;+    }+  yy322:+    yych = *++p;+    if (yych == 'D')+      goto yy365;+    if (yych == 'd')+      goto yy365;+    goto yy298;+  yy323:+    yych = *++p;+    if (yych == 'T')+      goto yy366;+    if (yych == 't')+      goto yy366;+    goto yy298;+  yy324:+    yych = *++p;+    if (yych == 'I')+      goto yy367;+    if (yych == 'i')+      goto yy367;+    goto yy298;+  yy325:+    yych = *++p;+    if (yych == 'S')+      goto yy368;+    if (yych == 's')+      goto yy368;+    goto yy298;+  yy326:+    yych = *++p;+    if (yych == 'O')+      goto yy369;+    if (yych == 'o')+      goto yy369;+    goto yy298;+  yy327:+    yych = *++p;+    if (yych == 'D')+      goto yy370;+    if (yych == 'd')+      goto yy370;+    goto yy298;+  yy328:+    yych = *++p;+    if (yych == 'P')+      goto yy371;+    if (yych == 'p')+      goto yy371;+    goto yy298;+  yy329:+    yych = *++p;+    if (yych == 'N')+      goto yy372;+    if (yych == 'n')+      goto yy372;+    goto yy298;+  yy330:+    yych = *++p;+    if (yych == 'L')+      goto yy373;+    if (yych == 'l')+      goto yy373;+    goto yy298;+  yy331:+    yych = *++p;+    if (yych <= ' ') {+      if (yych <= 0x08)+        goto yy298;+      if (yych <= '\r')+        goto yy347;+      if (yych <= 0x1F)+        goto yy298;+      goto yy347;+    } else {+      if (yych <= '/') {+        if (yych <= '.')+          goto yy298;+        goto yy348;+      } else {+        if (yych == '>')+          goto yy347;+        goto yy298;+      }+    }+  yy332:+    yych = *++p;+    if (yych == 'T')+      goto yy374;+    if (yych == 't')+      goto yy374;+    goto yy298;+  yy333:+    yych = *++p;+    if (yych <= 'V') {+      if (yych <= 'Q') {+        if (yych == 'A')+          goto yy375;+        goto yy298;+      } else {+        if (yych <= 'R')+          goto yy331;+        if (yych <= 'U')+          goto yy298;+        goto yy331;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'a')+          goto yy375;+        goto yy298;+      } else {+        if (yych <= 'r')+          goto yy331;+        if (yych == 'v')+          goto yy331;+        goto yy298;+      }+    }+  yy334:+    yych = *++p;+    if (yych <= 'G') {+      if (yych == 'E')+        goto yy376;+      if (yych <= 'F')+        goto yy298;+      goto yy377;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy298;+        goto yy376;+      } else {+        if (yych == 'g')+          goto yy377;+        goto yy298;+      }+    }+  yy335:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == 'O')+        goto yy372;+      if (yych <= 'Q')+        goto yy298;+      goto yy378;+    } else {+      if (yych <= 'o') {+        if (yych <= 'n')+          goto yy298;+        goto yy372;+      } else {+        if (yych == 'r')+          goto yy378;+        goto yy298;+      }+    }+  yy336:+    yych = *++p;+    if (yych == 'A')+      goto yy379;+    if (yych == 'a')+      goto yy379;+    goto yy298;+  yy337:+    yych = *++p;+    if (yych == 'A')+      goto yy380;+    if (yych == 'a')+      goto yy380;+    goto yy298;+  yy338:+    yych = *++p;+    if (yych == 'M')+      goto yy315;+    if (yych == 'm')+      goto yy315;+    goto yy298;+  yy339:+    yych = *++p;+    if (yych == 'R')+      goto yy381;+    if (yych == 'r')+      goto yy381;+    goto yy298;+  yy340:+    yych = *++p;+    if (yych == 'G')+      goto yy382;+    if (yych == 'g')+      goto yy382;+    goto yy298;+  yy341:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'M') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'N')+          goto yy383;+        if (yych == 'n')+          goto yy383;+        goto yy298;+      }+    }+  yy342:+    yych = *++p;+    if (yych == 'I')+      goto yy384;+    if (yych == 'i')+      goto yy384;+    goto yy298;+  yy343:+    yych = *++p;+    if (yych == 'N')+      goto yy385;+    if (yych == 'n')+      goto yy385;+    goto yy298;+  yy344:+    yych = *++p;+    if (yych == 'V')+      goto yy331;+    if (yych == 'v')+      goto yy331;+    goto yy298;+  yy345:+    yych = *++p;+    if (yych == 'F')+      goto yy386;+    if (yych == 'f')+      goto yy386;+    goto yy298;+  yy346:+    yych = *++p;+    if (yych == 'T')+      goto yy387;+    if (yych == 't')+      goto yy387;+    goto yy298;+  yy347:+    ++p;+    { return 6; }+  yy348:+    yych = *++p;+    if (yych == '>')+      goto yy347;+    goto yy298;+  yy349:+    yych = *++p;+    if (yych == 'R')+      goto yy388;+    if (yych == 'r')+      goto yy388;+    goto yy298;+  yy350:+    yych = *++p;+    if (yych == 'E')+      goto yy389;+    if (yych == 'e')+      goto yy389;+    goto yy298;+  yy351:+    yych = *++p;+    if (yych == 'R')+      goto yy390;+    if (yych == 'r')+      goto yy390;+    goto yy298;+  yy352:+    yych = *++p;+    if (yych == 'C')+      goto yy371;+    if (yych == 'c')+      goto yy371;+    goto yy298;+  yy353:+    yych = *++p;+    if (yych == 'U')+      goto yy391;+    if (yych == 'u')+      goto yy391;+    goto yy298;+  yy354:+    yych = *++p;+    if (yych == 'Y')+      goto yy392;+    if (yych == 'y')+      goto yy392;+    goto yy298;+  yy355:+    yych = *++p;+    if (yych == 'M')+      goto yy393;+    if (yych == 'm')+      goto yy393;+    goto yy298;+  yy356:+    yych = *++p;+    if (yych == 'B')+      goto yy394;+    if (yych == 'b')+      goto yy394;+    goto yy298;+  yy357:+    yych = *++p;+    if (yych == 'O')+      goto yy327;+    if (yych == 'o')+      goto yy327;+    goto yy298;+  yy358:+    yych = *++p;+    if (yych == 'X')+      goto yy395;+    if (yych == 'x')+      goto yy395;+    goto yy298;+  yy359:+    yych = *++p;+    if (yych == 'O')+      goto yy396;+    if (yych == 'o')+      goto yy396;+    goto yy298;+  yy360:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'D') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'E')+          goto yy397;+        if (yych == 'e')+          goto yy397;+        goto yy298;+      }+    }+  yy361:+    yych = *++p;+    if (yych == 'T')+      goto yy394;+    if (yych == 't')+      goto yy394;+    goto yy298;+  yy362:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= '@') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'A')+          goto yy398;+        if (yych == 'a')+          goto yy398;+        goto yy298;+      }+    }+  yy363:+    ++p;+    { return 2; }+  yy364:+    yych = *++p;+    if (yych == 'D')+      goto yy399;+    if (yych == 'd')+      goto yy399;+    goto yy298;+  yy365:+    yych = *++p;+    if (yych == 'R')+      goto yy400;+    if (yych == 'r')+      goto yy400;+    goto yy298;+  yy366:+    yych = *++p;+    if (yych == 'I')+      goto yy401;+    if (yych == 'i')+      goto yy401;+    goto yy298;+  yy367:+    yych = *++p;+    if (yych == 'D')+      goto yy402;+    if (yych == 'd')+      goto yy402;+    goto yy298;+  yy368:+    yych = *++p;+    if (yych == 'E')+      goto yy403;+    if (yych == 'e')+      goto yy403;+    goto yy298;+  yy369:+    yych = *++p;+    if (yych == 'C')+      goto yy404;+    if (yych == 'c')+      goto yy404;+    goto yy298;+  yy370:+    yych = *++p;+    if (yych == 'Y')+      goto yy331;+    if (yych == 'y')+      goto yy331;+    goto yy298;+  yy371:+    yych = *++p;+    if (yych == 'T')+      goto yy405;+    if (yych == 't')+      goto yy405;+    goto yy298;+  yy372:+    yych = *++p;+    if (yych == 'T')+      goto yy406;+    if (yych == 't')+      goto yy406;+    goto yy298;+  yy373:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'F') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'G')+          goto yy407;+        if (yych == 'g')+          goto yy407;+        goto yy298;+      }+    }+  yy374:+    yych = *++p;+    if (yych == 'A')+      goto yy408;+    if (yych == 'a')+      goto yy408;+    goto yy298;+  yy375:+    yych = *++p;+    if (yych == 'L')+      goto yy409;+    if (yych == 'l')+      goto yy409;+    goto yy298;+  yy376:+    yych = *++p;+    if (yych == 'L')+      goto yy410;+    if (yych == 'l')+      goto yy410;+    goto yy298;+  yy377:+    yych = *++p;+    if (yych <= 'U') {+      if (yych == 'C')+        goto yy411;+      if (yych <= 'T')+        goto yy298;+      goto yy412;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy298;+        goto yy411;+      } else {+        if (yych == 'u')+          goto yy412;+        goto yy298;+      }+    }+  yy378:+    yych = *++p;+    if (yych == 'M')+      goto yy331;+    if (yych == 'm')+      goto yy331;+    goto yy298;+  yy379:+    yych = *++p;+    if (yych == 'M')+      goto yy413;+    if (yych == 'm')+      goto yy413;+    goto yy298;+  yy380:+    yych = *++p;+    if (yych == 'D')+      goto yy414;+    if (yych == 'd')+      goto yy414;+    goto yy298;+  yy381:+    yych = *++p;+    if (yych == 'A')+      goto yy415;+    if (yych == 'a')+      goto yy415;+    goto yy298;+  yy382:+    yych = *++p;+    if (yych == 'E')+      goto yy416;+    if (yych == 'e')+      goto yy416;+    goto yy298;+  yy383:+    yych = *++p;+    if (yych == 'K')+      goto yy331;+    if (yych == 'k')+      goto yy331;+    goto yy298;+  yy384:+    yych = *++p;+    if (yych == 'N')+      goto yy331;+    if (yych == 'n')+      goto yy331;+    goto yy298;+  yy385:+    yych = *++p;+    if (yych == 'U')+      goto yy417;+    if (yych == 'u')+      goto yy417;+    goto yy298;+  yy386:+    yych = *++p;+    if (yych == 'R')+      goto yy418;+    if (yych == 'r')+      goto yy418;+    goto yy298;+  yy387:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'G')+        goto yy407;+      if (yych <= 'H')+        goto yy298;+      goto yy419;+    } else {+      if (yych <= 'g') {+        if (yych <= 'f')+          goto yy298;+        goto yy407;+      } else {+        if (yych == 'i')+          goto yy419;+        goto yy298;+      }+    }+  yy388:+    yych = *++p;+    if (yych == 'A')+      goto yy378;+    if (yych == 'a')+      goto yy378;+    goto yy298;+  yy389:+    yych = *++p;+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy298;+      if (yych <= '\r')+        goto yy420;+      goto yy298;+    } else {+      if (yych <= ' ')+        goto yy420;+      if (yych == '>')+        goto yy420;+      goto yy298;+    }+  yy390:+    yych = *++p;+    if (yych == 'I')+      goto yy421;+    if (yych == 'i')+      goto yy421;+    goto yy298;+  yy391:+    yych = *++p;+    if (yych == 'R')+      goto yy422;+    if (yych == 'r')+      goto yy422;+    goto yy298;+  yy392:+    yych = *++p;+    if (yych == 'L')+      goto yy350;+    if (yych == 'l')+      goto yy350;+    goto yy298;+  yy393:+    yych = *++p;+    if (yych == 'M')+      goto yy423;+    if (yych == 'm')+      goto yy423;+    goto yy298;+  yy394:+    yych = *++p;+    if (yych == 'L')+      goto yy402;+    if (yych == 'l')+      goto yy402;+    goto yy298;+  yy395:+    yych = *++p;+    if (yych == 'T')+      goto yy424;+    if (yych == 't')+      goto yy424;+    goto yy298;+  yy396:+    yych = *++p;+    if (yych == 'O')+      goto yy425;+    if (yych == 'o')+      goto yy425;+    goto yy298;+  yy397:+    yych = *++p;+    if (yych == 'A')+      goto yy426;+    if (yych == 'a')+      goto yy426;+    goto yy298;+  yy398:+    yych = *++p;+    if (yych == 'C')+      goto yy383;+    if (yych == 'c')+      goto yy383;+    goto yy298;+  yy399:+    yych = *++p;+    if (yych == 'A')+      goto yy427;+    if (yych == 'a')+      goto yy427;+    goto yy298;+  yy400:+    yych = *++p;+    if (yych == 'E')+      goto yy428;+    if (yych == 'e')+      goto yy428;+    goto yy298;+  yy401:+    yych = *++p;+    if (yych == 'C')+      goto yy394;+    if (yych == 'c')+      goto yy394;+    goto yy298;+  yy402:+    yych = *++p;+    if (yych == 'E')+      goto yy331;+    if (yych == 'e')+      goto yy331;+    goto yy298;+  yy403:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'E') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'F')+          goto yy429;+        if (yych == 'f')+          goto yy429;+        goto yy298;+      }+    }+  yy404:+    yych = *++p;+    if (yych == 'K')+      goto yy430;+    if (yych == 'k')+      goto yy430;+    goto yy298;+  yy405:+    yych = *++p;+    if (yych == 'I')+      goto yy419;+    if (yych == 'i')+      goto yy419;+    goto yy298;+  yy406:+    yych = *++p;+    if (yych == 'E')+      goto yy431;+    if (yych == 'e')+      goto yy431;+    goto yy298;+  yy407:+    yych = *++p;+    if (yych == 'R')+      goto yy432;+    if (yych == 'r')+      goto yy432;+    goto yy298;+  yy408:+    yych = *++p;+    if (yych == 'I')+      goto yy433;+    if (yych == 'i')+      goto yy433;+    goto yy298;+  yy409:+    yych = *++p;+    if (yych == 'O')+      goto yy434;+    if (yych == 'o')+      goto yy434;+    goto yy298;+  yy410:+    yych = *++p;+    if (yych == 'D')+      goto yy435;+    if (yych == 'd')+      goto yy435;+    goto yy298;+  yy411:+    yych = *++p;+    if (yych == 'A')+      goto yy328;+    if (yych == 'a')+      goto yy328;+    goto yy298;+  yy412:+    yych = *++p;+    if (yych == 'R')+      goto yy402;+    if (yych == 'r')+      goto yy402;+    goto yy298;+  yy413:+    yych = *++p;+    if (yych == 'E')+      goto yy436;+    if (yych == 'e')+      goto yy436;+    goto yy298;+  yy414:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'D') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'E')+          goto yy431;+        if (yych == 'e')+          goto yy431;+        goto yy298;+      }+    }+  yy415:+    yych = *++p;+    if (yych == 'M')+      goto yy402;+    if (yych == 'm')+      goto yy402;+    goto yy298;+  yy416:+    yych = *++p;+    if (yych == 'N')+      goto yy426;+    if (yych == 'n')+      goto yy426;+    goto yy298;+  yy417:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'H') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'I')+          goto yy437;+        if (yych == 'i')+          goto yy437;+        goto yy298;+      }+    }+  yy418:+    yych = *++p;+    if (yych == 'A')+      goto yy438;+    if (yych == 'a')+      goto yy438;+    goto yy298;+  yy419:+    yych = *++p;+    if (yych == 'O')+      goto yy384;+    if (yych == 'o')+      goto yy384;+    goto yy298;+  yy420:+    ++p;+    { return 1; }+  yy421:+    yych = *++p;+    if (yych == 'P')+      goto yy439;+    if (yych == 'p')+      goto yy439;+    goto yy298;+  yy422:+    yych = *++p;+    if (yych == 'C')+      goto yy402;+    if (yych == 'c')+      goto yy402;+    goto yy298;+  yy423:+    yych = *++p;+    if (yych == 'A')+      goto yy440;+    if (yych == 'a')+      goto yy440;+    goto yy298;+  yy424:+    yych = *++p;+    if (yych == 'A')+      goto yy441;+    if (yych == 'a')+      goto yy441;+    goto yy298;+  yy425:+    yych = *++p;+    if (yych == 'T')+      goto yy331;+    if (yych == 't')+      goto yy331;+    goto yy298;+  yy426:+    yych = *++p;+    if (yych == 'D')+      goto yy331;+    if (yych == 'd')+      goto yy331;+    goto yy298;+  yy427:+    yych = *++p;+    if (yych == 'T')+      goto yy442;+    if (yych == 't')+      goto yy442;+    goto yy298;+  yy428:+    yych = *++p;+    if (yych == 'S')+      goto yy443;+    if (yych == 's')+      goto yy443;+    goto yy298;+  yy429:+    yych = *++p;+    if (yych == 'O')+      goto yy444;+    if (yych == 'o')+      goto yy444;+    goto yy298;+  yy430:+    yych = *++p;+    if (yych == 'Q')+      goto yy445;+    if (yych == 'q')+      goto yy445;+    goto yy298;+  yy431:+    yych = *++p;+    if (yych == 'R')+      goto yy331;+    if (yych == 'r')+      goto yy331;+    goto yy298;+  yy432:+    yych = *++p;+    if (yych == 'O')+      goto yy446;+    if (yych == 'o')+      goto yy446;+    goto yy298;+  yy433:+    yych = *++p;+    if (yych == 'L')+      goto yy443;+    if (yych == 'l')+      goto yy443;+    goto yy298;+  yy434:+    yych = *++p;+    if (yych == 'G')+      goto yy331;+    if (yych == 'g')+      goto yy331;+    goto yy298;+  yy435:+    yych = *++p;+    if (yych == 'S')+      goto yy447;+    if (yych == 's')+      goto yy447;+    goto yy298;+  yy436:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy298;+        if (yych <= '\r')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= ' ')+          goto yy347;+        if (yych <= '.')+          goto yy298;+        goto yy348;+      }+    } else {+      if (yych <= 'R') {+        if (yych == '>')+          goto yy347;+        goto yy298;+      } else {+        if (yych <= 'S')+          goto yy447;+        if (yych == 's')+          goto yy447;+        goto yy298;+      }+    }+  yy437:+    yych = *++p;+    if (yych == 'T')+      goto yy448;+    if (yych == 't')+      goto yy448;+    goto yy298;+  yy438:+    yych = *++p;+    if (yych == 'M')+      goto yy449;+    if (yych == 'm')+      goto yy449;+    goto yy298;+  yy439:+    yych = *++p;+    if (yych == 'T')+      goto yy389;+    if (yych == 't')+      goto yy389;+    goto yy298;+  yy440:+    yych = *++p;+    if (yych == 'R')+      goto yy370;+    if (yych == 'r')+      goto yy370;+    goto yy298;+  yy441:+    yych = *++p;+    if (yych == 'R')+      goto yy450;+    if (yych == 'r')+      goto yy450;+    goto yy298;+  yy442:+    yych = *++p;+    if (yych == 'A')+      goto yy451;+    if (yych == 'a')+      goto yy451;+    goto yy298;+  yy443:+    yych = *++p;+    if (yych == 'S')+      goto yy331;+    if (yych == 's')+      goto yy331;+    goto yy298;+  yy444:+    yych = *++p;+    if (yych == 'N')+      goto yy425;+    if (yych == 'n')+      goto yy425;+    goto yy298;+  yy445:+    yych = *++p;+    if (yych == 'U')+      goto yy452;+    if (yych == 'u')+      goto yy452;+    goto yy298;+  yy446:+    yych = *++p;+    if (yych == 'U')+      goto yy453;+    if (yych == 'u')+      goto yy453;+    goto yy298;+  yy447:+    yych = *++p;+    if (yych == 'E')+      goto yy425;+    if (yych == 'e')+      goto yy425;+    goto yy298;+  yy448:+    yych = *++p;+    if (yych == 'E')+      goto yy378;+    if (yych == 'e')+      goto yy378;+    goto yy298;+  yy449:+    yych = *++p;+    if (yych == 'E')+      goto yy443;+    if (yych == 'e')+      goto yy443;+    goto yy298;+  yy450:+    yych = *++p;+    if (yych == 'E')+      goto yy454;+    if (yych == 'e')+      goto yy454;+    goto yy298;+  yy451:+    yych = *++p;+    if (yych == '[')+      goto yy455;+    goto yy298;+  yy452:+    yych = *++p;+    if (yych == 'O')+      goto yy456;+    if (yych == 'o')+      goto yy456;+    goto yy298;+  yy453:+    yych = *++p;+    if (yych == 'P')+      goto yy331;+    if (yych == 'p')+      goto yy331;+    goto yy298;+  yy454:+    yych = *++p;+    if (yych == 'A')+      goto yy389;+    if (yych == 'a')+      goto yy389;+    goto yy298;+  yy455:+    ++p;+    { return 5; }+  yy456:+    yych = *++p;+    if (yych == 'T')+      goto yy402;+    if (yych == 't')+      goto yy402;+    goto yy298;+  }+}++// Try to match an HTML block tag start line of type 7, returning+// 7 if successful, 0 if not.+bufsize_t _scan_html_block_start_7(const unsigned char *p) {+  const unsigned char *marker = NULL;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194,+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+        224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64,  224, 224,+        224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233,+        233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233,+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,+        233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233,+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 224, 224, 224,+        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych == '<')+      goto yy459;+    ++p;+  yy458 : { return 0; }+  yy459:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '@') {+      if (yych != '/')+        goto yy458;+    } else {+      if (yych <= 'Z')+        goto yy461;+      if (yych <= '`')+        goto yy458;+      if (yych <= 'z')+        goto yy461;+      goto yy458;+    }+    yych = *++p;+    if (yych <= '@')+      goto yy460;+    if (yych <= 'Z')+      goto yy462;+    if (yych <= '`')+      goto yy460;+    if (yych <= 'z')+      goto yy462;+  yy460:+    p = marker;+    if (yyaccept == 0) {+      goto yy458;+    } else {+      goto yy469;+    }+  yy461:+    yych = *++p;+    if (yybm[0 + yych] & 2) {+      goto yy463;+    }+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych == '-')+          goto yy461;+        goto yy460;+      } else {+        if (yych <= '/')+          goto yy464;+        if (yych <= '9')+          goto yy461;+        goto yy460;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy465;+        if (yych <= '@')+          goto yy460;+        goto yy461;+      } else {+        if (yych <= '`')+          goto yy460;+        if (yych <= 'z')+          goto yy461;+        goto yy460;+      }+    }+  yy462:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy460;+        if (yych <= '\r')+          goto yy466;+        goto yy460;+      } else {+        if (yych <= ' ')+          goto yy466;+        if (yych == '-')+          goto yy462;+        goto yy460;+      }+    } else {+      if (yych <= '@') {+        if (yych <= '9')+          goto yy462;+        if (yych == '>')+          goto yy465;+        goto yy460;+      } else {+        if (yych <= 'Z')+          goto yy462;+        if (yych <= '`')+          goto yy460;+        if (yych <= 'z')+          goto yy462;+        goto yy460;+      }+    }+  yy463:+    yych = *++p;+    if (yybm[0 + yych] & 2) {+      goto yy463;+    }+    if (yych <= '>') {+      if (yych <= '9') {+        if (yych != '/')+          goto yy460;+      } else {+        if (yych <= ':')+          goto yy467;+        if (yych <= '=')+          goto yy460;+        goto yy465;+      }+    } else {+      if (yych <= '^') {+        if (yych <= '@')+          goto yy460;+        if (yych <= 'Z')+          goto yy467;+        goto yy460;+      } else {+        if (yych == '`')+          goto yy460;+        if (yych <= 'z')+          goto yy467;+        goto yy460;+      }+    }+  yy464:+    yych = *++p;+    if (yych != '>')+      goto yy460;+  yy465:+    yych = *++p;+    if (yybm[0 + yych] & 4) {+      goto yy465;+    }+    if (yych <= 0x08)+      goto yy460;+    if (yych <= '\n')+      goto yy468;+    if (yych <= '\v')+      goto yy460;+    if (yych <= '\r')+      goto yy470;+    goto yy460;+  yy466:+    yych = *++p;+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy460;+      if (yych <= '\r')+        goto yy466;+      goto yy460;+    } else {+      if (yych <= ' ')+        goto yy466;+      if (yych == '>')+        goto yy465;+      goto yy460;+    }+  yy467:+    yych = *++p;+    if (yybm[0 + yych] & 8) {+      goto yy467;+    }+    if (yych <= ',') {+      if (yych <= '\r') {+        if (yych <= 0x08)+          goto yy460;+        goto yy471;+      } else {+        if (yych == ' ')+          goto yy471;+        goto yy460;+      }+    } else {+      if (yych <= '<') {+        if (yych <= '/')+          goto yy464;+        goto yy460;+      } else {+        if (yych <= '=')+          goto yy472;+        if (yych <= '>')+          goto yy465;+        goto yy460;+      }+    }+  yy468:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 4) {+      goto yy465;+    }+    if (yych <= 0x08)+      goto yy469;+    if (yych <= '\n')+      goto yy468;+    if (yych <= '\v')+      goto yy469;+    if (yych <= '\r')+      goto yy470;+  yy469 : { return 7; }+  yy470:+    ++p;+    goto yy469;+  yy471:+    yych = *++p;+    if (yych <= '<') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy460;+        if (yych <= '\r')+          goto yy471;+        if (yych <= 0x1F)+          goto yy460;+        goto yy471;+      } else {+        if (yych <= '/') {+          if (yych <= '.')+            goto yy460;+          goto yy464;+        } else {+          if (yych == ':')+            goto yy467;+          goto yy460;+        }+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '=')+          goto yy472;+        if (yych <= '>')+          goto yy465;+        if (yych <= '@')+          goto yy460;+        goto yy467;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy460;+          goto yy467;+        } else {+          if (yych <= '`')+            goto yy460;+          if (yych <= 'z')+            goto yy467;+          goto yy460;+        }+      }+    }+  yy472:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy473;+    }+    if (yych <= 0xE0) {+      if (yych <= '"') {+        if (yych <= 0x00)+          goto yy460;+        if (yych <= ' ')+          goto yy472;+        goto yy474;+      } else {+        if (yych <= '\'')+          goto yy475;+        if (yych <= 0xC1)+          goto yy460;+        if (yych <= 0xDF)+          goto yy476;+        goto yy477;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy479;+        goto yy478;+      } else {+        if (yych <= 0xF0)+          goto yy480;+        if (yych <= 0xF3)+          goto yy481;+        if (yych <= 0xF4)+          goto yy482;+        goto yy460;+      }+    }+  yy473:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy473;+    }+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy460;+        if (yych <= ' ')+          goto yy463;+        goto yy460;+      } else {+        if (yych <= '>')+          goto yy465;+        if (yych <= 0xC1)+          goto yy460;+        if (yych <= 0xDF)+          goto yy476;+        goto yy477;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy479;+        goto yy478;+      } else {+        if (yych <= 0xF0)+          goto yy480;+        if (yych <= 0xF3)+          goto yy481;+        if (yych <= 0xF4)+          goto yy482;+        goto yy460;+      }+    }+  yy474:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy474;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy460;+        if (yych <= '"')+          goto yy483;+        goto yy460;+      } else {+        if (yych <= 0xDF)+          goto yy484;+        if (yych <= 0xE0)+          goto yy485;+        goto yy486;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy487;+        if (yych <= 0xEF)+          goto yy486;+        goto yy488;+      } else {+        if (yych <= 0xF3)+          goto yy489;+        if (yych <= 0xF4)+          goto yy490;+        goto yy460;+      }+    }+  yy475:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy475;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy460;+        if (yych <= '\'')+          goto yy483;+        goto yy460;+      } else {+        if (yych <= 0xDF)+          goto yy491;+        if (yych <= 0xE0)+          goto yy492;+        goto yy493;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy494;+        if (yych <= 0xEF)+          goto yy493;+        goto yy495;+      } else {+        if (yych <= 0xF3)+          goto yy496;+        if (yych <= 0xF4)+          goto yy497;+        goto yy460;+      }+    }+  yy476:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy473;+    goto yy460;+  yy477:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy476;+    goto yy460;+  yy478:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy476;+    goto yy460;+  yy479:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x9F)+      goto yy476;+    goto yy460;+  yy480:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy478;+    goto yy460;+  yy481:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy478;+    goto yy460;+  yy482:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x8F)+      goto yy478;+    goto yy460;+  yy483:+    yych = *++p;+    if (yybm[0 + yych] & 2) {+      goto yy463;+    }+    if (yych == '/')+      goto yy464;+    if (yych == '>')+      goto yy465;+    goto yy460;+  yy484:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy474;+    goto yy460;+  yy485:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy484;+    goto yy460;+  yy486:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy484;+    goto yy460;+  yy487:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x9F)+      goto yy484;+    goto yy460;+  yy488:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy486;+    goto yy460;+  yy489:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy486;+    goto yy460;+  yy490:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x8F)+      goto yy486;+    goto yy460;+  yy491:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy475;+    goto yy460;+  yy492:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy491;+    goto yy460;+  yy493:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy491;+    goto yy460;+  yy494:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x9F)+      goto yy491;+    goto yy460;+  yy495:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy493;+    goto yy460;+  yy496:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0xBF)+      goto yy493;+    goto yy460;+  yy497:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy460;+    if (yych <= 0x8F)+      goto yy493;+    goto yy460;+  }+}++// Try to match an HTML block end line of type 1+bufsize_t _scan_html_block_end_1(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,  64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 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,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  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,+    };+    yych = *p;+    if (yych <= 0xDF) {+      if (yych <= ';') {+        if (yych <= 0x00)+          goto yy499;+        if (yych != '\n')+          goto yy501;+      } else {+        if (yych <= '<')+          goto yy502;+        if (yych <= 0x7F)+          goto yy501;+        if (yych >= 0xC2)+          goto yy503;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy504;+        if (yych == 0xED)+          goto yy506;+        goto yy505;+      } else {+        if (yych <= 0xF0)+          goto yy507;+        if (yych <= 0xF3)+          goto yy508;+        if (yych <= 0xF4)+          goto yy509;+      }+    }+  yy499:+    ++p;+  yy500 : { return 0; }+  yy501:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy500;+      if (yych <= '\t')+        goto yy511;+      goto yy500;+    } else {+      if (yych <= 0x7F)+        goto yy511;+      if (yych <= 0xC1)+        goto yy500;+      if (yych <= 0xF4)+        goto yy511;+      goto yy500;+    }+  yy502:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '.') {+      if (yych <= 0x00)+        goto yy500;+      if (yych == '\n')+        goto yy500;+      goto yy511;+    } else {+      if (yych <= 0x7F) {+        if (yych <= '/')+          goto yy521;+        goto yy511;+      } else {+        if (yych <= 0xC1)+          goto yy500;+        if (yych <= 0xF4)+          goto yy511;+        goto yy500;+      }+    }+  yy503:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy500;+    if (yych <= 0xBF)+      goto yy510;+    goto yy500;+  yy504:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy500;+    if (yych <= 0xBF)+      goto yy514;+    goto yy500;+  yy505:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy500;+    if (yych <= 0xBF)+      goto yy514;+    goto yy500;+  yy506:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy500;+    if (yych <= 0x9F)+      goto yy514;+    goto yy500;+  yy507:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy500;+    if (yych <= 0xBF)+      goto yy516;+    goto yy500;+  yy508:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy500;+    if (yych <= 0xBF)+      goto yy516;+    goto yy500;+  yy509:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy500;+    if (yych <= 0x8F)+      goto yy516;+    goto yy500;+  yy510:+    yych = *++p;+  yy511:+    if (yybm[0 + yych] & 64) {+      goto yy510;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy512;+        if (yych <= '<')+          goto yy513;+      } else {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        goto yy516;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy517;+        if (yych <= 0xEF)+          goto yy516;+        goto yy518;+      } else {+        if (yych <= 0xF3)+          goto yy519;+        if (yych <= 0xF4)+          goto yy520;+      }+    }+  yy512:+    p = marker;+    if (yyaccept == 0) {+      goto yy500;+    } else {+      goto yy534;+    }+  yy513:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xDF) {+      if (yych <= '.') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= '/')+          goto yy521;+        if (yych <= 0x7F)+          goto yy510;+        if (yych <= 0xC1)+          goto yy512;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy515;+        if (yych == 0xED)+          goto yy517;+        goto yy516;+      } else {+        if (yych <= 0xF0)+          goto yy518;+        if (yych <= 0xF3)+          goto yy519;+        if (yych <= 0xF4)+          goto yy520;+        goto yy512;+      }+    }+  yy514:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy512;+    if (yych <= 0xBF)+      goto yy510;+    goto yy512;+  yy515:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy512;+    if (yych <= 0xBF)+      goto yy514;+    goto yy512;+  yy516:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy512;+    if (yych <= 0xBF)+      goto yy514;+    goto yy512;+  yy517:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy512;+    if (yych <= 0x9F)+      goto yy514;+    goto yy512;+  yy518:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy512;+    if (yych <= 0xBF)+      goto yy516;+    goto yy512;+  yy519:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy512;+    if (yych <= 0xBF)+      goto yy516;+    goto yy512;+  yy520:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy512;+    if (yych <= 0x8F)+      goto yy516;+    goto yy512;+  yy521:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 's') {+      if (yych <= 'R') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy512;+          if (yych <= '\t')+            goto yy510;+          goto yy512;+        } else {+          if (yych != 'P')+            goto yy510;+        }+      } else {+        if (yych <= 'o') {+          if (yych <= 'S')+            goto yy523;+          if (yych <= 'T')+            goto yy524;+          goto yy510;+        } else {+          if (yych <= 'p')+            goto yy522;+          if (yych <= 'r')+            goto yy510;+          goto yy523;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 't')+            goto yy524;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        } else {+          if (yych <= 0xDF)+            goto yy514;+          if (yych <= 0xE0)+            goto yy515;+          goto yy516;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy517;+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy522:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'Q') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'q') {+          if (yych <= 'R')+            goto yy525;+          goto yy510;+        } else {+          if (yych <= 'r')+            goto yy525;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy523:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 't') {+      if (yych <= 'C') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy512;+          goto yy510;+        } else {+          if (yych <= '\n')+            goto yy512;+          if (yych <= 'B')+            goto yy510;+          goto yy526;+        }+      } else {+        if (yych <= 'b') {+          if (yych == 'T')+            goto yy527;+          goto yy510;+        } else {+          if (yych <= 'c')+            goto yy526;+          if (yych <= 's')+            goto yy510;+          goto yy527;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        } else {+          if (yych <= 0xDF)+            goto yy514;+          if (yych <= 0xE0)+            goto yy515;+          goto yy516;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy517;+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy524:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'D') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'd') {+          if (yych <= 'E')+            goto yy528;+          goto yy510;+        } else {+          if (yych <= 'e')+            goto yy528;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy525:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'D') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'd') {+          if (yych <= 'E')+            goto yy529;+          goto yy510;+        } else {+          if (yych <= 'e')+            goto yy529;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy526:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'Q') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'q') {+          if (yych <= 'R')+            goto yy530;+          goto yy510;+        } else {+          if (yych <= 'r')+            goto yy530;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy527:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'X') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'x') {+          if (yych <= 'Y')+            goto yy531;+          goto yy510;+        } else {+          if (yych <= 'y')+            goto yy531;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy528:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'W') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'w') {+          if (yych <= 'X')+            goto yy532;+          goto yy510;+        } else {+          if (yych <= 'x')+            goto yy532;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy529:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= '>')+          goto yy533;+        if (yych <= 0x7F)+          goto yy510;+        if (yych <= 0xC1)+          goto yy512;+        goto yy514;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy515;+        if (yych == 0xED)+          goto yy517;+        goto yy516;+      } else {+        if (yych <= 0xF0)+          goto yy518;+        if (yych <= 0xF3)+          goto yy519;+        if (yych <= 0xF4)+          goto yy520;+        goto yy512;+      }+    }+  yy530:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'H') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'h') {+          if (yych <= 'I')+            goto yy535;+          goto yy510;+        } else {+          if (yych <= 'i')+            goto yy535;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy531:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'K') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'k') {+          if (yych <= 'L')+            goto yy525;+          goto yy510;+        } else {+          if (yych <= 'l')+            goto yy525;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy532:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'S') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 's') {+          if (yych <= 'T')+            goto yy536;+          goto yy510;+        } else {+          if (yych <= 't')+            goto yy536;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy533:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy510;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy534;+        if (yych <= '<')+          goto yy513;+      } else {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        goto yy516;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy517;+        if (yych <= 0xEF)+          goto yy516;+        goto yy518;+      } else {+        if (yych <= 0xF3)+          goto yy519;+        if (yych <= 0xF4)+          goto yy520;+      }+    }+  yy534 : { return (bufsize_t)(p - start); }+  yy535:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'O') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'o') {+          if (yych <= 'P')+            goto yy537;+          goto yy510;+        } else {+          if (yych <= 'p')+            goto yy537;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy536:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= '@') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= '`') {+          if (yych <= 'A')+            goto yy538;+          goto yy510;+        } else {+          if (yych <= 'a')+            goto yy538;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy537:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'S') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 's') {+          if (yych <= 'T')+            goto yy529;+          goto yy510;+        } else {+          if (yych <= 't')+            goto yy529;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy538:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'Q') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'q') {+          if (yych >= 'S')+            goto yy510;+        } else {+          if (yych <= 'r')+            goto yy539;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy539:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= 'D') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= 'd') {+          if (yych >= 'F')+            goto yy510;+        } else {+          if (yych <= 'e')+            goto yy540;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  yy540:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy513;+    }+    if (yych <= 0xC1) {+      if (yych <= '@') {+        if (yych <= 0x00)+          goto yy512;+        if (yych == '\n')+          goto yy512;+        goto yy510;+      } else {+        if (yych <= '`') {+          if (yych <= 'A')+            goto yy529;+          goto yy510;+        } else {+          if (yych <= 'a')+            goto yy529;+          if (yych <= 0x7F)+            goto yy510;+          goto yy512;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy514;+        if (yych <= 0xE0)+          goto yy515;+        if (yych <= 0xEC)+          goto yy516;+        goto yy517;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy516;+          goto yy518;+        } else {+          if (yych <= 0xF3)+            goto yy519;+          if (yych <= 0xF4)+            goto yy520;+          goto yy512;+        }+      }+    }+  }+}++// Try to match an HTML block end line of type 2+bufsize_t _scan_html_block_end_2(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 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,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  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,+    };+    yych = *p;+    if (yych <= 0xDF) {+      if (yych <= ',') {+        if (yych <= 0x00)+          goto yy542;+        if (yych != '\n')+          goto yy544;+      } else {+        if (yych <= '-')+          goto yy545;+        if (yych <= 0x7F)+          goto yy544;+        if (yych >= 0xC2)+          goto yy546;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy547;+        if (yych == 0xED)+          goto yy549;+        goto yy548;+      } else {+        if (yych <= 0xF0)+          goto yy550;+        if (yych <= 0xF3)+          goto yy551;+        if (yych <= 0xF4)+          goto yy552;+      }+    }+  yy542:+    ++p;+  yy543 : { return 0; }+  yy544:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy543;+      if (yych <= '\t')+        goto yy554;+      goto yy543;+    } else {+      if (yych <= 0x7F)+        goto yy554;+      if (yych <= 0xC1)+        goto yy543;+      if (yych <= 0xF4)+        goto yy554;+      goto yy543;+    }+  yy545:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy564;+    }+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy543;+      if (yych <= '\t')+        goto yy554;+      goto yy543;+    } else {+      if (yych <= 0x7F)+        goto yy554;+      if (yych <= 0xC1)+        goto yy543;+      if (yych <= 0xF4)+        goto yy554;+      goto yy543;+    }+  yy546:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy543;+    if (yych <= 0xBF)+      goto yy553;+    goto yy543;+  yy547:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy543;+    if (yych <= 0xBF)+      goto yy557;+    goto yy543;+  yy548:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy543;+    if (yych <= 0xBF)+      goto yy557;+    goto yy543;+  yy549:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy543;+    if (yych <= 0x9F)+      goto yy557;+    goto yy543;+  yy550:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy543;+    if (yych <= 0xBF)+      goto yy559;+    goto yy543;+  yy551:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy543;+    if (yych <= 0xBF)+      goto yy559;+    goto yy543;+  yy552:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy543;+    if (yych <= 0x8F)+      goto yy559;+    goto yy543;+  yy553:+    yych = *++p;+  yy554:+    if (yybm[0 + yych] & 64) {+      goto yy553;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy555;+        if (yych <= '-')+          goto yy556;+      } else {+        if (yych <= 0xDF)+          goto yy557;+        if (yych <= 0xE0)+          goto yy558;+        goto yy559;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy560;+        if (yych <= 0xEF)+          goto yy559;+        goto yy561;+      } else {+        if (yych <= 0xF3)+          goto yy562;+        if (yych <= 0xF4)+          goto yy563;+      }+    }+  yy555:+    p = marker;+    if (yyaccept == 0) {+      goto yy543;+    } else {+      goto yy566;+    }+  yy556:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy553;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy555;+        if (yych <= '-')+          goto yy564;+        goto yy555;+      } else {+        if (yych <= 0xDF)+          goto yy557;+        if (yych <= 0xE0)+          goto yy558;+        goto yy559;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy560;+        if (yych <= 0xEF)+          goto yy559;+        goto yy561;+      } else {+        if (yych <= 0xF3)+          goto yy562;+        if (yych <= 0xF4)+          goto yy563;+        goto yy555;+      }+    }+  yy557:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy555;+    if (yych <= 0xBF)+      goto yy553;+    goto yy555;+  yy558:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy555;+    if (yych <= 0xBF)+      goto yy557;+    goto yy555;+  yy559:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy555;+    if (yych <= 0xBF)+      goto yy557;+    goto yy555;+  yy560:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy555;+    if (yych <= 0x9F)+      goto yy557;+    goto yy555;+  yy561:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy555;+    if (yych <= 0xBF)+      goto yy559;+    goto yy555;+  yy562:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy555;+    if (yych <= 0xBF)+      goto yy559;+    goto yy555;+  yy563:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy555;+    if (yych <= 0x8F)+      goto yy559;+    goto yy555;+  yy564:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy564;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy555;+        if (yych == '\n')+          goto yy555;+        goto yy553;+      } else {+        if (yych <= '>')+          goto yy565;+        if (yych <= 0x7F)+          goto yy553;+        if (yych <= 0xC1)+          goto yy555;+        goto yy557;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy558;+        if (yych == 0xED)+          goto yy560;+        goto yy559;+      } else {+        if (yych <= 0xF0)+          goto yy561;+        if (yych <= 0xF3)+          goto yy562;+        if (yych <= 0xF4)+          goto yy563;+        goto yy555;+      }+    }+  yy565:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy553;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy566;+        if (yych <= '-')+          goto yy556;+      } else {+        if (yych <= 0xDF)+          goto yy557;+        if (yych <= 0xE0)+          goto yy558;+        goto yy559;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy560;+        if (yych <= 0xEF)+          goto yy559;+        goto yy561;+      } else {+        if (yych <= 0xF3)+          goto yy562;+        if (yych <= 0xF4)+          goto yy563;+      }+    }+  yy566 : { return (bufsize_t)(p - start); }+  }+}++// Try to match an HTML block end line of type 3+bufsize_t _scan_html_block_end_3(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,+        64, 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,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,+        0,  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,+    };+    yych = *p;+    if (yych <= 0xDF) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy568;+        if (yych != '\n')+          goto yy570;+      } else {+        if (yych <= '?')+          goto yy571;+        if (yych <= 0x7F)+          goto yy570;+        if (yych >= 0xC2)+          goto yy572;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy573;+        if (yych == 0xED)+          goto yy575;+        goto yy574;+      } else {+        if (yych <= 0xF0)+          goto yy576;+        if (yych <= 0xF3)+          goto yy577;+        if (yych <= 0xF4)+          goto yy578;+      }+    }+  yy568:+    ++p;+  yy569 : { return 0; }+  yy570:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy569;+      if (yych <= '\t')+        goto yy580;+      goto yy569;+    } else {+      if (yych <= 0x7F)+        goto yy580;+      if (yych <= 0xC1)+        goto yy569;+      if (yych <= 0xF4)+        goto yy580;+      goto yy569;+    }+  yy571:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '=') {+      if (yych <= 0x00)+        goto yy569;+      if (yych == '\n')+        goto yy569;+      goto yy580;+    } else {+      if (yych <= 0x7F) {+        if (yych <= '>')+          goto yy590;+        goto yy580;+      } else {+        if (yych <= 0xC1)+          goto yy569;+        if (yych <= 0xF4)+          goto yy580;+        goto yy569;+      }+    }+  yy572:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy569;+    if (yych <= 0xBF)+      goto yy579;+    goto yy569;+  yy573:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy569;+    if (yych <= 0xBF)+      goto yy583;+    goto yy569;+  yy574:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy569;+    if (yych <= 0xBF)+      goto yy583;+    goto yy569;+  yy575:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy569;+    if (yych <= 0x9F)+      goto yy583;+    goto yy569;+  yy576:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy569;+    if (yych <= 0xBF)+      goto yy585;+    goto yy569;+  yy577:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy569;+    if (yych <= 0xBF)+      goto yy585;+    goto yy569;+  yy578:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy569;+    if (yych <= 0x8F)+      goto yy585;+    goto yy569;+  yy579:+    yych = *++p;+  yy580:+    if (yybm[0 + yych] & 64) {+      goto yy579;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy581;+        if (yych <= '?')+          goto yy582;+      } else {+        if (yych <= 0xDF)+          goto yy583;+        if (yych <= 0xE0)+          goto yy584;+        goto yy585;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy586;+        if (yych <= 0xEF)+          goto yy585;+        goto yy587;+      } else {+        if (yych <= 0xF3)+          goto yy588;+        if (yych <= 0xF4)+          goto yy589;+      }+    }+  yy581:+    p = marker;+    if (yyaccept == 0) {+      goto yy569;+    } else {+      goto yy591;+    }+  yy582:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy582;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy581;+        if (yych == '\n')+          goto yy581;+        goto yy579;+      } else {+        if (yych <= '>')+          goto yy590;+        if (yych <= 0x7F)+          goto yy579;+        if (yych <= 0xC1)+          goto yy581;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy584;+        if (yych == 0xED)+          goto yy586;+        goto yy585;+      } else {+        if (yych <= 0xF0)+          goto yy587;+        if (yych <= 0xF3)+          goto yy588;+        if (yych <= 0xF4)+          goto yy589;+        goto yy581;+      }+    }+  yy583:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy581;+    if (yych <= 0xBF)+      goto yy579;+    goto yy581;+  yy584:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy581;+    if (yych <= 0xBF)+      goto yy583;+    goto yy581;+  yy585:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy581;+    if (yych <= 0xBF)+      goto yy583;+    goto yy581;+  yy586:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy581;+    if (yych <= 0x9F)+      goto yy583;+    goto yy581;+  yy587:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy581;+    if (yych <= 0xBF)+      goto yy585;+    goto yy581;+  yy588:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy581;+    if (yych <= 0xBF)+      goto yy585;+    goto yy581;+  yy589:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy581;+    if (yych <= 0x8F)+      goto yy585;+    goto yy581;+  yy590:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy579;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy591;+        if (yych <= '?')+          goto yy582;+      } else {+        if (yych <= 0xDF)+          goto yy583;+        if (yych <= 0xE0)+          goto yy584;+        goto yy585;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy586;+        if (yych <= 0xEF)+          goto yy585;+        goto yy587;+      } else {+        if (yych <= 0xF3)+          goto yy588;+        if (yych <= 0xF4)+          goto yy589;+      }+    }+  yy591 : { return (bufsize_t)(p - start); }+  }+}++// Try to match an HTML block end line of type 4+bufsize_t _scan_html_block_end_4(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy596;+    }+    if (yych <= 0xE0) {+      if (yych <= '\n') {+        if (yych <= 0x00)+          goto yy593;+        if (yych <= '\t')+          goto yy595;+      } else {+        if (yych <= 0x7F)+          goto yy595;+        if (yych <= 0xC1)+          goto yy593;+        if (yych <= 0xDF)+          goto yy598;+        goto yy599;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy601;+        goto yy600;+      } else {+        if (yych <= 0xF0)+          goto yy602;+        if (yych <= 0xF3)+          goto yy603;+        if (yych <= 0xF4)+          goto yy604;+      }+    }+  yy593:+    ++p;+  yy594 : { return 0; }+  yy595:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy594;+      if (yych <= '\t')+        goto yy606;+      goto yy594;+    } else {+      if (yych <= 0x7F)+        goto yy606;+      if (yych <= 0xC1)+        goto yy594;+      if (yych <= 0xF4)+        goto yy606;+      goto yy594;+    }+  yy596:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy605;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy597;+        if (yych <= '>')+          goto yy596;+      } else {+        if (yych <= 0xDF)+          goto yy608;+        if (yych <= 0xE0)+          goto yy609;+        goto yy610;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy611;+        if (yych <= 0xEF)+          goto yy610;+        goto yy612;+      } else {+        if (yych <= 0xF3)+          goto yy613;+        if (yych <= 0xF4)+          goto yy614;+      }+    }+  yy597 : { return (bufsize_t)(p - start); }+  yy598:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy594;+    if (yych <= 0xBF)+      goto yy605;+    goto yy594;+  yy599:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy594;+    if (yych <= 0xBF)+      goto yy608;+    goto yy594;+  yy600:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy594;+    if (yych <= 0xBF)+      goto yy608;+    goto yy594;+  yy601:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy594;+    if (yych <= 0x9F)+      goto yy608;+    goto yy594;+  yy602:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy594;+    if (yych <= 0xBF)+      goto yy610;+    goto yy594;+  yy603:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy594;+    if (yych <= 0xBF)+      goto yy610;+    goto yy594;+  yy604:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy594;+    if (yych <= 0x8F)+      goto yy610;+    goto yy594;+  yy605:+    yych = *++p;+  yy606:+    if (yybm[0 + yych] & 128) {+      goto yy605;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy607;+        if (yych <= '>')+          goto yy596;+      } else {+        if (yych <= 0xDF)+          goto yy608;+        if (yych <= 0xE0)+          goto yy609;+        goto yy610;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy611;+        if (yych <= 0xEF)+          goto yy610;+        goto yy612;+      } else {+        if (yych <= 0xF3)+          goto yy613;+        if (yych <= 0xF4)+          goto yy614;+      }+    }+  yy607:+    p = marker;+    if (yyaccept == 0) {+      goto yy594;+    } else {+      goto yy597;+    }+  yy608:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy607;+    if (yych <= 0xBF)+      goto yy605;+    goto yy607;+  yy609:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy607;+    if (yych <= 0xBF)+      goto yy608;+    goto yy607;+  yy610:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy607;+    if (yych <= 0xBF)+      goto yy608;+    goto yy607;+  yy611:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy607;+    if (yych <= 0x9F)+      goto yy608;+    goto yy607;+  yy612:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy607;+    if (yych <= 0xBF)+      goto yy610;+    goto yy607;+  yy613:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy607;+    if (yych <= 0xBF)+      goto yy610;+    goto yy607;+  yy614:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy607;+    if (yych <= 0x8F)+      goto yy610;+    goto yy607;+  }+}++// Try to match an HTML block end line of type 5+bufsize_t _scan_html_block_end_5(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,  64, 64, 64,  64, 64, 64, 64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+        64, 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,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  0,  0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,+        0,  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,+    };+    yych = *p;+    if (yych <= 0xDF) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy616;+        if (yych != '\n')+          goto yy618;+      } else {+        if (yych <= ']')+          goto yy619;+        if (yych <= 0x7F)+          goto yy618;+        if (yych >= 0xC2)+          goto yy620;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy621;+        if (yych == 0xED)+          goto yy623;+        goto yy622;+      } else {+        if (yych <= 0xF0)+          goto yy624;+        if (yych <= 0xF3)+          goto yy625;+        if (yych <= 0xF4)+          goto yy626;+      }+    }+  yy616:+    ++p;+  yy617 : { return 0; }+  yy618:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy617;+      if (yych <= '\t')+        goto yy628;+      goto yy617;+    } else {+      if (yych <= 0x7F)+        goto yy628;+      if (yych <= 0xC1)+        goto yy617;+      if (yych <= 0xF4)+        goto yy628;+      goto yy617;+    }+  yy619:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy638;+    }+    if (yych <= '\n') {+      if (yych <= 0x00)+        goto yy617;+      if (yych <= '\t')+        goto yy628;+      goto yy617;+    } else {+      if (yych <= 0x7F)+        goto yy628;+      if (yych <= 0xC1)+        goto yy617;+      if (yych <= 0xF4)+        goto yy628;+      goto yy617;+    }+  yy620:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy617;+    if (yych <= 0xBF)+      goto yy627;+    goto yy617;+  yy621:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x9F)+      goto yy617;+    if (yych <= 0xBF)+      goto yy631;+    goto yy617;+  yy622:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy617;+    if (yych <= 0xBF)+      goto yy631;+    goto yy617;+  yy623:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy617;+    if (yych <= 0x9F)+      goto yy631;+    goto yy617;+  yy624:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x8F)+      goto yy617;+    if (yych <= 0xBF)+      goto yy633;+    goto yy617;+  yy625:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy617;+    if (yych <= 0xBF)+      goto yy633;+    goto yy617;+  yy626:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F)+      goto yy617;+    if (yych <= 0x8F)+      goto yy633;+    goto yy617;+  yy627:+    yych = *++p;+  yy628:+    if (yybm[0 + yych] & 64) {+      goto yy627;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy629;+        if (yych <= ']')+          goto yy630;+      } else {+        if (yych <= 0xDF)+          goto yy631;+        if (yych <= 0xE0)+          goto yy632;+        goto yy633;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy634;+        if (yych <= 0xEF)+          goto yy633;+        goto yy635;+      } else {+        if (yych <= 0xF3)+          goto yy636;+        if (yych <= 0xF4)+          goto yy637;+      }+    }+  yy629:+    p = marker;+    if (yyaccept == 0) {+      goto yy617;+    } else {+      goto yy640;+    }+  yy630:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy627;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy629;+        if (yych <= ']')+          goto yy638;+        goto yy629;+      } else {+        if (yych <= 0xDF)+          goto yy631;+        if (yych <= 0xE0)+          goto yy632;+        goto yy633;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy634;+        if (yych <= 0xEF)+          goto yy633;+        goto yy635;+      } else {+        if (yych <= 0xF3)+          goto yy636;+        if (yych <= 0xF4)+          goto yy637;+        goto yy629;+      }+    }+  yy631:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy629;+    if (yych <= 0xBF)+      goto yy627;+    goto yy629;+  yy632:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy629;+    if (yych <= 0xBF)+      goto yy631;+    goto yy629;+  yy633:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy629;+    if (yych <= 0xBF)+      goto yy631;+    goto yy629;+  yy634:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy629;+    if (yych <= 0x9F)+      goto yy631;+    goto yy629;+  yy635:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy629;+    if (yych <= 0xBF)+      goto yy633;+    goto yy629;+  yy636:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy629;+    if (yych <= 0xBF)+      goto yy633;+    goto yy629;+  yy637:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy629;+    if (yych <= 0x8F)+      goto yy633;+    goto yy629;+  yy638:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy638;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy629;+        if (yych == '\n')+          goto yy629;+        goto yy627;+      } else {+        if (yych <= '>')+          goto yy639;+        if (yych <= 0x7F)+          goto yy627;+        if (yych <= 0xC1)+          goto yy629;+        goto yy631;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy632;+        if (yych == 0xED)+          goto yy634;+        goto yy633;+      } else {+        if (yych <= 0xF0)+          goto yy635;+        if (yych <= 0xF3)+          goto yy636;+        if (yych <= 0xF4)+          goto yy637;+        goto yy629;+      }+    }+  yy639:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy627;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy640;+        if (yych <= ']')+          goto yy630;+      } else {+        if (yych <= 0xDF)+          goto yy631;+        if (yych <= 0xE0)+          goto yy632;+        goto yy633;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy634;+        if (yych <= 0xEF)+          goto yy633;+        goto yy635;+      } else {+        if (yych <= 0xF3)+          goto yy636;+        if (yych <= 0xF4)+          goto yy637;+      }+    }+  yy640 : { return (bufsize_t)(p - start); }+  }+}++// Try to match a link title (in single quotes, in double quotes, or+// in parentheses), returning number of chars matched.  Allow one+// level of internal nesting (quotes within quotes).+bufsize_t _scan_link_title(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    static const unsigned char yybm[] = {+        0,   208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 192, 208, 208, 208, 208, 144, 80,  80,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 32,  208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,+        208, 208, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych <= '&') {+      if (yych == '"')+        goto yy643;+    } else {+      if (yych <= '\'')+        goto yy644;+      if (yych <= '(')+        goto yy645;+    }+    ++p;+  yy642 : { return 0; }+  yy643:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy642;+    if (yych <= 0x7F)+      goto yy647;+    if (yych <= 0xC1)+      goto yy642;+    if (yych <= 0xF4)+      goto yy647;+    goto yy642;+  yy644:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy642;+    if (yych <= 0x7F)+      goto yy660;+    if (yych <= 0xC1)+      goto yy642;+    if (yych <= 0xF4)+      goto yy660;+    goto yy642;+  yy645:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '(') {+      if (yych <= 0x00)+        goto yy642;+      if (yych <= '\'')+        goto yy672;+      goto yy642;+    } else {+      if (yych <= 0x7F)+        goto yy672;+      if (yych <= 0xC1)+        goto yy642;+      if (yych <= 0xF4)+        goto yy672;+      goto yy642;+    }+  yy646:+    yych = *++p;+  yy647:+    if (yybm[0 + yych] & 16) {+      goto yy646;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy648;+        if (yych <= '"')+          goto yy649;+        goto yy651;+      } else {+        if (yych <= 0xC1)+          goto yy648;+        if (yych <= 0xDF)+          goto yy652;+        goto yy653;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy655;+        goto yy654;+      } else {+        if (yych <= 0xF0)+          goto yy656;+        if (yych <= 0xF3)+          goto yy657;+        if (yych <= 0xF4)+          goto yy658;+      }+    }+  yy648:+    p = marker;+    if (yyaccept <= 1) {+      if (yyaccept == 0) {+        goto yy642;+      } else {+        goto yy650;+      }+    } else {+      if (yyaccept == 2) {+        goto yy662;+      } else {+        goto yy674;+      }+    }+  yy649:+    ++p;+  yy650 : { return (bufsize_t)(p - start); }+  yy651:+    yych = *++p;+    if (yybm[0 + yych] & 16) {+      goto yy646;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy648;+        if (yych <= '"')+          goto yy683;+        goto yy651;+      } else {+        if (yych <= 0xC1)+          goto yy648;+        if (yych >= 0xE0)+          goto yy653;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy655;+        goto yy654;+      } else {+        if (yych <= 0xF0)+          goto yy656;+        if (yych <= 0xF3)+          goto yy657;+        if (yych <= 0xF4)+          goto yy658;+        goto yy648;+      }+    }+  yy652:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy646;+    goto yy648;+  yy653:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy652;+    goto yy648;+  yy654:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy652;+    goto yy648;+  yy655:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x9F)+      goto yy652;+    goto yy648;+  yy656:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy654;+    goto yy648;+  yy657:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy654;+    goto yy648;+  yy658:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x8F)+      goto yy654;+    goto yy648;+  yy659:+    yych = *++p;+  yy660:+    if (yybm[0 + yych] & 64) {+      goto yy659;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy648;+        if (yych >= '(')+          goto yy663;+      } else {+        if (yych <= 0xC1)+          goto yy648;+        if (yych <= 0xDF)+          goto yy664;+        goto yy665;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy667;+        goto yy666;+      } else {+        if (yych <= 0xF0)+          goto yy668;+        if (yych <= 0xF3)+          goto yy669;+        if (yych <= 0xF4)+          goto yy670;+        goto yy648;+      }+    }+  yy661:+    ++p;+  yy662 : { return (bufsize_t)(p - start); }+  yy663:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy659;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy648;+        if (yych <= '\'')+          goto yy684;+        goto yy663;+      } else {+        if (yych <= 0xC1)+          goto yy648;+        if (yych >= 0xE0)+          goto yy665;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy667;+        goto yy666;+      } else {+        if (yych <= 0xF0)+          goto yy668;+        if (yych <= 0xF3)+          goto yy669;+        if (yych <= 0xF4)+          goto yy670;+        goto yy648;+      }+    }+  yy664:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy659;+    goto yy648;+  yy665:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy664;+    goto yy648;+  yy666:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy664;+    goto yy648;+  yy667:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x9F)+      goto yy664;+    goto yy648;+  yy668:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy666;+    goto yy648;+  yy669:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy666;+    goto yy648;+  yy670:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x8F)+      goto yy666;+    goto yy648;+  yy671:+    yych = *++p;+  yy672:+    if (yybm[0 + yych] & 128) {+      goto yy671;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= '(')+          goto yy648;+        if (yych >= '*')+          goto yy675;+      } else {+        if (yych <= 0xC1)+          goto yy648;+        if (yych <= 0xDF)+          goto yy676;+        goto yy677;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy679;+        goto yy678;+      } else {+        if (yych <= 0xF0)+          goto yy680;+        if (yych <= 0xF3)+          goto yy681;+        if (yych <= 0xF4)+          goto yy682;+        goto yy648;+      }+    }+  yy673:+    ++p;+  yy674 : { return (bufsize_t)(p - start); }+  yy675:+    yych = *++p;+    if (yych <= 0xDF) {+      if (yych <= '[') {+        if (yych <= 0x00)+          goto yy648;+        if (yych == ')')+          goto yy685;+        goto yy671;+      } else {+        if (yych <= '\\')+          goto yy675;+        if (yych <= 0x7F)+          goto yy671;+        if (yych <= 0xC1)+          goto yy648;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy677;+        if (yych == 0xED)+          goto yy679;+        goto yy678;+      } else {+        if (yych <= 0xF0)+          goto yy680;+        if (yych <= 0xF3)+          goto yy681;+        if (yych <= 0xF4)+          goto yy682;+        goto yy648;+      }+    }+  yy676:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy671;+    goto yy648;+  yy677:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy676;+    goto yy648;+  yy678:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy676;+    goto yy648;+  yy679:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x9F)+      goto yy676;+    goto yy648;+  yy680:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy678;+    goto yy648;+  yy681:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0xBF)+      goto yy678;+    goto yy648;+  yy682:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy648;+    if (yych <= 0x8F)+      goto yy678;+    goto yy648;+  yy683:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 16) {+      goto yy646;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy650;+        if (yych <= '"')+          goto yy649;+        goto yy651;+      } else {+        if (yych <= 0xC1)+          goto yy650;+        if (yych <= 0xDF)+          goto yy652;+        goto yy653;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy655;+        goto yy654;+      } else {+        if (yych <= 0xF0)+          goto yy656;+        if (yych <= 0xF3)+          goto yy657;+        if (yych <= 0xF4)+          goto yy658;+        goto yy650;+      }+    }+  yy684:+    yyaccept = 2;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy659;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy662;+        if (yych <= '\'')+          goto yy661;+        goto yy663;+      } else {+        if (yych <= 0xC1)+          goto yy662;+        if (yych <= 0xDF)+          goto yy664;+        goto yy665;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy667;+        goto yy666;+      } else {+        if (yych <= 0xF0)+          goto yy668;+        if (yych <= 0xF3)+          goto yy669;+        if (yych <= 0xF4)+          goto yy670;+        goto yy662;+      }+    }+  yy685:+    yyaccept = 3;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy671;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= '(')+          goto yy674;+        if (yych <= ')')+          goto yy673;+        goto yy675;+      } else {+        if (yych <= 0xC1)+          goto yy674;+        if (yych <= 0xDF)+          goto yy676;+        goto yy677;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy679;+        goto yy678;+      } else {+        if (yych <= 0xF0)+          goto yy680;+        if (yych <= 0xF3)+          goto yy681;+        if (yych <= 0xF4)+          goto yy682;+        goto yy674;+      }+    }+  }+}++// Match space characters, including newlines.+bufsize_t _scan_spacechars(const unsigned char *p) {+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,+    };+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy687;+    }+    ++p;+    { return 0; }+  yy687:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy687;+    }+    { return (bufsize_t)(p - start); }+  }+}++// Match ATX heading start.+bufsize_t _scan_atx_heading_start(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,+    };+    yych = *p;+    if (yych == '#')+      goto yy690;+    ++p;+  yy689 : { return 0; }+  yy690:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy689;+      if (yych <= '\n')+        goto yy693;+      goto yy689;+    } else {+      if (yych <= '\r')+        goto yy693;+      if (yych == '#')+        goto yy694;+      goto yy689;+    }+  yy691:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+  yy692 : { return (bufsize_t)(p - start); }+  yy693:+    ++p;+    goto yy692;+  yy694:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy695;+      if (yych <= '\n')+        goto yy693;+    } else {+      if (yych <= '\r')+        goto yy693;+      if (yych == '#')+        goto yy696;+    }+  yy695:+    p = marker;+    goto yy689;+  yy696:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy695;+      if (yych <= '\n')+        goto yy693;+      goto yy695;+    } else {+      if (yych <= '\r')+        goto yy693;+      if (yych != '#')+        goto yy695;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy695;+      if (yych <= '\n')+        goto yy693;+      goto yy695;+    } else {+      if (yych <= '\r')+        goto yy693;+      if (yych != '#')+        goto yy695;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy695;+      if (yych <= '\n')+        goto yy693;+      goto yy695;+    } else {+      if (yych <= '\r')+        goto yy693;+      if (yych != '#')+        goto yy695;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy691;+    }+    if (yych <= 0x08)+      goto yy695;+    if (yych <= '\n')+      goto yy693;+    if (yych == '\r')+      goto yy693;+    goto yy695;+  }+}++// Match setext heading line.  Return 1 for level-1 heading,+// 2 for level-2, 0 for no match.+bufsize_t _scan_setext_heading_line(const unsigned char *p) {+  const unsigned char *marker = NULL;++  {+    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, 0,  32, 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, 128, 0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,+        0, 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,+    };+    yych = *p;+    if (yych == '-')+      goto yy699;+    if (yych == '=')+      goto yy700;+    ++p;+  yy698 : { return 0; }+  yy699:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy705;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy698;+      if (yych <= '\n')+        goto yy702;+      goto yy698;+    } else {+      if (yych <= '\r')+        goto yy702;+      if (yych == ' ')+        goto yy702;+      goto yy698;+    }+  yy700:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy709;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy698;+      if (yych <= '\n')+        goto yy707;+      goto yy698;+    } else {+      if (yych <= '\r')+        goto yy707;+      if (yych == ' ')+        goto yy707;+      goto yy698;+    }+  yy701:+    yych = *++p;+  yy702:+    if (yybm[0 + yych] & 32) {+      goto yy701;+    }+    if (yych <= 0x08)+      goto yy703;+    if (yych <= '\n')+      goto yy704;+    if (yych == '\r')+      goto yy704;+  yy703:+    p = marker;+    goto yy698;+  yy704:+    ++p;+    { return 2; }+  yy705:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy701;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy703;+      if (yych <= '\n')+        goto yy704;+      goto yy703;+    } else {+      if (yych <= '\r')+        goto yy704;+      if (yych == '-')+        goto yy705;+      goto yy703;+    }+  yy706:+    yych = *++p;+  yy707:+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy703;+      if (yych <= '\t')+        goto yy706;+      if (yych >= '\v')+        goto yy703;+    } else {+      if (yych <= '\r')+        goto yy708;+      if (yych == ' ')+        goto yy706;+      goto yy703;+    }+  yy708:+    ++p;+    { return 1; }+  yy709:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy709;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy703;+      if (yych <= '\t')+        goto yy706;+      if (yych <= '\n')+        goto yy708;+      goto yy703;+    } else {+      if (yych <= '\r')+        goto yy708;+      if (yych == ' ')+        goto yy706;+      goto yy703;+    }+  }+}++// Scan an opening code fence.+bufsize_t _scan_open_code_fence(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0,   192, 192, 192, 192, 192, 192, 192, 192, 192, 0,   192, 192, 0,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,+        224, 192, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,+    };+    yych = *p;+    if (yych == '`')+      goto yy712;+    if (yych == '~')+      goto yy713;+    ++p;+  yy711 : { return 0; }+  yy712:+    yych = *(marker = ++p);+    if (yych == '`')+      goto yy714;+    goto yy711;+  yy713:+    yych = *(marker = ++p);+    if (yych == '~')+      goto yy716;+    goto yy711;+  yy714:+    yych = *++p;+    if (yybm[0 + yych] & 16) {+      goto yy717;+    }+  yy715:+    p = marker;+    goto yy711;+  yy716:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy718;+    }+    goto yy715;+  yy717:+    yych = *++p;+    if (yybm[0 + yych] & 16) {+      goto yy717;+    }+    if (yych <= 0xDF) {+      if (yych <= '\f') {+        if (yych <= 0x00)+          goto yy715;+        if (yych == '\n') {+          marker = p;+          goto yy720;+        }+        marker = p;+        goto yy719;+      } else {+        if (yych <= '\r') {+          marker = p;+          goto yy720;+        }+        if (yych <= 0x7F) {+          marker = p;+          goto yy719;+        }+        if (yych <= 0xC1)+          goto yy715;+        marker = p;+        goto yy721;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0) {+          marker = p;+          goto yy722;+        }+        if (yych == 0xED) {+          marker = p;+          goto yy724;+        }+        marker = p;+        goto yy723;+      } else {+        if (yych <= 0xF0) {+          marker = p;+          goto yy725;+        }+        if (yych <= 0xF3) {+          marker = p;+          goto yy726;+        }+        if (yych <= 0xF4) {+          marker = p;+          goto yy727;+        }+        goto yy715;+      }+    }+  yy718:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy718;+    }+    if (yych <= 0xDF) {+      if (yych <= '\f') {+        if (yych <= 0x00)+          goto yy715;+        if (yych == '\n') {+          marker = p;+          goto yy729;+        }+        marker = p;+        goto yy728;+      } else {+        if (yych <= '\r') {+          marker = p;+          goto yy729;+        }+        if (yych <= 0x7F) {+          marker = p;+          goto yy728;+        }+        if (yych <= 0xC1)+          goto yy715;+        marker = p;+        goto yy730;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0) {+          marker = p;+          goto yy731;+        }+        if (yych == 0xED) {+          marker = p;+          goto yy733;+        }+        marker = p;+        goto yy732;+      } else {+        if (yych <= 0xF0) {+          marker = p;+          goto yy734;+        }+        if (yych <= 0xF3) {+          marker = p;+          goto yy735;+        }+        if (yych <= 0xF4) {+          marker = p;+          goto yy736;+        }+        goto yy715;+      }+    }+  yy719:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy719;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy715;+        if (yych >= 0x0E)+          goto yy715;+      } else {+        if (yych <= 0xDF)+          goto yy721;+        if (yych <= 0xE0)+          goto yy722;+        goto yy723;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy724;+        if (yych <= 0xEF)+          goto yy723;+        goto yy725;+      } else {+        if (yych <= 0xF3)+          goto yy726;+        if (yych <= 0xF4)+          goto yy727;+        goto yy715;+      }+    }+  yy720:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  yy721:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy719;+    goto yy715;+  yy722:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy721;+    goto yy715;+  yy723:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy721;+    goto yy715;+  yy724:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0x9F)+      goto yy721;+    goto yy715;+  yy725:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy723;+    goto yy715;+  yy726:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy723;+    goto yy715;+  yy727:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0x8F)+      goto yy723;+    goto yy715;+  yy728:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy728;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy715;+        if (yych >= 0x0E)+          goto yy715;+      } else {+        if (yych <= 0xDF)+          goto yy730;+        if (yych <= 0xE0)+          goto yy731;+        goto yy732;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy733;+        if (yych <= 0xEF)+          goto yy732;+        goto yy734;+      } else {+        if (yych <= 0xF3)+          goto yy735;+        if (yych <= 0xF4)+          goto yy736;+        goto yy715;+      }+    }+  yy729:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  yy730:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy728;+    goto yy715;+  yy731:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy730;+    goto yy715;+  yy732:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy730;+    goto yy715;+  yy733:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0x9F)+      goto yy730;+    goto yy715;+  yy734:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy732;+    goto yy715;+  yy735:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0xBF)+      goto yy732;+    goto yy715;+  yy736:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy715;+    if (yych <= 0x8F)+      goto yy732;+    goto yy715;+  }+}++// Scan a closing code fence with length at least len.+bufsize_t _scan_close_code_fence(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0, 0, 0, 0, 0, 0, 0, 0, 0,  128, 0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   128, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 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, 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,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0, 0, 0, 0, 0,  0, 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,+    };+    yych = *p;+    if (yych == '`')+      goto yy739;+    if (yych == '~')+      goto yy740;+    ++p;+  yy738 : { return 0; }+  yy739:+    yych = *(marker = ++p);+    if (yych == '`')+      goto yy741;+    goto yy738;+  yy740:+    yych = *(marker = ++p);+    if (yych == '~')+      goto yy743;+    goto yy738;+  yy741:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy744;+    }+  yy742:+    p = marker;+    goto yy738;+  yy743:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy745;+    }+    goto yy742;+  yy744:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy744;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy742;+      if (yych <= '\t') {+        marker = p;+        goto yy746;+      }+      if (yych <= '\n') {+        marker = p;+        goto yy747;+      }+      goto yy742;+    } else {+      if (yych <= '\r') {+        marker = p;+        goto yy747;+      }+      if (yych == ' ') {+        marker = p;+        goto yy746;+      }+      goto yy742;+    }+  yy745:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy745;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy742;+      if (yych <= '\t') {+        marker = p;+        goto yy748;+      }+      if (yych <= '\n') {+        marker = p;+        goto yy749;+      }+      goto yy742;+    } else {+      if (yych <= '\r') {+        marker = p;+        goto yy749;+      }+      if (yych == ' ') {+        marker = p;+        goto yy748;+      }+      goto yy742;+    }+  yy746:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy746;+    }+    if (yych <= 0x08)+      goto yy742;+    if (yych <= '\n')+      goto yy747;+    if (yych != '\r')+      goto yy742;+  yy747:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  yy748:+    yych = *++p;+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy742;+      if (yych <= '\t')+        goto yy748;+      if (yych >= '\v')+        goto yy742;+    } else {+      if (yych <= '\r')+        goto yy749;+      if (yych == ' ')+        goto yy748;+      goto yy742;+    }+  yy749:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  }+}++// Scans an entity.+// Returns number of chars matched.+bufsize_t _scan_entity(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    yych = *p;+    if (yych == '&')+      goto yy752;+    ++p;+  yy751 : { return 0; }+  yy752:+    yych = *(marker = ++p);+    if (yych <= '@') {+      if (yych != '#')+        goto yy751;+    } else {+      if (yych <= 'Z')+        goto yy754;+      if (yych <= '`')+        goto yy751;+      if (yych <= 'z')+        goto yy754;+      goto yy751;+    }+    yych = *++p;+    if (yych <= 'W') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy755;+    } else {+      if (yych <= 'X')+        goto yy756;+      if (yych == 'x')+        goto yy756;+    }+  yy753:+    p = marker;+    goto yy751;+  yy754:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy757;+      goto yy753;+    } else {+      if (yych <= 'Z')+        goto yy757;+      if (yych <= '`')+        goto yy753;+      if (yych <= 'z')+        goto yy757;+      goto yy753;+    }+  yy755:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy758;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy756:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy760;+      goto yy753;+    } else {+      if (yych <= 'F')+        goto yy760;+      if (yych <= '`')+        goto yy753;+      if (yych <= 'f')+        goto yy760;+      goto yy753;+    }+  yy757:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy761;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy761;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy761;+        goto yy753;+      }+    }+  yy758:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy762;+    if (yych != ';')+      goto yy753;+  yy759:+    ++p;+    { return (bufsize_t)(p - start); }+  yy760:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy763;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy753;+        goto yy763;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'f')+          goto yy763;+        goto yy753;+      }+    }+  yy761:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy764;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy764;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy764;+        goto yy753;+      }+    }+  yy762:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy765;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy763:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy766;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy753;+        goto yy766;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'f')+          goto yy766;+        goto yy753;+      }+    }+  yy764:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy767;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy767;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy767;+        goto yy753;+      }+    }+  yy765:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy768;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy766:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy769;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy753;+        goto yy769;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'f')+          goto yy769;+        goto yy753;+      }+    }+  yy767:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy770;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy770;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy770;+        goto yy753;+      }+    }+  yy768:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy771;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy769:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy772;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy753;+        goto yy772;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'f')+          goto yy772;+        goto yy753;+      }+    }+  yy770:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy773;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy773;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy773;+        goto yy753;+      }+    }+  yy771:+    yych = *++p;+    if (yych <= '/')+      goto yy753;+    if (yych <= '9')+      goto yy774;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy772:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy774;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy753;+        goto yy774;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'f')+          goto yy774;+        goto yy753;+      }+    }+  yy773:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy775;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy775;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy775;+        goto yy753;+      }+    }+  yy774:+    yych = *++p;+    if (yych == ';')+      goto yy759;+    goto yy753;+  yy775:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy776;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy776:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy777;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy777:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy778;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy778:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy779;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy779:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy780;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy780:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy781;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy781:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy782;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy782:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy783;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy783:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy784;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy784:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy785;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy785:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy786;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy786:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy787;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy787:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy788;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy788:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy789;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy789:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy790;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy790:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy791;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy791:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy792;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy792:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy793;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy793:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy794;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy794:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy795;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy795:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy796;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy796:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy797;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy797:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy798;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych >= '{')+          goto yy753;+      }+    }+  yy798:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy753;+      if (yych <= '9')+        goto yy774;+      if (yych <= ':')+        goto yy753;+      goto yy759;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy753;+        goto yy774;+      } else {+        if (yych <= '`')+          goto yy753;+        if (yych <= 'z')+          goto yy774;+        goto yy753;+      }+    }+  }+}++// Returns positive value if a URL begins in a way that is potentially+// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.+bufsize_t _scan_dangerous_url(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    unsigned int yyaccept = 0;+    yych = *p;+    if (yych <= 'V') {+      if (yych <= 'F') {+        if (yych == 'D')+          goto yy801;+        if (yych >= 'F')+          goto yy802;+      } else {+        if (yych == 'J')+          goto yy803;+        if (yych >= 'V')+          goto yy804;+      }+    } else {+      if (yych <= 'f') {+        if (yych == 'd')+          goto yy801;+        if (yych >= 'f')+          goto yy802;+      } else {+        if (yych <= 'j') {+          if (yych >= 'j')+            goto yy803;+        } else {+          if (yych == 'v')+            goto yy804;+        }+      }+    }+    ++p;+  yy800 : { return 0; }+  yy801:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'A')+      goto yy805;+    if (yych == 'a')+      goto yy805;+    goto yy800;+  yy802:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'I')+      goto yy807;+    if (yych == 'i')+      goto yy807;+    goto yy800;+  yy803:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'A')+      goto yy808;+    if (yych == 'a')+      goto yy808;+    goto yy800;+  yy804:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'B')+      goto yy809;+    if (yych == 'b')+      goto yy809;+    goto yy800;+  yy805:+    yych = *++p;+    if (yych == 'T')+      goto yy810;+    if (yych == 't')+      goto yy810;+  yy806:+    p = marker;+    if (yyaccept == 0) {+      goto yy800;+    } else {+      goto yy818;+    }+  yy807:+    yych = *++p;+    if (yych == 'L')+      goto yy811;+    if (yych == 'l')+      goto yy811;+    goto yy806;+  yy808:+    yych = *++p;+    if (yych == 'V')+      goto yy812;+    if (yych == 'v')+      goto yy812;+    goto yy806;+  yy809:+    yych = *++p;+    if (yych == 'S')+      goto yy813;+    if (yych == 's')+      goto yy813;+    goto yy806;+  yy810:+    yych = *++p;+    if (yych == 'A')+      goto yy814;+    if (yych == 'a')+      goto yy814;+    goto yy806;+  yy811:+    yych = *++p;+    if (yych == 'E')+      goto yy815;+    if (yych == 'e')+      goto yy815;+    goto yy806;+  yy812:+    yych = *++p;+    if (yych == 'A')+      goto yy809;+    if (yych == 'a')+      goto yy809;+    goto yy806;+  yy813:+    yych = *++p;+    if (yych == 'C')+      goto yy816;+    if (yych == 'c')+      goto yy816;+    goto yy806;+  yy814:+    yych = *++p;+    if (yych == ':')+      goto yy817;+    goto yy806;+  yy815:+    yych = *++p;+    if (yych == ':')+      goto yy819;+    goto yy806;+  yy816:+    yych = *++p;+    if (yych == 'R')+      goto yy820;+    if (yych == 'r')+      goto yy820;+    goto yy806;+  yy817:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych == 'I')+      goto yy821;+    if (yych == 'i')+      goto yy821;+  yy818 : { return (bufsize_t)(p - start); }+  yy819:+    ++p;+    goto yy818;+  yy820:+    yych = *++p;+    if (yych == 'I')+      goto yy822;+    if (yych == 'i')+      goto yy822;+    goto yy806;+  yy821:+    yych = *++p;+    if (yych == 'M')+      goto yy823;+    if (yych == 'm')+      goto yy823;+    goto yy806;+  yy822:+    yych = *++p;+    if (yych == 'P')+      goto yy824;+    if (yych == 'p')+      goto yy824;+    goto yy806;+  yy823:+    yych = *++p;+    if (yych == 'A')+      goto yy825;+    if (yych == 'a')+      goto yy825;+    goto yy806;+  yy824:+    yych = *++p;+    if (yych == 'T')+      goto yy815;+    if (yych == 't')+      goto yy815;+    goto yy806;+  yy825:+    yych = *++p;+    if (yych == 'G')+      goto yy826;+    if (yych != 'g')+      goto yy806;+  yy826:+    yych = *++p;+    if (yych == 'E')+      goto yy827;+    if (yych != 'e')+      goto yy806;+  yy827:+    yych = *++p;+    if (yych != '/')+      goto yy806;+    yych = *++p;+    if (yych <= 'W') {+      if (yych <= 'J') {+        if (yych == 'G')+          goto yy828;+        if (yych <= 'I')+          goto yy806;+        goto yy829;+      } else {+        if (yych == 'P')+          goto yy830;+        if (yych <= 'V')+          goto yy806;+        goto yy831;+      }+    } else {+      if (yych <= 'j') {+        if (yych == 'g')+          goto yy828;+        if (yych <= 'i')+          goto yy806;+        goto yy829;+      } else {+        if (yych <= 'p') {+          if (yych <= 'o')+            goto yy806;+          goto yy830;+        } else {+          if (yych == 'w')+            goto yy831;+          goto yy806;+        }+      }+    }+  yy828:+    yych = *++p;+    if (yych == 'I')+      goto yy832;+    if (yych == 'i')+      goto yy832;+    goto yy806;+  yy829:+    yych = *++p;+    if (yych == 'P')+      goto yy833;+    if (yych == 'p')+      goto yy833;+    goto yy806;+  yy830:+    yych = *++p;+    if (yych == 'N')+      goto yy834;+    if (yych == 'n')+      goto yy834;+    goto yy806;+  yy831:+    yych = *++p;+    if (yych == 'E')+      goto yy835;+    if (yych == 'e')+      goto yy835;+    goto yy806;+  yy832:+    yych = *++p;+    if (yych == 'F')+      goto yy836;+    if (yych == 'f')+      goto yy836;+    goto yy806;+  yy833:+    yych = *++p;+    if (yych == 'E')+      goto yy834;+    if (yych != 'e')+      goto yy806;+  yy834:+    yych = *++p;+    if (yych == 'G')+      goto yy836;+    if (yych == 'g')+      goto yy836;+    goto yy806;+  yy835:+    yych = *++p;+    if (yych == 'B')+      goto yy837;+    if (yych == 'b')+      goto yy837;+    goto yy806;+  yy836:+    ++p;+    { return 0; }+  yy837:+    yych = *++p;+    if (yych == 'P')+      goto yy836;+    if (yych == 'p')+      goto yy836;+    goto yy806;+  }+}++// Scans a footnote definition opening.+bufsize_t _scan_footnote_definition(const unsigned char *p) {+  const unsigned char *marker = NULL;+  const unsigned char *start = p;++  {+    unsigned char yych;+    static const unsigned char yybm[] = {+        0,   64, 64, 64, 64, 64, 64, 64, 64, 128, 0,  64, 64, 0,  64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,+        128, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 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,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,+        0,   0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,+        0,   0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,  0,  0,  0,  0,+        0,   0,  0,  0,  0,  0,  0,  0,  0,  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,+    };+    yych = *p;+    if (yych == '[')+      goto yy840;+    ++p;+  yy839 : { return 0; }+  yy840:+    yych = *(marker = ++p);+    if (yych != '^')+      goto yy839;+    yych = *++p;+    if (yych != ']')+      goto yy843;+  yy841:+    p = marker;+    goto yy839;+  yy842:+    yych = *++p;+  yy843:+    if (yybm[0 + yych] & 64) {+      goto yy842;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= ' ')+          goto yy841;+        if (yych <= ']')+          goto yy851;+        goto yy841;+      } else {+        if (yych <= 0xDF)+          goto yy844;+        if (yych <= 0xE0)+          goto yy845;+        goto yy846;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy847;+        if (yych <= 0xEF)+          goto yy846;+        goto yy848;+      } else {+        if (yych <= 0xF3)+          goto yy849;+        if (yych <= 0xF4)+          goto yy850;+        goto yy841;+      }+    }+  yy844:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy841;+    if (yych <= 0xBF)+      goto yy842;+    goto yy841;+  yy845:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy841;+    if (yych <= 0xBF)+      goto yy844;+    goto yy841;+  yy846:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy841;+    if (yych <= 0xBF)+      goto yy844;+    goto yy841;+  yy847:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy841;+    if (yych <= 0x9F)+      goto yy844;+    goto yy841;+  yy848:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy841;+    if (yych <= 0xBF)+      goto yy846;+    goto yy841;+  yy849:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy841;+    if (yych <= 0xBF)+      goto yy846;+    goto yy841;+  yy850:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy841;+    if (yych <= 0x8F)+      goto yy846;+    goto yy841;+  yy851:+    yych = *++p;+    if (yych != ':')+      goto yy841;+  yy852:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy852;+    }+    { return (bufsize_t)(p - start); }+  } }
cbits/scanners.h view
@@ -15,6 +15,10 @@ bufsize_t _scan_autolink_email(const unsigned char *p); bufsize_t _scan_html_tag(const unsigned char *p); bufsize_t _scan_liberal_html_tag(const unsigned char *p);+bufsize_t _scan_html_comment(const unsigned char *p);+bufsize_t _scan_html_pi(const unsigned char *p);+bufsize_t _scan_html_declaration(const unsigned char *p);+bufsize_t _scan_html_cdata(const unsigned char *p); bufsize_t _scan_html_block_start(const unsigned char *p); bufsize_t _scan_html_block_start_7(const unsigned char *p); bufsize_t _scan_html_block_end_1(const unsigned char *p);@@ -37,6 +41,10 @@ #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n) #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n) #define scan_liberal_html_tag(c, n) _scan_at(&_scan_liberal_html_tag, c, n)+#define scan_html_comment(c, n) _scan_at(&_scan_html_comment, c, n)+#define scan_html_pi(c, n) _scan_at(&_scan_html_pi, c, n)+#define scan_html_declaration(c, n) _scan_at(&_scan_html_declaration, c, n)+#define scan_html_cdata(c, n) _scan_at(&_scan_html_cdata, c, n) #define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n) #define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n) #define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n)
cbits/strikethrough.c view
@@ -67,6 +67,7 @@   strikethrough->end_column = closer->inl_text->start_column + closer->inl_text->as.literal.len - 1;   cmark_node_free(closer->inl_text); +done:   delim = closer;   while (delim != NULL && delim != opener) {     tmp_delim = delim->previous;@@ -76,7 +77,6 @@    cmark_inline_parser_remove_delimiter(inline_parser, opener); -done:   return res; } 
cbits/table.c view
@@ -11,42 +11,55 @@ #include "table.h" #include "cmark-gfm-core-extensions.h" +// Limit to prevent a malicious input from causing a denial of service.+#define MAX_AUTOCOMPLETED_CELLS 0x80000++// Custom node flag, initialized in `create_table_extension`.+static cmark_node_internal_flags CMARK_NODE__TABLE_VISITED;+ cmark_node_type CMARK_NODE_TABLE, CMARK_NODE_TABLE_ROW,     CMARK_NODE_TABLE_CELL;  typedef struct {+  cmark_strbuf *buf;+  int start_offset, end_offset, internal_offset;+} node_cell;++typedef struct {   uint16_t n_columns;   int paragraph_offset;-  cmark_llist *cells;+  node_cell *cells; } table_row;  typedef struct {   uint16_t n_columns;   uint8_t *alignments;+  int n_rows;+  int n_nonempty_cells; } node_table;  typedef struct {   bool is_header; } node_table_row; -typedef struct {-  cmark_strbuf *buf;-  int start_offset, end_offset, internal_offset;-} node_cell;--static void free_table_cell(cmark_mem *mem, void *data) {-  node_cell *cell = (node_cell *)data;+static void free_table_cell(cmark_mem *mem, node_cell *cell) {   cmark_strbuf_free((cmark_strbuf *)cell->buf);   mem->free(cell->buf);-  mem->free(cell); } +static void free_row_cells(cmark_mem *mem, table_row *row) {+  while (row->n_columns > 0) {+    free_table_cell(mem, &row->cells[--row->n_columns]);+  }+  mem->free(row->cells);+  row->cells = NULL;+}+ static void free_table_row(cmark_mem *mem, table_row *row) {   if (!row)     return; -  cmark_llist_free_full(mem, row->cells, (cmark_free_func)free_table_cell);-+  free_row_cells(mem, row);   mem->free(row); } @@ -75,6 +88,33 @@   return 1; } +// Increment the number of rows in the table. Also update n_nonempty_cells,+// which keeps track of the number of cells which were parsed from the+// input file. (If one of the rows is too short, then the trailing cells+// are autocompleted. Autocompleted cells are not counted in n_nonempty_cells.)+// The purpose of this is to prevent a malicious input from generating a very+// large number of autocompleted cells, which could cause a denial of service+// vulnerability.+static int incr_table_row_count(cmark_node *node, int i) {+  if (!node || node->type != CMARK_NODE_TABLE) {+    return 0;+  }++  ((node_table *)node->as.opaque)->n_rows++;+  ((node_table *)node->as.opaque)->n_nonempty_cells += i;+  return 1;+}++// Calculate the number of autocompleted cells.+static int get_n_autocompleted_cells(cmark_node *node) {+  if (!node || node->type != CMARK_NODE_TABLE) {+    return 0;+  }++  const node_table *nt = (node_table *)node->as.opaque;+  return (nt->n_columns * nt->n_rows) - nt->n_nonempty_cells;+}+ static uint8_t *get_table_alignments(cmark_node *node) {   if (!node || node->type != CMARK_NODE_TABLE)     return 0;@@ -90,6 +130,23 @@   return 1; } +static uint8_t get_cell_alignment(cmark_node *node) {+  if (!node || node->type != CMARK_NODE_TABLE_CELL)+    return 0;++  const uint8_t *alignments = get_table_alignments(node->parent->parent);+  int i = node->as.cell_index;+  return alignments[i];+}++static int set_cell_index(cmark_node *node, int i) {+  if (!node || node->type != CMARK_NODE_TABLE_CELL)+    return 0;++  node->as.cell_index = i;+  return 1;+}+ static cmark_strbuf *unescape_pipes(cmark_mem *mem, unsigned char *string, bufsize_t len) {   cmark_strbuf *res = (cmark_strbuf *)mem->calloc(1, sizeof(cmark_strbuf));@@ -111,6 +168,24 @@   return res; } +// Adds a new cell to the end of the row. A pointer to the new cell is returned+// for the caller to initialize.+static node_cell* append_row_cell(cmark_mem *mem, table_row *row) {+  const uint32_t n_columns = row->n_columns + 1;+  // realloc when n_columns is a power of 2+  if ((n_columns & (n_columns-1)) == 0) {+    // make sure we never wrap row->n_columns+    // offset will != len and our exit will clean up as intended+    if (n_columns > UINT16_MAX) {+      return NULL;+    }+    // Use realloc to double the size of the buffer.+    row->cells = (node_cell *)mem->realloc(row->cells, (2 * n_columns - 1) * sizeof(node_cell));+  }+  row->n_columns = (uint16_t)n_columns;+  return &row->cells[n_columns-1];+}+ static table_row *row_from_string(cmark_syntax_extension *self,                                   cmark_parser *parser, unsigned char *string,                                   int len) {@@ -152,24 +227,22 @@           cell_matched);       cmark_strbuf_trim(cell_buf); -      node_cell *cell = (node_cell *)parser->mem->calloc(1, sizeof(*cell));+      node_cell *cell = append_row_cell(parser->mem, row);+      if (!cell) {+        int_overflow_abort = 1;+        cmark_strbuf_free(cell_buf);+        parser->mem->free(cell_buf);+        break;+      }       cell->buf = cell_buf;       cell->start_offset = offset;       cell->end_offset = offset + cell_matched - 1;+      cell->internal_offset = 0; -      while (cell->start_offset > 0 && string[cell->start_offset - 1] != '|') {+      while (cell->start_offset > row->paragraph_offset && string[cell->start_offset - 1] != '|') {         --cell->start_offset;         ++cell->internal_offset;       }--      // make sure we never wrap row->n_columns-      // offset will != len and our exit will clean up as intended-      if (row->n_columns == UINT16_MAX) {-          int_overflow_abort = 1;-          break;-      }-      row->n_columns += 1;-      row->cells = cmark_llist_append(parser->mem, row->cells, cell);     }      offset += cell_matched + pipe_matched;@@ -187,9 +260,7 @@       if (row_end_offset && offset != len) {         row->paragraph_offset = offset; -        cmark_llist_free_full(parser->mem, row->cells, (cmark_free_func)free_table_cell);-        row->cells = NULL;-        row->n_columns = 0;+        free_row_cells(parser->mem, row);          // Scan past the (optional) leading pipe.         offset += scan_table_cell_end(string, len, offset);@@ -235,26 +306,30 @@                                             unsigned char *input, int len) {   cmark_node *table_header;   table_row *header_row = NULL;-  table_row *marker_row = NULL;+  table_row *delimiter_row = NULL;   node_table_row *ntr;   const char *parent_string;   uint16_t i; +  if (parent_container->flags & CMARK_NODE__TABLE_VISITED) {+    return parent_container;+  }+   if (!scan_table_start(input, len, cmark_parser_get_first_nonspace(parser))) {     return parent_container;   } -  // Since scan_table_start was successful, we must have a marker row.-  marker_row = row_from_string(self, parser,-                               input + cmark_parser_get_first_nonspace(parser),-                               len - cmark_parser_get_first_nonspace(parser));+  // Since scan_table_start was successful, we must have a delimiter row.+  delimiter_row = row_from_string(+    self, parser, input + cmark_parser_get_first_nonspace(parser),+    len - cmark_parser_get_first_nonspace(parser));   // assert may be optimized out, don't rely on it for security boundaries-  if (!marker_row) {+  if (!delimiter_row) {       return parent_container;   }-  -  assert(marker_row); +  assert(delimiter_row);+   cmark_arena_push();    // Check for a matching header row. We call `row_from_string` with the entire@@ -263,22 +338,23 @@   parent_string = cmark_node_get_string_content(parent_container);   header_row = row_from_string(self, parser, (unsigned char *)parent_string,                                (int)strlen(parent_string));-  if (!header_row || header_row->n_columns != marker_row->n_columns) {-    free_table_row(parser->mem, marker_row);+  if (!header_row || header_row->n_columns != delimiter_row->n_columns) {+    free_table_row(parser->mem, delimiter_row);     free_table_row(parser->mem, header_row);     cmark_arena_pop();+    parent_container->flags |= CMARK_NODE__TABLE_VISITED;     return parent_container;   }    if (cmark_arena_pop()) {-    marker_row = row_from_string(+    delimiter_row = row_from_string(         self, parser, input + cmark_parser_get_first_nonspace(parser),         len - cmark_parser_get_first_nonspace(parser));     header_row = row_from_string(self, parser, (unsigned char *)parent_string,                                  (int)strlen(parent_string));     // row_from_string can return NULL, add additional check to ensure n_columns match-    if (!marker_row || !header_row || header_row->n_columns != marker_row->n_columns) {-        free_table_row(parser->mem, marker_row);+    if (!delimiter_row || !header_row || header_row->n_columns != delimiter_row->n_columns) {+        free_table_row(parser->mem, delimiter_row);         free_table_row(parser->mem, header_row);         return parent_container;     }@@ -286,7 +362,7 @@    if (!cmark_node_set_type(parent_container, CMARK_NODE_TABLE)) {     free_table_row(parser->mem, header_row);-    free_table_row(parser->mem, marker_row);+    free_table_row(parser->mem, delimiter_row);     return parent_container;   } @@ -299,13 +375,12 @@   parent_container->as.opaque = parser->mem->calloc(1, sizeof(node_table));   set_n_table_columns(parent_container, header_row->n_columns); -  // allocate alignments based on marker_row->n_columns-  // since we populate the alignments array based on marker_row->cells+  // allocate alignments based on delimiter_row->n_columns+  // since we populate the alignments array based on delimiter_row->cells   uint8_t *alignments =-      (uint8_t *)parser->mem->calloc(marker_row->n_columns, sizeof(uint8_t));-  cmark_llist *it = marker_row->cells;-  for (i = 0; it; it = it->next, ++i) {-    node_cell *node = (node_cell *)it->data;+      (uint8_t *)parser->mem->calloc(delimiter_row->n_columns, sizeof(uint8_t));+  for (i = 0; i < delimiter_row->n_columns; ++i) {+    node_cell *node = &delimiter_row->cells[i];     bool left = node->buf->ptr[0] == ':', right = node->buf->ptr[node->buf->size - 1] == ':';      if (left && right)@@ -327,27 +402,26 @@   table_header->as.opaque = ntr = (node_table_row *)parser->mem->calloc(1, sizeof(node_table_row));   ntr->is_header = true; -  {-    cmark_llist *tmp;--    for (tmp = header_row->cells; tmp; tmp = tmp->next) {-      node_cell *cell = (node_cell *) tmp->data;-      cmark_node *header_cell = cmark_parser_add_child(parser, table_header,-          CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);-      header_cell->start_line = header_cell->end_line = parent_container->start_line;-      header_cell->internal_offset = cell->internal_offset;-      header_cell->end_column = parent_container->start_column + cell->end_offset;-      cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr);-      cmark_node_set_syntax_extension(header_cell, self);-    }+  for (i = 0; i < header_row->n_columns; ++i) {+    node_cell *cell = &header_row->cells[i];+    cmark_node *header_cell = cmark_parser_add_child(parser, table_header,+                                                     CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);+    header_cell->start_line = header_cell->end_line = parent_container->start_line;+    header_cell->internal_offset = cell->internal_offset;+    header_cell->end_column = parent_container->start_column + cell->end_offset;+    cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr);+    cmark_node_set_syntax_extension(header_cell, self);+    set_cell_index(header_cell, i);   } +  incr_table_row_count(parent_container, i);+   cmark_parser_advance_offset(       parser, (char *)input,       (int)strlen((char *)input) - 1 - cmark_parser_get_offset(parser), false);    free_table_row(parser->mem, header_row);-  free_table_row(parser->mem, marker_row);+  free_table_row(parser->mem, delimiter_row);   return parent_container; } @@ -361,6 +435,10 @@   if (cmark_parser_is_blank(parser))     return NULL; +  if (get_n_autocompleted_cells(parent_container) > MAX_AUTOCOMPLETED_CELLS) {+    return NULL;+  }+   table_row_block =       cmark_parser_add_child(parser, parent_container, CMARK_NODE_TABLE_ROW,                              parent_container->start_column);@@ -378,23 +456,26 @@   }    {-    cmark_llist *tmp;     int i, table_columns = get_n_table_columns(parent_container); -    for (tmp = row->cells, i = 0; tmp && i < table_columns; tmp = tmp->next, ++i) {-      node_cell *cell = (node_cell *) tmp->data;+    for (i = 0; i < row->n_columns && i < table_columns; ++i) {+      node_cell *cell = &row->cells[i];       cmark_node *node = cmark_parser_add_child(parser, table_row_block,           CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);       node->internal_offset = cell->internal_offset;       node->end_column = parent_container->start_column + cell->end_offset;       cmark_node_set_string_content(node, (char *) cell->buf->ptr);       cmark_node_set_syntax_extension(node, self);+      set_cell_index(node, i);     } +    incr_table_row_count(parent_container, i);+     for (; i < table_columns; ++i) {       cmark_node *node = cmark_parser_add_child(           parser, table_row_block, CMARK_NODE_TABLE_CELL, 0);       cmark_node_set_syntax_extension(node, self);+      set_cell_index(node, i);     }   } @@ -579,13 +660,7 @@                             cmark_node *node) {   if (node->type == CMARK_NODE_TABLE_CELL) {     if (cmark_gfm_extensions_get_table_row_is_header(node->parent)) {-      uint8_t *alignments = get_table_alignments(node->parent->parent);-      int i = 0;-      cmark_node *n;-      for (n = node->parent->first_child; n; n = n->next, ++i)-        if (n == node)-          break;-      switch (alignments[i]) {+      switch (get_cell_alignment(node)) {       case 'l': return " align=\"left\"";       case 'c': return " align=\"center\"";       case 'r': return " align=\"right\"";@@ -673,7 +748,6 @@                         cmark_event_type ev_type, int options) {   bool entering = (ev_type == CMARK_EVENT_ENTER);   cmark_strbuf *html = renderer->html;-  cmark_node *n;    // XXX: we just monopolise renderer->opaque.   struct html_table_state *table_state =@@ -722,7 +796,6 @@       }     }   } else if (node->type == CMARK_NODE_TABLE_CELL) {-    uint8_t *alignments = get_table_alignments(node->parent->parent);     if (entering) {       cmark_html_render_cr(html);       if (table_state->in_table_header) {@@ -731,12 +804,7 @@         cmark_strbuf_puts(html, "<td");       } -      int i = 0;-      for (n = node->parent->first_child; n; n = n->next, ++i)-        if (n == node)-          break;--      switch (alignments[i]) {+      switch (get_cell_alignment(node)) {       case 'l': html_table_add_align(html, "left", options); break;       case 'c': html_table_add_align(html, "center", options); break;       case 'r': html_table_add_align(html, "right", options); break;@@ -785,6 +853,7 @@ cmark_syntax_extension *create_table_extension(void) {   cmark_syntax_extension *self = cmark_syntax_extension_new("table"); +  cmark_register_node_flag(&CMARK_NODE__TABLE_VISITED);   cmark_syntax_extension_set_match_block_func(self, matches);   cmark_syntax_extension_set_open_block_func(self, try_opening_table_block);   cmark_syntax_extension_set_get_type_string_func(self, get_type_string);
cbits/xml.c view
@@ -11,6 +11,7 @@ #include "syntax_extension.h"  #define BUFFER_SIZE 100+#define MAX_INDENT 40  // Functions to convert cmark_nodes to XML strings. @@ -26,7 +27,7 @@  static CMARK_INLINE void indent(struct render_state *state) {   int i;-  for (i = 0; i < state->indent; i++) {+  for (i = 0; i < state->indent && i < MAX_INDENT; i++) {     cmark_strbuf_putc(state->xml, ' ');   } }
changelog view
@@ -1,3 +1,7 @@+cmark-gfm 0.2.6 (28 Aug 2023)++  * Pull in upstream changes (includes security fixes).+ cmark-gfm 0.2.5 (27 Sep 2022)    * Add support for enabling footnotes (#26, Anton Sorokin).
cmark-gfm.cabal view
@@ -1,18 +1,18 @@ name:                cmark-gfm-version:             0.2.5+version:             0.2.6 synopsis:            Fast, accurate GitHub Flavored Markdown parser and renderer description:   This package provides Haskell bindings for   <https://github.com/github/cmark-gfm libcmark-gfm>, the reference   parser for <https://github.github.com/gfm/ GitHub Flavored Markdown>, a fully   specified variant of Markdown. It includes sources for-  libcmark-gfm (0.29.0.gfm.6) and does not require prior installation of the+  libcmark-gfm (0.29.0.gfm.13) and does not require prior installation of the   C library.  homepage:            https://github.com/kivikakk/cmark-gfm-hs license:             BSD3 license-file:        LICENSE-author:              Ashe Connor+author:              Asherah Connor maintainer:          ashe@kivikakk.ee copyright:           (C) 2015--17 John MacFarlane, (C) 2017--19 Ashe Connor category:            Text@@ -51,7 +51,6 @@                      cbits/table.h                      cbits/tagfilter.h                      cbits/tasklist.h-                     cbits/cmark-gfm-extensions_export.h                      cbits/map.h                      cbits/footnotes.h                      bench/sample.md@@ -70,7 +69,7 @@   exposed-modules:     CMarkGFM   build-depends:       base >=4.5 && < 5.0,                        text >= 1.0 && < 2.1,-                       bytestring+                       bytestring >= 0.11.5 && < 0.12   if impl(ghc < 7.6)     build-depends:     ghc-prim >= 0.2   default-language:    Haskell2010
test/test-cmark.hs view
@@ -33,6 +33,6 @@   , "<xmp>\n" ~=? commonmarkToHtml [optUnsafe] [] "<xmp>"   , "&lt;xmp>\n" ~=? commonmarkToHtml [optUnsafe] [extTagfilter] "<xmp>"   , "<ul>\n<li><input type=\"checkbox\" disabled=\"\" /> foo</li>\n<li><input type=\"checkbox\" checked=\"\" disabled=\"\" /> bar</li>\n</ul>\n" ~=? commonmarkToHtml [] [extTaskList] "- [ ] foo\n- [x] bar"-  , "<p>Here is footnote<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup></p>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>abc <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩</a></p>\n</li>\n</ol>\n</section>\n" ~=? commonmarkToHtml [optFootnotes] [] "Here is footnote[^1]\n\n[^1]: abc"+  , "<p>Here is footnote<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup></p>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>abc <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"1\" aria-label=\"Back to reference 1\">↩</a></p>\n</li>\n</ol>\n</section>\n" ~=? commonmarkToHtml [optFootnotes] [] "Here is footnote[^1]\n\n[^1]: abc"   ]