packages feed

cmark 0.4.0.1 → 0.4.1

raw patch · 37 files changed

+33391/−27270 lines, 37 filesdep ~HUnitPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: HUnit

API changes (from Hackage documentation)

Files

README.md view
@@ -3,19 +3,21 @@  This package provides Haskell bindings for [libcmark], the reference parser for [CommonMark], a fully specified variant of Markdown.-It includes sources for [libcmark] (version 0.20.0, implementing-version 0.20 of the spec) and does not require prior installation of+It includes sources for [libcmark] (version 0.22.0, implementing+version 0.22 of the spec) and does not require prior installation of the C library.  cmark provides the following advantages over existing Markdown libraries for Haskell: -  - **Speed:**  Conversion speed is on par with the [sundown] library.-    We were unable to measure precisely against [sundown], which-    raised a malloc error when compiled into our benchmark suite.-    Relative to other implementations: cmark was 82 times faster than-    [cheapskate], 59 times faster than [markdown], 105 times faster-    than [pandoc], and 2.8 times faster than [discount].+  - **Speed:** cmark can render a Markdown version of *War and Peace* in+    the blink of an eye.  Conversion speed is on par with the+    [sundown] library, though we were unable to benchmark precisely,+    because [sundown] raised a malloc error when compiled into our+    benchmark suite. Relative to other Haskell Markdown libraries:+    cmark was 82 times faster than [cheapskate], 59 times faster than+    [markdown], 105 times faster than [pandoc], and 3 times faster+    than [discount].    - **Memory footprint:**  Memory footprint is on par with [sundown].     On one sample, the library uses a fourth the memory that [markdown]@@ -24,7 +26,8 @@   - **Robustness:**  cmark can handle whatever is thrown at it,     without the exponential blowups in parsing time that sometimes afflict     other libraries.  (The input `bench/full-sample.md`,-    for example, causes both [pandoc] and [markdown] to grind to a halt.)+    for example, causes both [pandoc] and [markdown] to grind to a+    halt.)  [libcmark] has been extensively fuzz-tested.    - **Accuracy:**  cmark passes the CommonMark spec's suite of over     500 conformance tests.@@ -35,6 +38,10 @@     example, one could use this library for server-side rendering     and [commonmark.js] for client-side previewing. +  - **Multiple renderers.**  Output in HTML, groff man, LaTeX, CommonMark,+    and a custom XML format is supported. And it is easy to write new+    renderers to support other formats.+   - **Ease of installation:** cmark is portable and has minimal     dependencies. @@ -45,7 +52,9 @@ tree that can be processed further using Haskell.  **A note on security:**  This library does not attempt to sanitize-HTML output.  We recommend using [xss-sanitize] to filter the output.+HTML output.  We recommend using [xss-sanitize] to filter the output,+or enabling `optSafe` to filter out all raw HTML and potentially+dangerous URLs.  **A note on stability:**  There is a good chance the API will change significantly after this early release.
cbits/bench.h view
@@ -9,15 +9,15 @@ float _cmark_end_time; float _cmark_save_time; -#define start_timer() \-	_cmark_save_time = _cmark_start_time; \-	_cmark_start_time = (float)clock()/CLOCKS_PER_SEC+#define start_timer()                                                          \+  _cmark_save_time = _cmark_start_time;                                        \+  _cmark_start_time = (float)clock() / CLOCKS_PER_SEC -#define end_timer(M) \-	_cmark_end_time = (float)clock()/CLOCKS_PER_SEC; \-	fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, \-		__LINE__, (_cmark_end_time - _cmark_start_time) * 1000000); \-	_cmark_start_time = _cmark_save_time;+#define end_timer(M)                                                           \+  _cmark_end_time = (float)clock() / CLOCKS_PER_SEC;                           \+  fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, __LINE__,        \+          (_cmark_end_time - _cmark_start_time) * 1000000);                    \+  _cmark_start_time = _cmark_save_time;  #else #define start_timer()
cbits/blocks.c view
@@ -19,1035 +19,1006 @@  #define peek_at(i, n) (i)->data[n] -static inline bool-S_is_line_end_char(char c)-{-	return (c == '\n' || c == '\r');-}--static void-S_parser_feed(cmark_parser *parser, const unsigned char *buffer, size_t len,-              bool eof);--static void-S_process_line(cmark_parser *parser, const unsigned char *buffer,-               bufsize_t bytes);--static cmark_node* make_block(cmark_node_type tag, int start_line, int start_column)-{-	cmark_node* e;--	e = (cmark_node *)calloc(1, sizeof(*e));-	if(e != NULL) {-		e->type = tag;-		e->open = true;-		e->start_line = start_line;-		e->start_column = start_column;-		e->end_line = start_line;-		cmark_strbuf_init(&e->string_content, 32);-	}--	return e;-}--// Create a root document node.-static cmark_node* make_document()-{-	cmark_node *e = make_block(NODE_DOCUMENT, 1, 1);-	return e;-}--cmark_parser *cmark_parser_new(int options)-{-	cmark_parser *parser = (cmark_parser*)malloc(sizeof(cmark_parser));-	cmark_node *document = make_document();-	cmark_strbuf *line = (cmark_strbuf*)malloc(sizeof(cmark_strbuf));-	cmark_strbuf *buf  = (cmark_strbuf*)malloc(sizeof(cmark_strbuf));-	cmark_strbuf_init(line, 256);-	cmark_strbuf_init(buf, 0);--	parser->refmap = cmark_reference_map_new();-	parser->root = document;-	parser->current = document;-	parser->line_number = 0;-	parser->offset = 0;-	parser->column = 0;-	parser->first_nonspace = 0;-	parser->first_nonspace_column = 0;-	parser->indent = 0;-	parser->blank = false;-	parser->curline = line;-	parser->last_line_length = 0;-	parser->linebuf = buf;-	parser->options = options;--	return parser;-}--void cmark_parser_free(cmark_parser *parser)-{-	cmark_strbuf_free(parser->curline);-	free(parser->curline);-	cmark_strbuf_free(parser->linebuf);-	free(parser->linebuf);-	cmark_reference_map_free(parser->refmap);-	free(parser);-}--static cmark_node*-finalize(cmark_parser *parser, cmark_node* b);--// Returns true if line has only space characters, else false.-static bool is_blank(cmark_strbuf *s, bufsize_t offset)-{-	while (offset < s->size) {-		switch (s->ptr[offset]) {-		case '\r':-		case '\n':-			return true;-		case ' ':-			offset++;-			break;-		case '\t':-			offset++;-			break;-		default:-			return false;-		}-	}--	return true;-}--static inline bool can_contain(cmark_node_type parent_type, cmark_node_type child_type)-{-	return ( parent_type == NODE_DOCUMENT ||-	         parent_type == NODE_BLOCK_QUOTE ||-	         parent_type == NODE_ITEM ||-	         (parent_type == NODE_LIST && child_type == NODE_ITEM) );-}--static inline bool accepts_lines(cmark_node_type block_type)-{-	return (block_type == NODE_PARAGRAPH ||-	        block_type == NODE_HEADER ||-	        block_type == NODE_CODE_BLOCK);-}--static void add_line(cmark_node* node, cmark_chunk *ch, bufsize_t offset)-{-	assert(node->open);-	cmark_strbuf_put(&node->string_content, ch->data + offset, ch->len - offset);-}--static void remove_trailing_blank_lines(cmark_strbuf *ln)-{-	bufsize_t i;-	unsigned char c;--	for (i = ln->size - 1; i >= 0; --i) {-		c = ln->ptr[i];--		if (c != ' ' && c != '\t' && !S_is_line_end_char(c))-			break;-	}--	if (i < 0) {-		cmark_strbuf_clear(ln);-		return;-	}---	for(; i < ln->size; ++i) {-		c = ln->ptr[i];--		if (!S_is_line_end_char(c))-			continue;--		cmark_strbuf_truncate(ln, i);-		break;-	}-}--// Check to see if a node ends with a blank line, descending-// if needed into lists and sublists.-static bool ends_with_blank_line(cmark_node* node)-{-	cmark_node *cur = node;-	while (cur != NULL) {-		if (cur->last_line_blank) {-			return true;-		}-		if (cur->type == NODE_LIST || cur->type == NODE_ITEM) {-			cur = cur->last_child;-		} else {-			cur = NULL;-		}-	}-	return false;-}--// Break out of all containing lists-static int break_out_of_lists(cmark_parser *parser, cmark_node ** bptr)-{-	cmark_node *container = *bptr;-	cmark_node *b = parser->root;-	// find first containing NODE_LIST:-	while (b && b->type != NODE_LIST) {-		b = b->last_child;-	}-	if (b) {-		while (container && container != b) {-			container = finalize(parser, container);-		}-		finalize(parser, b);-		*bptr = b->parent;-	}-	return 0;-}---static cmark_node*-finalize(cmark_parser *parser, cmark_node* b)-{-	bufsize_t pos;-	cmark_node* item;-	cmark_node* subitem;-	cmark_node* parent;--	parent = b->parent;--	assert(b->open);  // shouldn't call finalize on closed blocks-	b->open = false;--	if (parser->curline->size == 0) {-		// end of input - line number has not been incremented-		b->end_line = parser->line_number;-		b->end_column = parser->last_line_length;-	} else if (b->type == NODE_DOCUMENT ||-	           (b->type == NODE_CODE_BLOCK && b->as.code.fenced) ||-	           (b->type == NODE_HEADER && b->as.header.setext)) {-		b->end_line = parser->line_number;-		b->end_column = parser->curline->size;-		if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n')-			b->end_column -= 1;-		if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\r')-			b->end_column -= 1;-	} else {-		b->end_line = parser->line_number - 1;-		b->end_column = parser->last_line_length;-	}--	switch (b->type) {-	case NODE_PARAGRAPH:-		while (cmark_strbuf_at(&b->string_content, 0) == '[' &&-		       (pos = cmark_parse_reference_inline(&b->string_content, parser->refmap))) {--			cmark_strbuf_drop(&b->string_content, pos);-		}-		if (is_blank(&b->string_content, 0)) {-			// remove blank node (former reference def)-			cmark_node_free(b);-		}-		break;--	case NODE_CODE_BLOCK:-		if (!b->as.code.fenced) { // indented code-			remove_trailing_blank_lines(&b->string_content);-			cmark_strbuf_putc(&b->string_content, '\n');-		} else {--			// first line of contents becomes info-			for (pos = 0; pos < b->string_content.size; ++pos) {-				if (S_is_line_end_char(b->string_content.ptr[pos]))-					break;-			}-			assert(pos < b->string_content.size);--			cmark_strbuf tmp = GH_BUF_INIT;-			houdini_unescape_html_f(-			    &tmp,-			    b->string_content.ptr,-			    pos-			);-			cmark_strbuf_trim(&tmp);-			cmark_strbuf_unescape(&tmp);-			b->as.code.info = cmark_chunk_buf_detach(&tmp);--			if (b->string_content.ptr[pos] == '\r')-				pos += 1;-			if (b->string_content.ptr[pos] == '\n')-				pos += 1;-			cmark_strbuf_drop(&b->string_content, pos);-		}-		b->as.code.literal = cmark_chunk_buf_detach(&b->string_content);-		break;--	case NODE_HTML:-		b->as.literal = cmark_chunk_buf_detach(&b->string_content);-		break;--	case NODE_LIST: // determine tight/loose status-		b->as.list.tight = true; // tight by default-		item = b->first_child;--		while (item) {-			// check for non-final non-empty list item ending with blank line:-			if (item->last_line_blank && item->next) {-				b->as.list.tight = false;-				break;-			}-			// recurse into children of list item, to see if there are-			// spaces between them:-			subitem = item->first_child;-			while (subitem) {-				if (ends_with_blank_line(subitem) &&-				    (item->next || subitem->next)) {-					b->as.list.tight = false;-					break;-				}-				subitem = subitem->next;-			}-			if (!(b->as.list.tight)) {-				break;-			}-			item = item->next;-		}--		break;--	default:-		break;-	}-	return parent;-}--// Add a node as child of another.  Return pointer to child.-static cmark_node* add_child(cmark_parser *parser, cmark_node* parent,-                             cmark_node_type block_type, int start_column)-{-	assert(parent);--	// if 'parent' isn't the kind of node that can accept this child,-	// then back up til we hit a node that can.-	while (!can_contain(parent->type, block_type)) {-		parent = finalize(parser, parent);-	}--	cmark_node* child = make_block(block_type, parser->line_number, start_column);-	child->parent = parent;--	if (parent->last_child) {-		parent->last_child->next = child;-		child->prev = parent->last_child;-	} else {-		parent->first_child = child;-		child->prev = NULL;-	}-	parent->last_child = child;-	return child;-}---// Walk through node and all children, recursively, parsing-// string content into inline content where appropriate.-static void process_inlines(cmark_node* root, cmark_reference_map *refmap, int options)-{-	cmark_iter *iter = cmark_iter_new(root);-	cmark_node *cur;-	cmark_event_type ev_type;--	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {-		cur = cmark_iter_get_node(iter);-		if (ev_type == CMARK_EVENT_ENTER) {-			if (cur->type == NODE_PARAGRAPH ||-			    cur->type == NODE_HEADER) {-				cmark_parse_inlines(cur, refmap, options);-			}-		}-	}--	cmark_iter_free(iter);-}--// Attempts to parse a list item marker (bullet or enumerated).-// On success, returns length of the marker, and populates-// data with the details.  On failure, returns 0.-static bufsize_t parse_list_marker(cmark_chunk *input, bufsize_t pos, cmark_list **dataptr)-{-	unsigned char c;-	bufsize_t startpos;-	cmark_list *data;--	startpos = pos;-	c = peek_at(input, pos);--	if (c == '*' || c == '-' || c == '+') {-		pos++;-		if (!cmark_isspace(peek_at(input, pos))) {-			return 0;-		}-		data = (cmark_list *)calloc(1, sizeof(*data));-		if(data == NULL) {-			return 0;-		} else {-			data->marker_offset = 0; // will be adjusted later-			data->list_type = CMARK_BULLET_LIST;-			data->bullet_char = c;-			data->start = 1;-			data->delimiter = CMARK_PERIOD_DELIM;-			data->tight = false;-		}-	} else if (cmark_isdigit(c)) {-		int start = 0;-		int digits = 0;--		do {-			start = (10 * start) + (peek_at(input, pos) - '0');-			pos++;-			digits++;-			// We limit to 9 digits to avoid overflow,-			// assuming max int is 2^31 - 1-			// This also seems to be the limit for 'start' in some browsers.-		} while (digits < 9 && cmark_isdigit(peek_at(input, pos)));--		c = peek_at(input, pos);-		if (c == '.' || c == ')') {-			pos++;-			if (!cmark_isspace(peek_at(input, pos))) {-				return 0;-			}-			data = (cmark_list *)calloc(1, sizeof(*data));-			if(data == NULL) {-				return 0;-			} else {-				data->marker_offset = 0; // will be adjusted later-				data->list_type = CMARK_ORDERED_LIST;-				data->bullet_char = 0;-				data->start = start;-				data->delimiter = (c == '.' ? CMARK_PERIOD_DELIM : CMARK_PAREN_DELIM);-				data->tight = false;-			}-		} else {-			return 0;-		}--	} else {-		return 0;-	}--	*dataptr = data;-	return (pos - startpos);-}--// Return 1 if list item belongs in list, else 0.-static int lists_match(cmark_list *list_data, cmark_list *item_data)-{-	return (list_data->list_type == item_data->list_type &&-	        list_data->delimiter == item_data->delimiter &&-	        // list_data->marker_offset == item_data.marker_offset &&-	        list_data->bullet_char == item_data->bullet_char);-}--static cmark_node *finalize_document(cmark_parser *parser)-{-	while (parser->current != parser->root) {-		parser->current = finalize(parser, parser->current);-	}--	finalize(parser, parser->root);-	process_inlines(parser->root, parser->refmap, parser->options);--	return parser->root;-}--cmark_node *cmark_parse_file(FILE *f, int options)-{-	unsigned char buffer[4096];-	cmark_parser *parser = cmark_parser_new(options);-	size_t bytes;-	cmark_node *document;--	while ((bytes = fread(buffer, 1, sizeof(buffer), f)) > 0) {-		bool eof = bytes < sizeof(buffer);-		S_parser_feed(parser, buffer, bytes, eof);-		if (eof) {-			break;-		}-	}--	document = cmark_parser_finish(parser);-	cmark_parser_free(parser);-	return document;-}--cmark_node *cmark_parse_document(const char *buffer, size_t len, int options)-{-	cmark_parser *parser = cmark_parser_new(options);-	cmark_node *document;--	S_parser_feed(parser, (const unsigned char *)buffer, len, true);--	document = cmark_parser_finish(parser);-	cmark_parser_free(parser);-	return document;-}--void-cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len)-{-	S_parser_feed(parser, (const unsigned char *)buffer, len, false);-}--static void-S_parser_feed(cmark_parser *parser, const unsigned char *buffer, size_t len,-              bool eof)-{-	const unsigned char *end = buffer + len;-	static const uint8_t repl[] = {239, 191, 189};--	while (buffer < end) {-		const unsigned char *eol;-		bufsize_t chunk_len;-		bool process = false;-		for (eol = buffer; eol < end; ++eol) {-			if (S_is_line_end_char(*eol)) {-				if (eol < end && *eol == '\r')-					eol++;-				if (eol < end && *eol == '\n')-					eol++;-				process = true;-				break;-			}-			if (*eol == '\0' && eol < end) {-				break;-			}-		}-		if (eol >= end && eof) {-			process = true;-		}--		chunk_len = cmark_strbuf_check_bufsize(eol - buffer);-		if (process) {-			if (parser->linebuf->size > 0) {-				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);-				S_process_line(parser, parser->linebuf->ptr,-				               parser->linebuf->size);-				cmark_strbuf_clear(parser->linebuf);-			} else {-				S_process_line(parser, buffer, chunk_len);-			}-		} else {-			if (eol < end && *eol == '\0') {-				// omit NULL byte-				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);-				// add replacement character-				cmark_strbuf_put(parser->linebuf, repl, 3);-				chunk_len += 1; // so we advance the buffer past NULL-			} else {-				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);-			}-		}--		buffer += chunk_len;-	}-}--static void chop_trailing_hashtags(cmark_chunk *ch)-{-	bufsize_t n, orig_n;--	cmark_chunk_rtrim(ch);-	orig_n = n = ch->len - 1;--	// if string ends in space followed by #s, remove these:-	while (n >= 0 && peek_at(ch, n) == '#')-		n--;--	// Check for a be a space before the final #s:-	if (n != orig_n && n >= 0 && peek_at(ch, n) == ' ') {-		ch->len = n;-		cmark_chunk_rtrim(ch);-	}-}--static void-S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input)-{-	char c;-	int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP);--	parser->first_nonspace = parser->offset;-	parser->first_nonspace_column = parser->column;-	while ((c = peek_at(input, parser->first_nonspace))) {-		if (c == ' ') {-			parser->first_nonspace += 1;-			parser->first_nonspace_column += 1;-			chars_to_tab = chars_to_tab - 1;-			if (chars_to_tab == 0) {-				chars_to_tab = TAB_STOP;-			}-		} else if (c == '\t') {-			parser->first_nonspace += 1;-			parser->first_nonspace_column += chars_to_tab;-			chars_to_tab = TAB_STOP;-		} else {-			break;-		}-	}--	parser->indent = parser->first_nonspace_column - parser->column;-	parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace));-}--static void-S_advance_offset(cmark_parser *parser, cmark_chunk *input, bufsize_t count, bool columns)-{-	char c;-	int chars_to_tab;-	while (count > 0 && (c = peek_at(input, parser->offset))) {-		if (c == '\t') {-			chars_to_tab = 4 - (parser->column % TAB_STOP);-			parser->column += chars_to_tab;-			parser->offset += 1;-			count -= (columns ? chars_to_tab : 1);-		} else {-			parser->offset += 1;-			parser->column += 1; // assume ascii; block starts are ascii-			count -= 1;-		}-	}-}---static void-S_process_line(cmark_parser *parser, const unsigned char *buffer, bufsize_t bytes)-{-	cmark_node* last_matched_container;-	bufsize_t matched = 0;-	int lev = 0;-	int i;-	cmark_list *data = NULL;-	bool all_matched = true;-	cmark_node* container;-	bool indented;-	cmark_chunk input;-	bool maybe_lazy;--	if (parser->options & CMARK_OPT_VALIDATE_UTF8) {-		utf8proc_check(parser->curline, buffer, bytes);-	} else {-		cmark_strbuf_put(parser->curline, buffer, bytes);-	}-	parser->offset = 0;-	parser->column = 0;-	parser->blank = false;--	input.data = parser->curline->ptr;-	input.len = parser->curline->size;--	// container starts at the document root.-	container = parser->root;--	parser->line_number++;--	// for each containing node, try to parse the associated line start.-	// bail out on failure:  container will point to the last matching node.--	while (container->last_child && container->last_child->open) {-		container = container->last_child;--		S_find_first_nonspace(parser, &input);--		if (container->type == NODE_BLOCK_QUOTE) {-			matched = parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>';-			if (matched) {-				S_advance_offset(parser, &input, parser->indent + 1, true);-				if (peek_at(&input, parser->offset) == ' ')-					parser->offset++;-			} else {-				all_matched = false;-			}--		} else if (container->type == NODE_ITEM) {-			if (parser->indent >= container->as.list.marker_offset +-			    container->as.list.padding) {-				S_advance_offset(parser, &input,-				                 container->as.list.marker_offset +-				                 container->as.list.padding, true);-			} else if (parser->blank) {-				S_advance_offset(parser, &input,-				                 parser->first_nonspace - parser->offset, false);-			} else {-				all_matched = false;-			}--		} else if (container->type == NODE_CODE_BLOCK) {--			if (!container->as.code.fenced) { // indented-				if (parser->indent >= CODE_INDENT) {-					S_advance_offset(parser, &input, CODE_INDENT, true);-				} else if (parser->blank) {-					S_advance_offset(parser, &input,-					                 parser->first_nonspace - parser->offset,-					                 false);-				} else {-					all_matched = false;-				}-			} else { // fenced-				matched = 0;-				if (parser->indent <= 3 &&-				    (peek_at(&input, parser->first_nonspace) ==-				     container->as.code.fence_char)) {-					matched = scan_close_code_fence(&input,-					                                parser->first_nonspace);-				}-				if (matched >= container->as.code.fence_length) {-					// closing fence - and since we're at-					// the end of a line, we can return:-					all_matched = false;-					S_advance_offset(parser, &input, matched, false);-					parser->current = finalize(parser, container);-					goto finished;-				} else {-					// skip opt. spaces of fence parser->offset-					i = container->as.code.fence_offset;-					while (i > 0 &&-					       peek_at(&input, parser->offset) == ' ') {-						S_advance_offset(parser, &input, 1, false);-						i--;-					}-				}-			}-		} else if (container->type == NODE_HEADER) {--			// a header can never contain more than one line-			all_matched = false;--		} else if (container->type == NODE_HTML) {--			switch (container->as.html_block_type) {-			case 1:-			case 2:-			case 3:-			case 4:-			case 5:-				// these types of blocks can accept blanks-				break;-			case 6:-			case 7:-				if (parser->blank) {-					all_matched = false;-				}-				break;-			default:-				fprintf(stderr,-				        "Error (%s:%d): Unknown HTML block type %d\n",-				        __FILE__, __LINE__,-				        container->as.html_block_type);-				exit(1);-			}--		} else if (container->type == NODE_PARAGRAPH) {--			if (parser->blank) {-				all_matched = false;-			}--		}--		if (!all_matched) {-			container = container->parent;  // back up to last matching node-			break;-		}-	}--	last_matched_container = container;--	// check to see if we've hit 2nd blank line, break out of list:-	if (parser->blank && container->last_line_blank) {-		break_out_of_lists(parser, &container);-	}--	maybe_lazy = parser->current->type == NODE_PARAGRAPH;-	// try new container starts:-	while (container->type != NODE_CODE_BLOCK &&-	       container->type != NODE_HTML) {--		S_find_first_nonspace(parser, &input);-		indented = parser->indent >= CODE_INDENT;--		if (!indented && peek_at(&input, parser->first_nonspace) == '>') {--			S_advance_offset(parser, &input, parser->first_nonspace + 1 - parser->offset, false);-			// optional following character-			if (peek_at(&input, parser->offset) == ' ')-				S_advance_offset(parser, &input, 1, false);-			container = add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1);--		} else if (!indented && (matched = scan_atx_header_start(&input, parser->first_nonspace))) {--			S_advance_offset(parser, &input,-			                 parser->first_nonspace + matched - parser->offset, false);-			container = add_child(parser, container, NODE_HEADER, parser->offset + 1);--			bufsize_t hashpos = cmark_chunk_strchr(&input, '#', parser->first_nonspace);-			int level = 0;--			while (peek_at(&input, hashpos) == '#') {-				level++;-				hashpos++;-			}-			container->as.header.level = level;-			container->as.header.setext = false;--		} else if (!indented && (matched = scan_open_code_fence(&input, parser->first_nonspace))) {--			container = add_child(parser, container, NODE_CODE_BLOCK, parser->first_nonspace + 1);-			container->as.code.fenced = true;-			container->as.code.fence_char = peek_at(&input, parser->first_nonspace);-			container->as.code.fence_length = matched;-			container->as.code.fence_offset = parser->first_nonspace - parser->offset;-			container->as.code.info = cmark_chunk_literal("");-			S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false);--		} else if (!indented &&-		           ((matched = scan_html_block_start(&input, parser->first_nonspace)) ||-		            (container->type != NODE_PARAGRAPH &&-		             (matched = scan_html_block_start_7(&input, parser->first_nonspace))))) {--			container = add_child(parser, container, NODE_HTML, parser->first_nonspace + 1);-			container->as.html_block_type = matched;-			// note, we don't adjust parser->offset because the tag is part of the text--		} else if (!indented &&-		           container->type == NODE_PARAGRAPH &&-		           (lev = scan_setext_header_line(&input, parser->first_nonspace)) &&-		           // check that there is only one line in the paragraph:-		           (cmark_strbuf_strrchr(&container->string_content, '\n',-		                                 cmark_strbuf_len(&container->string_content) - 2) < 0)) {--			container->type = NODE_HEADER;-			container->as.header.level = lev;-			container->as.header.setext = true;-			S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);--		} else if (!indented &&-		           !(container->type == NODE_PARAGRAPH &&-		             !all_matched) &&-		           (matched = scan_hrule(&input, parser->first_nonspace))) {--			// it's only now that we know the line is not part of a setext header:-			container = add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1);-			container = finalize(parser, container);-			S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);--		} else if ((matched = parse_list_marker(&input, parser->first_nonspace, &data)) &&-		           (!indented || container->type == NODE_LIST)) {-			// Note that we can have new list items starting with >= 4-			// spaces indent, as long as the list container is still open.--			// compute padding:-			S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false);-			i = 0;-			while (i <= 5 && peek_at(&input, parser->offset + i) == ' ') {-				i++;-			}-			// i = number of spaces after marker, up to 5-			if (i >= 5 || i < 1 ||-			    S_is_line_end_char(peek_at(&input, parser->offset))) {-				data->padding = matched + 1;-				if (i > 0) {-					S_advance_offset(parser, &input, 1, false);-				}-			} else {-				data->padding = matched + i;-				S_advance_offset(parser, &input, i, true);-			}--			// check container; if it's a list, see if this list item-			// can continue the list; otherwise, create a list container.--			data->marker_offset = parser->indent;--			if (container->type != NODE_LIST ||-			    !lists_match(&container->as.list, data)) {-				container = add_child(parser, container, NODE_LIST,-				                      parser->first_nonspace + 1);--				memcpy(&container->as.list, data, sizeof(*data));-			}--			// add the list item-			container = add_child(parser, container, NODE_ITEM,-			                      parser->first_nonspace + 1);-			/* TODO: static */-			memcpy(&container->as.list, data, sizeof(*data));-			free(data);--		} else if (indented && !maybe_lazy && !parser->blank) {-			S_advance_offset(parser, &input, CODE_INDENT, true);-			container = add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1);-			container->as.code.fenced = false;-			container->as.code.fence_char = 0;-			container->as.code.fence_length = 0;-			container->as.code.fence_offset = 0;-			container->as.code.info = cmark_chunk_literal("");--		} else {-			break;-		}--		if (accepts_lines(container->type)) {-			// if it's a line container, it can't contain other containers-			break;-		}-		maybe_lazy = false;-	}--	// what remains at parser->offset is a text line.  add the text to the-	// appropriate container.--	S_find_first_nonspace(parser, &input);--	if (parser->blank && container->last_child) {-		container->last_child->last_line_blank = true;-	}--	// block quote lines are never blank as they start with >-	// and we don't count blanks in fenced code for purposes of tight/loose-	// lists or breaking out of lists.  we also don't set last_line_blank-	// on an empty list item.-	container->last_line_blank = (parser->blank &&-	                              container->type != NODE_BLOCK_QUOTE &&-	                              container->type != NODE_HEADER &&-	                              !(container->type == NODE_CODE_BLOCK &&-	                                container->as.code.fenced) &&-	                              !(container->type == NODE_ITEM &&-	                                container->first_child == NULL &&-	                                container->start_line == parser->line_number));--	cmark_node *cont = container;-	while (cont->parent) {-		cont->parent->last_line_blank = false;-		cont = cont->parent;-	}--	if (parser->current != last_matched_container &&-	    container == last_matched_container &&-	    !parser->blank &&-	    parser->current->type == NODE_PARAGRAPH &&-	    cmark_strbuf_len(&parser->current->string_content) > 0) {--		add_line(parser->current, &input, parser->offset);--	} else { // not a lazy continuation--		// finalize any blocks that were not matched and set cur to container:-		while (parser->current != last_matched_container) {-			parser->current = finalize(parser, parser->current);-			assert(parser->current != NULL);-		}--		if (container->type == NODE_CODE_BLOCK) {--			add_line(container, &input, parser->offset);--		} else if (container->type == NODE_HTML) {--			add_line(container, &input, parser->offset);--			int matches_end_condition;-			switch (container->as.html_block_type) {-			case 1:-				// </script>, </style>, </pre>-				matches_end_condition =-				    scan_html_block_end_1(&input, parser->first_nonspace);-				break;-			case 2:-				// -->-				matches_end_condition =-				    scan_html_block_end_2(&input, parser->first_nonspace);-				break;-			case 3:-				// ?>-				matches_end_condition =-				    scan_html_block_end_3(&input, parser->first_nonspace);-				break;-			case 4:-				// >-				matches_end_condition =-				    scan_html_block_end_4(&input, parser->first_nonspace);-				break;-			case 5:-				// ]]>-				matches_end_condition =-				    scan_html_block_end_5(&input, parser->first_nonspace);-				break;-			default:-				matches_end_condition = 0;-				break;-			}--			if (matches_end_condition) {-				container = finalize(parser, container);-				assert(parser->current != NULL);-			}--		} else if (parser->blank) {--			// ??? do nothing--		} else if (accepts_lines(container->type)) {--			if (container->type == NODE_HEADER &&-			    container->as.header.setext == false) {-				chop_trailing_hashtags(&input);-			}-			add_line(container, &input, parser->first_nonspace);--		} else {-			// create paragraph container for line-			container = add_child(parser, container, NODE_PARAGRAPH, parser->first_nonspace + 1);-			add_line(container, &input, parser->first_nonspace);--		}--		parser->current = container;-	}-finished:-	parser->last_line_length = parser->curline->size;-	if (parser->last_line_length &&-	    parser->curline->ptr[parser->last_line_length - 1] == '\n')-		parser->last_line_length -= 1;-	if (parser->last_line_length &&-	    parser->curline->ptr[parser->last_line_length - 1] == '\r')-		parser->last_line_length -= 1;--	cmark_strbuf_clear(parser->curline);--}--cmark_node *cmark_parser_finish(cmark_parser *parser)-{-	if (parser->linebuf->size) {-		S_process_line(parser, parser->linebuf->ptr,-		               parser->linebuf->size);-		cmark_strbuf_clear(parser->linebuf);-	}--	finalize_document(parser);--	if (parser->options & CMARK_OPT_NORMALIZE) {-		cmark_consolidate_text_nodes(parser->root);-	}--	cmark_strbuf_free(parser->curline);--#if CMARK_DEBUG_NODES-	if (cmark_node_check(parser->root, stderr)) {-		abort();-	}-#endif-	return parser->root;+static inline bool S_is_line_end_char(char c) {+  return (c == '\n' || c == '\r');+}++static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer,+                          size_t len, bool eof);++static void S_process_line(cmark_parser *parser, const unsigned char *buffer,+                           bufsize_t bytes);++static cmark_node *make_block(cmark_node_type tag, int start_line,+                              int start_column) {+  cmark_node *e;++  e = (cmark_node *)calloc(1, sizeof(*e));+  if (e != NULL) {+    e->type = tag;+    e->open = true;+    e->start_line = start_line;+    e->start_column = start_column;+    e->end_line = start_line;+    cmark_strbuf_init(&e->string_content, 32);+  }++  return e;+}++// Create a root document node.+static cmark_node *make_document() {+  cmark_node *e = make_block(NODE_DOCUMENT, 1, 1);+  return e;+}++cmark_parser *cmark_parser_new(int options) {+  cmark_parser *parser = (cmark_parser *)malloc(sizeof(cmark_parser));+  cmark_node *document = make_document();+  cmark_strbuf *line = (cmark_strbuf *)malloc(sizeof(cmark_strbuf));+  cmark_strbuf *buf = (cmark_strbuf *)malloc(sizeof(cmark_strbuf));+  cmark_strbuf_init(line, 256);+  cmark_strbuf_init(buf, 0);++  parser->refmap = cmark_reference_map_new();+  parser->root = document;+  parser->current = document;+  parser->line_number = 0;+  parser->offset = 0;+  parser->column = 0;+  parser->first_nonspace = 0;+  parser->first_nonspace_column = 0;+  parser->indent = 0;+  parser->blank = false;+  parser->curline = line;+  parser->last_line_length = 0;+  parser->linebuf = buf;+  parser->options = options;++  return parser;+}++void cmark_parser_free(cmark_parser *parser) {+  cmark_strbuf_free(parser->curline);+  free(parser->curline);+  cmark_strbuf_free(parser->linebuf);+  free(parser->linebuf);+  cmark_reference_map_free(parser->refmap);+  free(parser);+}++static cmark_node *finalize(cmark_parser *parser, cmark_node *b);++// Returns true if line has only space characters, else false.+static bool is_blank(cmark_strbuf *s, bufsize_t offset) {+  while (offset < s->size) {+    switch (s->ptr[offset]) {+    case '\r':+    case '\n':+      return true;+    case ' ':+      offset++;+      break;+    case '\t':+      offset++;+      break;+    default:+      return false;+    }+  }++  return true;+}++static inline bool can_contain(cmark_node_type parent_type,+                               cmark_node_type child_type) {+  return (parent_type == NODE_DOCUMENT || parent_type == NODE_BLOCK_QUOTE ||+          parent_type == NODE_ITEM ||+          (parent_type == NODE_LIST && child_type == NODE_ITEM));+}++static inline bool accepts_lines(cmark_node_type block_type) {+  return (block_type == NODE_PARAGRAPH || block_type == NODE_HEADER ||+          block_type == NODE_CODE_BLOCK);+}++static void add_line(cmark_node *node, cmark_chunk *ch, bufsize_t offset) {+  assert(node->open);+  cmark_strbuf_put(&node->string_content, ch->data + offset, ch->len - offset);+}++static void remove_trailing_blank_lines(cmark_strbuf *ln) {+  bufsize_t i;+  unsigned char c;++  for (i = ln->size - 1; i >= 0; --i) {+    c = ln->ptr[i];++    if (c != ' ' && c != '\t' && !S_is_line_end_char(c))+      break;+  }++  if (i < 0) {+    cmark_strbuf_clear(ln);+    return;+  }++  for (; i < ln->size; ++i) {+    c = ln->ptr[i];++    if (!S_is_line_end_char(c))+      continue;++    cmark_strbuf_truncate(ln, i);+    break;+  }+}++// Check to see if a node ends with a blank line, descending+// if needed into lists and sublists.+static bool ends_with_blank_line(cmark_node *node) {+  cmark_node *cur = node;+  while (cur != NULL) {+    if (cur->last_line_blank) {+      return true;+    }+    if (cur->type == NODE_LIST || cur->type == NODE_ITEM) {+      cur = cur->last_child;+    } else {+      cur = NULL;+    }+  }+  return false;+}++// Break out of all containing lists+static int break_out_of_lists(cmark_parser *parser, cmark_node **bptr) {+  cmark_node *container = *bptr;+  cmark_node *b = parser->root;+  // find first containing NODE_LIST:+  while (b && b->type != NODE_LIST) {+    b = b->last_child;+  }+  if (b) {+    while (container && container != b) {+      container = finalize(parser, container);+    }+    finalize(parser, b);+    *bptr = b->parent;+  }+  return 0;+}++static cmark_node *finalize(cmark_parser *parser, cmark_node *b) {+  bufsize_t pos;+  cmark_node *item;+  cmark_node *subitem;+  cmark_node *parent;++  parent = b->parent;++  assert(b->open); // shouldn't call finalize on closed blocks+  b->open = false;++  if (parser->curline->size == 0) {+    // end of input - line number has not been incremented+    b->end_line = parser->line_number;+    b->end_column = parser->last_line_length;+  } else if (b->type == NODE_DOCUMENT ||+             (b->type == NODE_CODE_BLOCK && b->as.code.fenced) ||+             (b->type == NODE_HEADER && b->as.header.setext)) {+    b->end_line = parser->line_number;+    b->end_column = parser->curline->size;+    if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n')+      b->end_column -= 1;+    if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\r')+      b->end_column -= 1;+  } else {+    b->end_line = parser->line_number - 1;+    b->end_column = parser->last_line_length;+  }++  switch (b->type) {+  case NODE_PARAGRAPH:+    while (cmark_strbuf_at(&b->string_content, 0) == '[' &&+           (pos = cmark_parse_reference_inline(&b->string_content,+                                               parser->refmap))) {++      cmark_strbuf_drop(&b->string_content, pos);+    }+    if (is_blank(&b->string_content, 0)) {+      // remove blank node (former reference def)+      cmark_node_free(b);+    }+    break;++  case NODE_CODE_BLOCK:+    if (!b->as.code.fenced) { // indented code+      remove_trailing_blank_lines(&b->string_content);+      cmark_strbuf_putc(&b->string_content, '\n');+    } else {++      // first line of contents becomes info+      for (pos = 0; pos < b->string_content.size; ++pos) {+        if (S_is_line_end_char(b->string_content.ptr[pos]))+          break;+      }+      assert(pos < b->string_content.size);++      cmark_strbuf tmp = GH_BUF_INIT;+      houdini_unescape_html_f(&tmp, b->string_content.ptr, pos);+      cmark_strbuf_trim(&tmp);+      cmark_strbuf_unescape(&tmp);+      b->as.code.info = cmark_chunk_buf_detach(&tmp);++      if (b->string_content.ptr[pos] == '\r')+        pos += 1;+      if (b->string_content.ptr[pos] == '\n')+        pos += 1;+      cmark_strbuf_drop(&b->string_content, pos);+    }+    b->as.code.literal = cmark_chunk_buf_detach(&b->string_content);+    break;++  case NODE_HTML:+    b->as.literal = cmark_chunk_buf_detach(&b->string_content);+    break;++  case NODE_LIST:            // determine tight/loose status+    b->as.list.tight = true; // tight by default+    item = b->first_child;++    while (item) {+      // check for non-final non-empty list item ending with blank line:+      if (item->last_line_blank && item->next) {+        b->as.list.tight = false;+        break;+      }+      // recurse into children of list item, to see if there are+      // spaces between them:+      subitem = item->first_child;+      while (subitem) {+        if (ends_with_blank_line(subitem) && (item->next || subitem->next)) {+          b->as.list.tight = false;+          break;+        }+        subitem = subitem->next;+      }+      if (!(b->as.list.tight)) {+        break;+      }+      item = item->next;+    }++    break;++  default:+    break;+  }+  return parent;+}++// Add a node as child of another.  Return pointer to child.+static cmark_node *add_child(cmark_parser *parser, cmark_node *parent,+                             cmark_node_type block_type, int start_column) {+  assert(parent);++  // if 'parent' isn't the kind of node that can accept this child,+  // then back up til we hit a node that can.+  while (!can_contain(parent->type, block_type)) {+    parent = finalize(parser, parent);+  }++  cmark_node *child = make_block(block_type, parser->line_number, start_column);+  child->parent = parent;++  if (parent->last_child) {+    parent->last_child->next = child;+    child->prev = parent->last_child;+  } else {+    parent->first_child = child;+    child->prev = NULL;+  }+  parent->last_child = child;+  return child;+}++// Walk through node and all children, recursively, parsing+// string content into inline content where appropriate.+static void process_inlines(cmark_node *root, cmark_reference_map *refmap,+                            int options) {+  cmark_iter *iter = cmark_iter_new(root);+  cmark_node *cur;+  cmark_event_type ev_type;++  while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {+    cur = cmark_iter_get_node(iter);+    if (ev_type == CMARK_EVENT_ENTER) {+      if (cur->type == NODE_PARAGRAPH || cur->type == NODE_HEADER) {+        cmark_parse_inlines(cur, refmap, options);+      }+    }+  }++  cmark_iter_free(iter);+}++// Attempts to parse a list item marker (bullet or enumerated).+// On success, returns length of the marker, and populates+// data with the details.  On failure, returns 0.+static bufsize_t parse_list_marker(cmark_chunk *input, bufsize_t pos,+                                   cmark_list **dataptr) {+  unsigned char c;+  bufsize_t startpos;+  cmark_list *data;++  startpos = pos;+  c = peek_at(input, pos);++  if (c == '*' || c == '-' || c == '+') {+    pos++;+    if (!cmark_isspace(peek_at(input, pos))) {+      return 0;+    }+    data = (cmark_list *)calloc(1, sizeof(*data));+    if (data == NULL) {+      return 0;+    } else {+      data->marker_offset = 0; // will be adjusted later+      data->list_type = CMARK_BULLET_LIST;+      data->bullet_char = c;+      data->start = 1;+      data->delimiter = CMARK_PERIOD_DELIM;+      data->tight = false;+    }+  } else if (cmark_isdigit(c)) {+    int start = 0;+    int digits = 0;++    do {+      start = (10 * start) + (peek_at(input, pos) - '0');+      pos++;+      digits++;+      // We limit to 9 digits to avoid overflow,+      // assuming max int is 2^31 - 1+      // This also seems to be the limit for 'start' in some browsers.+    } while (digits < 9 && cmark_isdigit(peek_at(input, pos)));++    c = peek_at(input, pos);+    if (c == '.' || c == ')') {+      pos++;+      if (!cmark_isspace(peek_at(input, pos))) {+        return 0;+      }+      data = (cmark_list *)calloc(1, sizeof(*data));+      if (data == NULL) {+        return 0;+      } else {+        data->marker_offset = 0; // will be adjusted later+        data->list_type = CMARK_ORDERED_LIST;+        data->bullet_char = 0;+        data->start = start;+        data->delimiter = (c == '.' ? CMARK_PERIOD_DELIM : CMARK_PAREN_DELIM);+        data->tight = false;+      }+    } else {+      return 0;+    }++  } else {+    return 0;+  }++  *dataptr = data;+  return (pos - startpos);+}++// Return 1 if list item belongs in list, else 0.+static int lists_match(cmark_list *list_data, cmark_list *item_data) {+  return (list_data->list_type == item_data->list_type &&+          list_data->delimiter == item_data->delimiter &&+          // list_data->marker_offset == item_data.marker_offset &&+          list_data->bullet_char == item_data->bullet_char);+}++static cmark_node *finalize_document(cmark_parser *parser) {+  while (parser->current != parser->root) {+    parser->current = finalize(parser, parser->current);+  }++  finalize(parser, parser->root);+  process_inlines(parser->root, parser->refmap, parser->options);++  return parser->root;+}++cmark_node *cmark_parse_file(FILE *f, int options) {+  unsigned char buffer[4096];+  cmark_parser *parser = cmark_parser_new(options);+  size_t bytes;+  cmark_node *document;++  while ((bytes = fread(buffer, 1, sizeof(buffer), f)) > 0) {+    bool eof = bytes < sizeof(buffer);+    S_parser_feed(parser, buffer, bytes, eof);+    if (eof) {+      break;+    }+  }++  document = cmark_parser_finish(parser);+  cmark_parser_free(parser);+  return document;+}++cmark_node *cmark_parse_document(const char *buffer, size_t len, int options) {+  cmark_parser *parser = cmark_parser_new(options);+  cmark_node *document;++  S_parser_feed(parser, (const unsigned char *)buffer, len, true);++  document = cmark_parser_finish(parser);+  cmark_parser_free(parser);+  return document;+}++void cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len) {+  S_parser_feed(parser, (const unsigned char *)buffer, len, false);+}++static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer,+                          size_t len, bool eof) {+  const unsigned char *end = buffer + len;+  static const uint8_t repl[] = {239, 191, 189};++  while (buffer < end) {+    const unsigned char *eol;+    bufsize_t chunk_len;+    bool process = false;+    for (eol = buffer; eol < end; ++eol) {+      if (S_is_line_end_char(*eol)) {+        process = true;+        break;+      }+      if (*eol == '\0' && eol < end) {+        break;+      }+    }+    if (eol >= end && eof) {+      process = true;+    }++    chunk_len = cmark_strbuf_check_bufsize(eol - buffer);+    if (process) {+      if (parser->linebuf->size > 0) {+        cmark_strbuf_put(parser->linebuf, buffer, chunk_len);+        S_process_line(parser, parser->linebuf->ptr, parser->linebuf->size);+        cmark_strbuf_clear(parser->linebuf);+      } else {+        S_process_line(parser, buffer, chunk_len);+      }+    } else {+      if (eol < end && *eol == '\0') {+        // omit NULL byte+        cmark_strbuf_put(parser->linebuf, buffer, chunk_len);+        // add replacement character+        cmark_strbuf_put(parser->linebuf, repl, 3);+        chunk_len += 1; // so we advance the buffer past NULL+      } else {+        cmark_strbuf_put(parser->linebuf, buffer, chunk_len);+      }+    }++    buffer += chunk_len;+    // skip over line ending characters:+    if (buffer < end && *buffer == '\r')+      buffer++;+    if (buffer < end && *buffer == '\n')+      buffer++;+  }+}++static void chop_trailing_hashtags(cmark_chunk *ch) {+  bufsize_t n, orig_n;++  cmark_chunk_rtrim(ch);+  orig_n = n = ch->len - 1;++  // if string ends in space followed by #s, remove these:+  while (n >= 0 && peek_at(ch, n) == '#')+    n--;++  // Check for a space before the final #s:+  if (n != orig_n && n >= 0 &&+      (peek_at(ch, n) == ' ' || peek_at(ch, n) == '\t')) {+    ch->len = n;+    cmark_chunk_rtrim(ch);+  }+}++static void S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input) {+  char c;+  int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP);++  parser->first_nonspace = parser->offset;+  parser->first_nonspace_column = parser->column;+  while ((c = peek_at(input, parser->first_nonspace))) {+    if (c == ' ') {+      parser->first_nonspace += 1;+      parser->first_nonspace_column += 1;+      chars_to_tab = chars_to_tab - 1;+      if (chars_to_tab == 0) {+        chars_to_tab = TAB_STOP;+      }+    } else if (c == '\t') {+      parser->first_nonspace += 1;+      parser->first_nonspace_column += chars_to_tab;+      chars_to_tab = TAB_STOP;+    } else {+      break;+    }+  }++  parser->indent = parser->first_nonspace_column - parser->column;+  parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace));+}++static void S_advance_offset(cmark_parser *parser, cmark_chunk *input,+                             bufsize_t count, bool columns) {+  char c;+  int chars_to_tab;+  while (count > 0 && (c = peek_at(input, parser->offset))) {+    if (c == '\t') {+      chars_to_tab = 4 - (parser->column % TAB_STOP);+      parser->column += chars_to_tab;+      parser->offset += 1;+      count -= (columns ? chars_to_tab : 1);+    } else {+      parser->offset += 1;+      parser->column += 1; // assume ascii; block starts are ascii+      count -= 1;+    }+  }+}++static void S_process_line(cmark_parser *parser, const unsigned char *buffer,+                           bufsize_t bytes) {+  cmark_node *last_matched_container;+  bufsize_t matched = 0;+  int lev = 0;+  int i;+  cmark_list *data = NULL;+  bool all_matched = true;+  cmark_node *container;+  bool indented;+  cmark_chunk input;+  bool maybe_lazy;++  if (parser->options & CMARK_OPT_VALIDATE_UTF8) {+    cmark_utf8proc_check(parser->curline, buffer, bytes);+  } else {+    cmark_strbuf_put(parser->curline, buffer, bytes);+  }+  // ensure line ends with a newline:+  if (bytes == 0 || !S_is_line_end_char(parser->curline->ptr[bytes - 1])) {+	  cmark_strbuf_putc(parser->curline, '\n');+  }+  parser->offset = 0;+  parser->column = 0;+  parser->blank = false;++  input.data = parser->curline->ptr;+  input.len = parser->curline->size;++  // container starts at the document root.+  container = parser->root;++  parser->line_number++;++  // for each containing node, try to parse the associated line start.+  // bail out on failure:  container will point to the last matching node.++  while (container->last_child && container->last_child->open) {+    container = container->last_child;++    S_find_first_nonspace(parser, &input);++    if (container->type == NODE_BLOCK_QUOTE) {+      matched =+          parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>';+      if (matched) {+        S_advance_offset(parser, &input, parser->indent + 1, true);+        if (peek_at(&input, parser->offset) == ' ')+          parser->offset++;+      } else {+        all_matched = false;+      }++    } else if (container->type == NODE_ITEM) {+      if (parser->indent >=+          container->as.list.marker_offset + container->as.list.padding) {+        S_advance_offset(parser, &input, container->as.list.marker_offset ++                                             container->as.list.padding,+                         true);+      } else if (parser->blank && container->first_child != NULL) {+        // if container->first_child is NULL, then the opening line+        // of the list item was blank after the list marker; in this+        // case, we are done with the list item.+        S_advance_offset(parser, &input,+                         parser->first_nonspace - parser->offset, false);+      } else {+        all_matched = false;+      }++    } else if (container->type == NODE_CODE_BLOCK) {++      if (!container->as.code.fenced) { // indented+        if (parser->indent >= CODE_INDENT) {+          S_advance_offset(parser, &input, CODE_INDENT, true);+        } else if (parser->blank) {+          S_advance_offset(parser, &input,+                           parser->first_nonspace - parser->offset, false);+        } else {+          all_matched = false;+        }+      } else { // fenced+        matched = 0;+        if (parser->indent <= 3 && (peek_at(&input, parser->first_nonspace) ==+                                    container->as.code.fence_char)) {+          matched = scan_close_code_fence(&input, parser->first_nonspace);+        }+        if (matched >= container->as.code.fence_length) {+          // closing fence - and since we're at+          // the end of a line, we can return:+          all_matched = false;+          S_advance_offset(parser, &input, matched, false);+          parser->current = finalize(parser, container);+          goto finished;+        } else {+          // skip opt. spaces of fence parser->offset+          i = container->as.code.fence_offset;+          while (i > 0 && peek_at(&input, parser->offset) == ' ') {+            S_advance_offset(parser, &input, 1, false);+            i--;+          }+        }+      }+    } else if (container->type == NODE_HEADER) {++      // a header can never contain more than one line+      all_matched = false;++    } else if (container->type == NODE_HTML) {++      switch (container->as.html_block_type) {+      case 1:+      case 2:+      case 3:+      case 4:+      case 5:+        // these types of blocks can accept blanks+        break;+      case 6:+      case 7:+        if (parser->blank) {+          all_matched = false;+        }+        break;+      default:+        fprintf(stderr, "Error (%s:%d): Unknown HTML block type %d\n", __FILE__,+                __LINE__, container->as.html_block_type);+        exit(1);+      }++    } else if (container->type == NODE_PARAGRAPH) {++      if (parser->blank) {+        all_matched = false;+      }+    }++    if (!all_matched) {+      container = container->parent; // back up to last matching node+      break;+    }+  }++  last_matched_container = container;++  // check to see if we've hit 2nd blank line, break out of list:+  if (parser->blank && container->last_line_blank) {+    break_out_of_lists(parser, &container);+  }++  maybe_lazy = parser->current->type == NODE_PARAGRAPH;+  // try new container starts:+  while (container->type != NODE_CODE_BLOCK && container->type != NODE_HTML) {++    S_find_first_nonspace(parser, &input);+    indented = parser->indent >= CODE_INDENT;++    if (!indented && peek_at(&input, parser->first_nonspace) == '>') {++      S_advance_offset(parser, &input,+                       parser->first_nonspace + 1 - parser->offset, false);+      // optional following character+      if (peek_at(&input, parser->offset) == ' ')+        S_advance_offset(parser, &input, 1, false);+      container =+          add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1);++    } else if (!indented && (matched = scan_atx_header_start(+                                 &input, parser->first_nonspace))) {++      S_advance_offset(parser, &input,+                       parser->first_nonspace + matched - parser->offset,+                       false);+      container = add_child(parser, container, NODE_HEADER, parser->offset + 1);++      bufsize_t hashpos =+          cmark_chunk_strchr(&input, '#', parser->first_nonspace);+      int level = 0;++      while (peek_at(&input, hashpos) == '#') {+        level++;+        hashpos++;+      }+      container->as.header.level = level;+      container->as.header.setext = false;++    } else if (!indented && (matched = scan_open_code_fence(+                                 &input, parser->first_nonspace))) {++      container = add_child(parser, container, NODE_CODE_BLOCK,+                            parser->first_nonspace + 1);+      container->as.code.fenced = true;+      container->as.code.fence_char = peek_at(&input, parser->first_nonspace);+      container->as.code.fence_length = matched;+      container->as.code.fence_offset = (int8_t)(parser->first_nonspace - parser->offset);+      container->as.code.info = cmark_chunk_literal("");+      S_advance_offset(parser, &input,+                       parser->first_nonspace + matched - parser->offset,+                       false);++    } else if (!indented && ((matched = scan_html_block_start(+                                  &input, parser->first_nonspace)) ||+                             (container->type != NODE_PARAGRAPH &&+                              (matched = scan_html_block_start_7(+                                   &input, parser->first_nonspace))))) {++      container =+          add_child(parser, container, NODE_HTML, parser->first_nonspace + 1);+      container->as.html_block_type = matched;+      // note, we don't adjust parser->offset because the tag is part of the+      // text++    } else if (!indented && container->type == NODE_PARAGRAPH &&+               (lev =+                    scan_setext_header_line(&input, parser->first_nonspace)) &&+               // check that there is only one line in the paragraph:+               (cmark_strbuf_strrchr(+                    &container->string_content, '\n',+                    cmark_strbuf_len(&container->string_content) - 2) < 0)) {++      container->type = NODE_HEADER;+      container->as.header.level = lev;+      container->as.header.setext = true;+      S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);++    } else if (!indented &&+               !(container->type == NODE_PARAGRAPH && !all_matched) &&+               (matched = scan_hrule(&input, parser->first_nonspace))) {++      // it's only now that we know the line is not part of a setext header:+      container =+          add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1);+      S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);++    } else if ((matched =+                    parse_list_marker(&input, parser->first_nonspace, &data)) &&+               (!indented || container->type == NODE_LIST)) {+      // Note that we can have new list items starting with >= 4+      // spaces indent, as long as the list container is still open.++      // compute padding:+      S_advance_offset(parser, &input,+                       parser->first_nonspace + matched - parser->offset,+                       false);+      i = 0;+      while (i <= 5 && peek_at(&input, parser->offset + i) == ' ') {+        i++;+      }+      // i = number of spaces after marker, up to 5+      if (i >= 5 || i < 1 ||+          S_is_line_end_char(peek_at(&input, parser->offset))) {+        data->padding = matched + 1;+        if (i > 0) {+          S_advance_offset(parser, &input, 1, false);+        }+      } else {+        data->padding = matched + i;+        S_advance_offset(parser, &input, i, true);+      }++      // check container; if it's a list, see if this list item+      // can continue the list; otherwise, create a list container.++      data->marker_offset = parser->indent;++      if (container->type != NODE_LIST ||+          !lists_match(&container->as.list, data)) {+        container =+            add_child(parser, container, NODE_LIST, parser->first_nonspace + 1);++        memcpy(&container->as.list, data, sizeof(*data));+      }++      // add the list item+      container =+          add_child(parser, container, NODE_ITEM, parser->first_nonspace + 1);+      /* TODO: static */+      memcpy(&container->as.list, data, sizeof(*data));+      free(data);++    } else if (indented && !maybe_lazy && !parser->blank) {+      S_advance_offset(parser, &input, CODE_INDENT, true);+      container =+          add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1);+      container->as.code.fenced = false;+      container->as.code.fence_char = 0;+      container->as.code.fence_length = 0;+      container->as.code.fence_offset = 0;+      container->as.code.info = cmark_chunk_literal("");++    } else {+      break;+    }++    if (accepts_lines(container->type)) {+      // if it's a line container, it can't contain other containers+      break;+    }+    maybe_lazy = false;+  }++  // what remains at parser->offset is a text line.  add the text to the+  // appropriate container.++  S_find_first_nonspace(parser, &input);++  if (parser->blank && container->last_child) {+    container->last_child->last_line_blank = true;+  }++  // block quote lines are never blank as they start with >+  // and we don't count blanks in fenced code for purposes of tight/loose+  // lists or breaking out of lists.  we also don't set last_line_blank+  // on an empty list item.+  container->last_line_blank =+      (parser->blank && container->type != NODE_BLOCK_QUOTE &&+       container->type != NODE_HEADER &&+       container->type != NODE_HRULE &&+       !(container->type == NODE_CODE_BLOCK && container->as.code.fenced) &&+       !(container->type == NODE_ITEM && container->first_child == NULL &&+         container->start_line == parser->line_number));++  cmark_node *cont = container;+  while (cont->parent) {+    cont->parent->last_line_blank = false;+    cont = cont->parent;+  }++  if (parser->current != last_matched_container &&+      container == last_matched_container && !parser->blank &&+      parser->current->type == NODE_PARAGRAPH &&+      cmark_strbuf_len(&parser->current->string_content) > 0) {++    add_line(parser->current, &input, parser->offset);++  } else { // not a lazy continuation++    // finalize any blocks that were not matched and set cur to container:+    while (parser->current != last_matched_container) {+      parser->current = finalize(parser, parser->current);+      assert(parser->current != NULL);+    }++    if (container->type == NODE_CODE_BLOCK) {++      add_line(container, &input, parser->offset);++    } else if (container->type == NODE_HTML) {++      add_line(container, &input, parser->offset);++      int matches_end_condition;+      switch (container->as.html_block_type) {+      case 1:+        // </script>, </style>, </pre>+        matches_end_condition =+            scan_html_block_end_1(&input, parser->first_nonspace);+        break;+      case 2:+        // -->+        matches_end_condition =+            scan_html_block_end_2(&input, parser->first_nonspace);+        break;+      case 3:+        // ?>+        matches_end_condition =+            scan_html_block_end_3(&input, parser->first_nonspace);+        break;+      case 4:+        // >+        matches_end_condition =+            scan_html_block_end_4(&input, parser->first_nonspace);+        break;+      case 5:+        // ]]>+        matches_end_condition =+            scan_html_block_end_5(&input, parser->first_nonspace);+        break;+      default:+        matches_end_condition = 0;+        break;+      }++      if (matches_end_condition) {+        container = finalize(parser, container);+        assert(parser->current != NULL);+      }++    } else if (parser->blank) {++      // ??? do nothing++    } else if (accepts_lines(container->type)) {++      if (container->type == NODE_HEADER &&+          container->as.header.setext == false) {+        chop_trailing_hashtags(&input);+      }+      add_line(container, &input, parser->first_nonspace);++    } else {+      // create paragraph container for line+      container = add_child(parser, container, NODE_PARAGRAPH,+                            parser->first_nonspace + 1);+      add_line(container, &input, parser->first_nonspace);+    }++    parser->current = container;+  }+finished:+  parser->last_line_length = parser->curline->size;+  if (parser->last_line_length &&+      parser->curline->ptr[parser->last_line_length - 1] == '\n')+    parser->last_line_length -= 1;+  if (parser->last_line_length &&+      parser->curline->ptr[parser->last_line_length - 1] == '\r')+    parser->last_line_length -= 1;++  cmark_strbuf_clear(parser->curline);+}++cmark_node *cmark_parser_finish(cmark_parser *parser) {+  if (parser->linebuf->size) {+    S_process_line(parser, parser->linebuf->ptr, parser->linebuf->size);+    cmark_strbuf_clear(parser->linebuf);+  }++  finalize_document(parser);++  if (parser->options & CMARK_OPT_NORMALIZE) {+    cmark_consolidate_text_nodes(parser->root);+  }++  cmark_strbuf_free(parser->curline);++#if CMARK_DEBUG_NODES+  if (cmark_node_check(parser->root, stderr)) {+    abort();+  }+#endif+  return parser->root; }
cbits/buffer.c view
@@ -16,371 +16,296 @@ unsigned char cmark_strbuf__initbuf[1];  #ifndef MIN-#define MIN(x,y)  ((x<y) ? x : y)+#define MIN(x, y) ((x < y) ? x : y) #endif -void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size)-{-	buf->asize = 0;-	buf->size = 0;-	buf->ptr = cmark_strbuf__initbuf;+void cmark_strbuf_init(cmark_strbuf *buf, bufsize_t initial_size) {+  buf->asize = 0;+  buf->size = 0;+  buf->ptr = cmark_strbuf__initbuf; -	if (initial_size > 0)-		cmark_strbuf_grow(buf, initial_size);+  if (initial_size > 0)+    cmark_strbuf_grow(buf, initial_size); } -void cmark_strbuf_overflow_err()-{-	fprintf(stderr, "String buffer overflow");-	abort();+void cmark_strbuf_overflow_err() {+  fprintf(stderr, "String buffer overflow");+  abort(); } -static inline void-S_strbuf_grow_by(cmark_strbuf *buf, size_t add)-{-	size_t target_size = (size_t)buf->size + add;+static inline void S_strbuf_grow_by(cmark_strbuf *buf, size_t add) {+  size_t target_size = (size_t)buf->size + add; -	if (target_size < add             /* Integer overflow. */-	    || target_size > BUFSIZE_MAX  /* Truncation overflow. */-	   ) {-		cmark_strbuf_overflow_err();-		return; /* unreachable */-	}+  if (target_size < add            /* Integer overflow. */+      || target_size > BUFSIZE_MAX /* Truncation overflow. */+      ) {+    cmark_strbuf_overflow_err();+    return; /* unreachable */+  } -	if ((bufsize_t)target_size >= buf->asize)-		cmark_strbuf_grow(buf, (bufsize_t)target_size);+  if ((bufsize_t)target_size >= buf->asize)+    cmark_strbuf_grow(buf, (bufsize_t)target_size); } -void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size)-{-	unsigned char *new_ptr;--	if (target_size < buf->asize)-		return;+void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) {+  unsigned char *new_ptr; -	if (buf->asize == 0) {-		new_ptr = NULL;-	} else {-		new_ptr = buf->ptr;-	}+  if (target_size < buf->asize)+    return; -	/* Oversize the buffer by 50% to guarantee amortized linear time-	 * complexity on append operations. */-	size_t new_size = (size_t)target_size + (size_t)target_size / 2;+  if (buf->asize == 0) {+    new_ptr = NULL;+  } else {+    new_ptr = buf->ptr;+  } -	/* Account for terminating null byte. */-	new_size += 1;+  /* Oversize the buffer by 50% to guarantee amortized linear time+   * complexity on append operations. */+  size_t new_size = (size_t)target_size + (size_t)target_size / 2; -	/* round allocation up to multiple of 8 */-	new_size = (new_size + 7) & ~7;+  /* Account for terminating null byte. */+  new_size += 1; -	if (new_size < (size_t)target_size  /* Integer overflow. */-	    || new_size > BUFSIZE_MAX       /* Truncation overflow. */-	   ) {-		if (target_size >= BUFSIZE_MAX) {-			/* No space for terminating null byte. */-			cmark_strbuf_overflow_err();-			return; /* unreachable */-		}-		/* Oversize by the maximum possible amount. */-		new_size = BUFSIZE_MAX;-	}+  /* round allocation up to multiple of 8 */+  new_size = (new_size + 7) & ~7; -	new_ptr = (unsigned char *)realloc(new_ptr, new_size);+  if (new_size < (size_t)target_size /* Integer overflow. */+      || new_size > BUFSIZE_MAX      /* Truncation overflow. */+      ) {+    if (target_size >= BUFSIZE_MAX) {+      /* No space for terminating null byte. */+      cmark_strbuf_overflow_err();+      return; /* unreachable */+    }+    /* Oversize by the maximum possible amount. */+    new_size = BUFSIZE_MAX;+  } -	if (!new_ptr) {-		perror("realloc in cmark_strbuf_grow");-		abort();-	}+  new_ptr = (unsigned char *)realloc(new_ptr, new_size); -	buf->asize = (bufsize_t)new_size;-	buf->ptr   = new_ptr;-}+  if (!new_ptr) {+    perror("realloc in cmark_strbuf_grow");+    abort();+  } -bufsize_t cmark_strbuf_len(const cmark_strbuf *buf)-{-	return buf->size;+  buf->asize = (bufsize_t)new_size;+  buf->ptr = new_ptr; } -void cmark_strbuf_free(cmark_strbuf *buf)-{-	if (!buf) return;--	if (buf->ptr != cmark_strbuf__initbuf)-		free(buf->ptr);+bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) { return buf->size; } -	cmark_strbuf_init(buf, 0);-}+void cmark_strbuf_free(cmark_strbuf *buf) {+  if (!buf)+    return; -void cmark_strbuf_clear(cmark_strbuf *buf)-{-	buf->size = 0;+  if (buf->ptr != cmark_strbuf__initbuf)+    free(buf->ptr); -	if (buf->asize > 0)-		buf->ptr[0] = '\0';+  cmark_strbuf_init(buf, 0); } -void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, bufsize_t len)-{-	if (len <= 0 || data == NULL) {-		cmark_strbuf_clear(buf);-	} else {-		if (data != buf->ptr) {-			if (len >= buf->asize)-				cmark_strbuf_grow(buf, len);-			memmove(buf->ptr, data, len);-		}-		buf->size = len;-		buf->ptr[buf->size] = '\0';-	}-}+void cmark_strbuf_clear(cmark_strbuf *buf) {+  buf->size = 0; -void cmark_strbuf_sets(cmark_strbuf *buf, const char *string)-{-	cmark_strbuf_set(buf, (const unsigned char *)string,-	                 string ? cmark_strbuf_safe_strlen(string) : 0);+  if (buf->asize > 0)+    buf->ptr[0] = '\0'; } -void cmark_strbuf_putc(cmark_strbuf *buf, int c)-{-	S_strbuf_grow_by(buf, 1);-	buf->ptr[buf->size++] = c;-	buf->ptr[buf->size] = '\0';+void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data,+                      bufsize_t len) {+  if (len <= 0 || data == NULL) {+    cmark_strbuf_clear(buf);+  } else {+    if (data != buf->ptr) {+      if (len >= buf->asize)+        cmark_strbuf_grow(buf, len);+      memmove(buf->ptr, data, len);+    }+    buf->size = len;+    buf->ptr[buf->size] = '\0';+  } } -void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, bufsize_t len)-{-	if (len <= 0)-		return;--	S_strbuf_grow_by(buf, len);-	memmove(buf->ptr + buf->size, data, len);-	buf->size += len;-	buf->ptr[buf->size] = '\0';+void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) {+  cmark_strbuf_set(buf, (const unsigned char *)string,+                   string ? cmark_strbuf_safe_strlen(string) : 0); } -void cmark_strbuf_puts(cmark_strbuf *buf, const char *string)-{-	cmark_strbuf_put(buf, (const unsigned char *)string,-	                 cmark_strbuf_safe_strlen(string));+void cmark_strbuf_putc(cmark_strbuf *buf, int c) {+  S_strbuf_grow_by(buf, 1);+  buf->ptr[buf->size++] = (unsigned char)(c & 0xFF);+  buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_vprintf(cmark_strbuf *buf, const char *format, va_list ap)-{-	size_t expected_size = strlen(format);-	if (expected_size <= SIZE_MAX / 2)-		expected_size *= 2;-	S_strbuf_grow_by(buf, expected_size);--	while (1) {-		va_list args;-		va_copy(args, ap);--		int len = vsnprintf(-		              (char *)buf->ptr + buf->size,-		              buf->asize - buf->size,-		              format, args-		          );-#ifndef HAVE_C99_SNPRINTF-		// Assume we're on Windows.-		if (len < 0) {-			len = _vscprintf(format, args);-		}-#endif--		va_end(args);--		if (len < 0) {-			perror("vsnprintf in cmark_strbuf_vprintf");-			abort();-		}--		if ((size_t)len < (size_t)(buf->asize - buf->size)) {-			buf->size += len;-			break;-		}+void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data,+                      bufsize_t len) {+  if (len <= 0)+    return; -		S_strbuf_grow_by(buf, len);-	}+  S_strbuf_grow_by(buf, len);+  memmove(buf->ptr + buf->size, data, len);+  buf->size += len;+  buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_printf(cmark_strbuf *buf, const char *format, ...)-{-	va_list ap;--	va_start(ap, format);-	cmark_strbuf_vprintf(buf, format, ap);-	va_end(ap);+void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) {+  cmark_strbuf_put(buf, (const unsigned char *)string,+                   cmark_strbuf_safe_strlen(string)); } -void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf)-{-	bufsize_t copylen;+void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize,+                            const cmark_strbuf *buf) {+  bufsize_t copylen; -	assert(buf);-	if (!data || datasize <= 0)-		return;+  assert(buf);+  if (!data || datasize <= 0)+    return; -	data[0] = '\0';+  data[0] = '\0'; -	if (buf->size == 0 || buf->asize <= 0)-		return;+  if (buf->size == 0 || buf->asize <= 0)+    return; -	copylen = buf->size;-	if (copylen > datasize - 1)-		copylen = datasize - 1;-	memmove(data, buf->ptr, copylen);-	data[copylen] = '\0';+  copylen = buf->size;+  if (copylen > datasize - 1)+    copylen = datasize - 1;+  memmove(data, buf->ptr, copylen);+  data[copylen] = '\0'; } -void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b)-{-	cmark_strbuf t = *buf_a;-	*buf_a = *buf_b;-	*buf_b = t;+void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) {+  cmark_strbuf t = *buf_a;+  *buf_a = *buf_b;+  *buf_b = t; } -unsigned char *cmark_strbuf_detach(cmark_strbuf *buf)-{-	unsigned char *data = buf->ptr;+unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) {+  unsigned char *data = buf->ptr; -	if (buf->asize == 0) {-		/* return an empty string */-		return (unsigned char *)calloc(1, 1);-	}+  if (buf->asize == 0) {+    /* return an empty string */+    return (unsigned char *)calloc(1, 1);+  } -	cmark_strbuf_init(buf, 0);-	return data;+  cmark_strbuf_init(buf, 0);+  return data; } -int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b)-{-	int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size));-	return (result != 0) ? result :-	       (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0;+int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) {+  int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size));+  return (result != 0) ? result+                       : (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0; } -bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos)-{-	if (pos >= buf->size)-		return -1;-	if (pos < 0)-		pos = 0;+bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) {+  if (pos >= buf->size)+    return -1;+  if (pos < 0)+    pos = 0; -	const unsigned char *p = (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos);-	if (!p)-		return -1;+  const unsigned char *p =+      (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos);+  if (!p)+    return -1; -	return (bufsize_t)(p - (const unsigned char *)buf->ptr);+  return (bufsize_t)(p - (const unsigned char *)buf->ptr); } -bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos)-{-	if (pos < 0 || buf->size == 0)-		return -1;-	if (pos >= buf->size)-		pos = buf->size - 1;+bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) {+  if (pos < 0 || buf->size == 0)+    return -1;+  if (pos >= buf->size)+    pos = buf->size - 1; -	for (bufsize_t i = pos; i >= 0; i--) {-		if (buf->ptr[i] == (unsigned char) c)-			return i;-	}+  for (bufsize_t i = pos; i >= 0; i--) {+    if (buf->ptr[i] == (unsigned char)c)+      return i;+  } -	return -1;+  return -1; } -void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len)-{-	if (len < 0)-		len = 0;+void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) {+  if (len < 0)+    len = 0; -	if (len < buf->size) {-		buf->size = len;-		buf->ptr[buf->size] = '\0';-	}+  if (len < buf->size) {+    buf->size = len;+    buf->ptr[buf->size] = '\0';+  } } -void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n)-{-	if (n > 0) {-		if (n > buf->size)-			n = buf->size;-		buf->size = buf->size - n;-		if (buf->size)-			memmove(buf->ptr, buf->ptr + n, buf->size);+void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) {+  if (n > 0) {+    if (n > buf->size)+      n = buf->size;+    buf->size = buf->size - n;+    if (buf->size)+      memmove(buf->ptr, buf->ptr + n, buf->size); -		buf->ptr[buf->size] = '\0';-	}+    buf->ptr[buf->size] = '\0';+  } } -void cmark_strbuf_rtrim(cmark_strbuf *buf)-{-	if (!buf->size)-		return;+void cmark_strbuf_rtrim(cmark_strbuf *buf) {+  if (!buf->size)+    return; -	while (buf->size > 0) {-		if (!cmark_isspace(buf->ptr[buf->size - 1]))-			break;+  while (buf->size > 0) {+    if (!cmark_isspace(buf->ptr[buf->size - 1]))+      break; -		buf->size--;-	}+    buf->size--;+  } -	buf->ptr[buf->size] = '\0';+  buf->ptr[buf->size] = '\0'; } -void cmark_strbuf_trim(cmark_strbuf *buf)-{-	bufsize_t i = 0;+void cmark_strbuf_trim(cmark_strbuf *buf) {+  bufsize_t i = 0; -	if (!buf->size)-		return;+  if (!buf->size)+    return; -	while (i < buf->size && cmark_isspace(buf->ptr[i]))-		i++;+  while (i < buf->size && cmark_isspace(buf->ptr[i]))+    i++; -	cmark_strbuf_drop(buf, i);+  cmark_strbuf_drop(buf, i); -	cmark_strbuf_rtrim(buf);+  cmark_strbuf_rtrim(buf); }  // Destructively modify string, collapsing consecutive // space and newline characters into a single space.-void cmark_strbuf_normalize_whitespace(cmark_strbuf *s)-{-	bool last_char_was_space = false;-	bufsize_t r, w;--	for (r = 0, w = 0; r < s->size; ++r) {-		switch (s->ptr[r]) {-		case ' ':-		case '\n':-			if (last_char_was_space)-				break;--			s->ptr[w++] = ' ';-			last_char_was_space = true;-			break;+void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) {+  bool last_char_was_space = false;+  bufsize_t r, w; -		default:-			s->ptr[w++] = s->ptr[r];-			last_char_was_space = false;-		}-	}+  for (r = 0, w = 0; r < s->size; ++r) {+    if (cmark_isspace(s->ptr[r])) {+      if (!last_char_was_space) {+        s->ptr[w++] = ' ';+        last_char_was_space = true;+      }+    } else {+      s->ptr[w++] = s->ptr[r];+      last_char_was_space = false;+    }+  } -	cmark_strbuf_truncate(s, w);+  cmark_strbuf_truncate(s, w); }  // Destructively unescape a string: remove backslashes before punctuation chars.-extern void cmark_strbuf_unescape(cmark_strbuf *buf)-{-	bufsize_t r, w;+extern void cmark_strbuf_unescape(cmark_strbuf *buf) {+  bufsize_t r, w; -	for (r = 0, w = 0; r < buf->size; ++r) {-		if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1]))-			r++;+  for (r = 0, w = 0; r < buf->size; ++r) {+    if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1]))+      r++; -		buf->ptr[w++] = buf->ptr[r];-	}+    buf->ptr[w++] = buf->ptr[r];+  } -	cmark_strbuf_truncate(buf, w);+  cmark_strbuf_truncate(buf, w); }
cbits/buffer.h view
@@ -14,13 +14,14 @@ typedef int bufsize_t;  typedef struct {-	unsigned char *ptr;-	bufsize_t asize, size;+  unsigned char *ptr;+  bufsize_t asize, size; } cmark_strbuf;  extern unsigned char cmark_strbuf__initbuf[]; -#define GH_BUF_INIT { cmark_strbuf__initbuf, 0, 0 }+#define GH_BUF_INIT                                                            \+  { cmark_strbuf__initbuf, 0, 0 } #define BUFSIZE_MAX INT_MAX  /**@@ -44,23 +45,22 @@ int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b);  unsigned char *cmark_strbuf_detach(cmark_strbuf *buf);-void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, const cmark_strbuf *buf);+void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize,+                            const cmark_strbuf *buf); -static inline const char *cmark_strbuf_cstr(const cmark_strbuf *buf)-{-	return (char *)buf->ptr;+static CMARK_INLINE const char *cmark_strbuf_cstr(const cmark_strbuf *buf) {+  return (char *)buf->ptr; }  #define cmark_strbuf_at(buf, n) ((buf)->ptr[n]) -void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, bufsize_t len);+void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data,+                      bufsize_t len); void cmark_strbuf_sets(cmark_strbuf *buf, const char *string); void cmark_strbuf_putc(cmark_strbuf *buf, int c);-void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, bufsize_t len);+void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data,+                      bufsize_t len); void cmark_strbuf_puts(cmark_strbuf *buf, const char *string);-void cmark_strbuf_printf(cmark_strbuf *buf, const char *format, ...)-	CMARK_ATTRIBUTE((format (printf, 2, 3)));-void cmark_strbuf_vprintf(cmark_strbuf *buf, const char *format, va_list ap); void cmark_strbuf_clear(cmark_strbuf *buf);  bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos);@@ -75,17 +75,15 @@ /* Print error and abort. */ void cmark_strbuf_overflow_err(void); -static inline bufsize_t-cmark_strbuf_check_bufsize(size_t size) {-	if (size > BUFSIZE_MAX) {-		cmark_strbuf_overflow_err();-	}-	return (bufsize_t)size;+static CMARK_INLINE bufsize_t cmark_strbuf_check_bufsize(size_t size) {+  if (size > BUFSIZE_MAX) {+    cmark_strbuf_overflow_err();+  }+  return (bufsize_t)size; } -static inline bufsize_t-cmark_strbuf_safe_strlen(const char *str) {-	return cmark_strbuf_check_bufsize(strlen(str));+static CMARK_INLINE bufsize_t cmark_strbuf_safe_strlen(const char *str) {+  return cmark_strbuf_check_bufsize(strlen(str)); }  #ifdef __cplusplus
cbits/chunk.h view
@@ -7,115 +7,111 @@ #include "cmark_ctype.h" #include "buffer.h" -#define CMARK_CHUNK_EMPTY { NULL, 0, 0 }+#define CMARK_CHUNK_EMPTY                                                      \+  { NULL, 0, 0 }  typedef struct {-	unsigned char *data;-	bufsize_t len;-	bufsize_t alloc;  // also implies a NULL-terminated string+  unsigned char *data;+  bufsize_t len;+  bufsize_t alloc; // also implies a NULL-terminated string } cmark_chunk; -static inline void cmark_chunk_free(cmark_chunk *c)-{-	if (c->alloc)-		free(c->data);+static CMARK_INLINE void cmark_chunk_free(cmark_chunk *c) {+  if (c->alloc)+    free(c->data); -	c->data = NULL;-	c->alloc = 0;-	c->len = 0;+  c->data = NULL;+  c->alloc = 0;+  c->len = 0; } -static inline void cmark_chunk_ltrim(cmark_chunk *c)-{-	assert(!c->alloc);+static CMARK_INLINE void cmark_chunk_ltrim(cmark_chunk *c) {+  assert(!c->alloc); -	while (c->len && cmark_isspace(c->data[0])) {-		c->data++;-		c->len--;-	}+  while (c->len && cmark_isspace(c->data[0])) {+    c->data++;+    c->len--;+  } } -static inline void cmark_chunk_rtrim(cmark_chunk *c)-{-	while (c->len > 0) {-		if (!cmark_isspace(c->data[c->len - 1]))-			break;+static CMARK_INLINE void cmark_chunk_rtrim(cmark_chunk *c) {+  while (c->len > 0) {+    if (!cmark_isspace(c->data[c->len - 1]))+      break; -		c->len--;-	}+    c->len--;+  } } -static inline void cmark_chunk_trim(cmark_chunk *c)-{-	cmark_chunk_ltrim(c);-	cmark_chunk_rtrim(c);+static CMARK_INLINE void cmark_chunk_trim(cmark_chunk *c) {+  cmark_chunk_ltrim(c);+  cmark_chunk_rtrim(c); } -static inline bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset)-{-	const unsigned char *p = (unsigned char *)memchr(ch->data + offset, c, ch->len - offset);-	return p ? (bufsize_t)(p - ch->data) : ch->len;+static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,+                                           bufsize_t offset) {+  const unsigned char *p =+      (unsigned char *)memchr(ch->data + offset, c, ch->len - offset);+  return p ? (bufsize_t)(p - ch->data) : ch->len; } -static inline const char *cmark_chunk_to_cstr(cmark_chunk *c)-{-	unsigned char *str;+static CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_chunk *c) {+  unsigned char *str; -	if (c->alloc) {-		return (char *)c->data;-	}-	str = (unsigned char *)malloc(c->len + 1);-	if(str != NULL) {-		if(c->len > 0) {-			memcpy(str, c->data, c->len);-		}-		str[c->len] = 0;-	}-	c->data  = str;-	c->alloc = 1;+  if (c->alloc) {+    return (char *)c->data;+  }+  str = (unsigned char *)malloc(c->len + 1);+  if (str != NULL) {+    if (c->len > 0) {+      memcpy(str, c->data, c->len);+    }+    str[c->len] = 0;+  }+  c->data = str;+  c->alloc = 1; -	return (char *)str;+  return (char *)str; } -static inline void cmark_chunk_set_cstr(cmark_chunk *c, const char *str)-{-	if (c->alloc) {-		free(c->data);-	}-	if (str == NULL) {-		c->len   = 0;-		c->data  = NULL;-		c->alloc = 0;-	} else {-		c->len   = cmark_strbuf_safe_strlen(str);-		c->data  = (unsigned char *)malloc(c->len + 1);-		c->alloc = 1;-		memcpy(c->data, str, c->len + 1);-	}+static CMARK_INLINE void+cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {+  if (c->alloc) {+    free(c->data);+  }+  if (str == NULL) {+    c->len = 0;+    c->data = NULL;+    c->alloc = 0;+  } else {+    c->len = cmark_strbuf_safe_strlen(str);+    c->data = (unsigned char *)malloc(c->len + 1);+    c->alloc = 1;+    memcpy(c->data, str, c->len + 1);+  } } -static inline cmark_chunk cmark_chunk_literal(const char *data)-{-	bufsize_t len = data ? cmark_strbuf_safe_strlen(data) : 0;-	cmark_chunk c = {(unsigned char *)data, len, 0};-	return c;+static CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) {+  bufsize_t len = data ? cmark_strbuf_safe_strlen(data) : 0;+  cmark_chunk c = {(unsigned char *)data, len, 0};+  return c; } -static inline cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len)-{-	cmark_chunk c = {ch->data + pos, len, 0};-	return c;+static CMARK_INLINE+cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,+                            bufsize_t len) {+  cmark_chunk c = {ch->data + pos, len, 0};+  return c; } -static inline cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf)-{-	cmark_chunk c;+static CMARK_INLINE cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) {+  cmark_chunk c; -	c.len = buf->size;-	c.data = cmark_strbuf_detach(buf);-	c.alloc = 1;+  c.len = buf->size;+  c.data = cmark_strbuf_detach(buf);+  c.alloc = 1; -	return c;+  return c; }  #endif
cbits/cmark.c view
@@ -6,26 +6,18 @@ #include "cmark.h" #include "buffer.h" -int cmark_version()-{-	return CMARK_VERSION;-}+int cmark_version() { return CMARK_VERSION; } -const char *cmark_version_string()-{-	return CMARK_VERSION_STRING;-}+const char *cmark_version_string() { return CMARK_VERSION_STRING; } -char *cmark_markdown_to_html(const char *text, size_t len, int options)-{-	cmark_node *doc;-	char *result;+char *cmark_markdown_to_html(const char *text, size_t len, int options) {+  cmark_node *doc;+  char *result; -	doc = cmark_parse_document(text, len, options);+  doc = cmark_parse_document(text, len, options); -	result = cmark_render_html(doc, options);-	cmark_node_free(doc);+  result = cmark_render_html(doc, options);+  cmark_node_free(doc); -	return result;+  return result; }-
cbits/cmark.h view
@@ -30,49 +30,48 @@  */  typedef enum {-	/* Error status */-	CMARK_NODE_NONE,+  /* Error status */+  CMARK_NODE_NONE, -	/* Block */-	CMARK_NODE_DOCUMENT,-	CMARK_NODE_BLOCK_QUOTE,-	CMARK_NODE_LIST,-	CMARK_NODE_ITEM,-	CMARK_NODE_CODE_BLOCK,-	CMARK_NODE_HTML,-	CMARK_NODE_PARAGRAPH,-	CMARK_NODE_HEADER,-	CMARK_NODE_HRULE,+  /* Block */+  CMARK_NODE_DOCUMENT,+  CMARK_NODE_BLOCK_QUOTE,+  CMARK_NODE_LIST,+  CMARK_NODE_ITEM,+  CMARK_NODE_CODE_BLOCK,+  CMARK_NODE_HTML,+  CMARK_NODE_PARAGRAPH,+  CMARK_NODE_HEADER,+  CMARK_NODE_HRULE, -	CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,-	CMARK_NODE_LAST_BLOCK  = CMARK_NODE_HRULE,+  CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,+  CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE, -	/* Inline */-	CMARK_NODE_TEXT,-	CMARK_NODE_SOFTBREAK,-	CMARK_NODE_LINEBREAK,-	CMARK_NODE_CODE,-	CMARK_NODE_INLINE_HTML,-	CMARK_NODE_EMPH,-	CMARK_NODE_STRONG,-	CMARK_NODE_LINK,-	CMARK_NODE_IMAGE,+  /* Inline */+  CMARK_NODE_TEXT,+  CMARK_NODE_SOFTBREAK,+  CMARK_NODE_LINEBREAK,+  CMARK_NODE_CODE,+  CMARK_NODE_INLINE_HTML,+  CMARK_NODE_EMPH,+  CMARK_NODE_STRONG,+  CMARK_NODE_LINK,+  CMARK_NODE_IMAGE, -	CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,-	CMARK_NODE_LAST_INLINE  = CMARK_NODE_IMAGE,+  CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,+  CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, } cmark_node_type; - typedef enum {-	CMARK_NO_LIST,-	CMARK_BULLET_LIST,-	CMARK_ORDERED_LIST-}  cmark_list_type;+  CMARK_NO_LIST,+  CMARK_BULLET_LIST,+  CMARK_ORDERED_LIST+} cmark_list_type;  typedef enum {-	CMARK_NO_DELIM,-	CMARK_PERIOD_DELIM,-	CMARK_PAREN_DELIM+  CMARK_NO_DELIM,+  CMARK_PERIOD_DELIM,+  CMARK_PAREN_DELIM } cmark_delim_type;  typedef struct cmark_node cmark_node;@@ -80,10 +79,10 @@ typedef struct cmark_iter cmark_iter;  typedef enum {-	CMARK_EVENT_NONE,-	CMARK_EVENT_DONE,-	CMARK_EVENT_ENTER,-	CMARK_EVENT_EXIT+  CMARK_EVENT_NONE,+  CMARK_EVENT_DONE,+  CMARK_EVENT_ENTER,+  CMARK_EVENT_EXIT } cmark_event_type;  /**@@ -94,13 +93,11 @@  * other required properties, which it is the caller's responsibility  * to assign.  */-CMARK_EXPORT cmark_node*-cmark_node_new(cmark_node_type type);+CMARK_EXPORT cmark_node *cmark_node_new(cmark_node_type type);  /** Frees the memory allocated for a node.  */-CMARK_EXPORT void-cmark_node_free(cmark_node *node);+CMARK_EXPORT void cmark_node_free(cmark_node *node);  /**  * ## Tree Traversal@@ -109,29 +106,24 @@ /** Returns the next node in the sequence after 'node', or NULL if  * there is none.  */-CMARK_EXPORT cmark_node*-cmark_node_next(cmark_node *node);+CMARK_EXPORT cmark_node *cmark_node_next(cmark_node *node);  /** Returns the previous node in the sequence after 'node', or NULL if  * there is none.  */-CMARK_EXPORT cmark_node*-cmark_node_previous(cmark_node *node);+CMARK_EXPORT cmark_node *cmark_node_previous(cmark_node *node);  /** Returns the parent of 'node', or NULL if there is none.  */-CMARK_EXPORT cmark_node*-cmark_node_parent(cmark_node *node);+CMARK_EXPORT cmark_node *cmark_node_parent(cmark_node *node);  /** Returns the first child of 'node', or NULL if 'node' has no children.  */-CMARK_EXPORT cmark_node*-cmark_node_first_child(cmark_node *node);+CMARK_EXPORT cmark_node *cmark_node_first_child(cmark_node *node);  /** Returns the last child of 'node', or NULL if 'node' has no children.  */-CMARK_EXPORT cmark_node*-cmark_node_last_child(cmark_node *node);+CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node);  /**  * ## Iterator@@ -182,48 +174,41 @@  * type are undefined until `cmark_iter_next` is called for the first time.  */ CMARK_EXPORT-cmark_iter*-cmark_iter_new(cmark_node *root);+cmark_iter *cmark_iter_new(cmark_node *root);  /** Frees the memory allocated for an iterator.  */ CMARK_EXPORT-void-cmark_iter_free(cmark_iter *iter);+void cmark_iter_free(cmark_iter *iter);  /** Advances to the next node and returns the event type (`CMARK_EVENT_ENTER`,  * `CMARK_EVENT_EXIT` or `CMARK_EVENT_DONE`).  */ CMARK_EXPORT-cmark_event_type-cmark_iter_next(cmark_iter *iter);+cmark_event_type cmark_iter_next(cmark_iter *iter);  /** Returns the current node.  */ CMARK_EXPORT-cmark_node*-cmark_iter_get_node(cmark_iter *iter);+cmark_node *cmark_iter_get_node(cmark_iter *iter);  /** Returns the current event type.  */ CMARK_EXPORT-cmark_event_type-cmark_iter_get_event_type(cmark_iter *iter);+cmark_event_type cmark_iter_get_event_type(cmark_iter *iter);  /** Returns the root node.  */ CMARK_EXPORT-cmark_node*-cmark_iter_get_root(cmark_iter *iter);+cmark_node *cmark_iter_get_root(cmark_iter *iter);  /** Resets the iterator so that the current node is 'current' and  * the event type is 'event_type'.  The new current node must be a  * descendant of the root node or the root node itself.  */ CMARK_EXPORT-void-cmark_iter_reset(cmark_iter *iter, cmark_node *current,-                 cmark_event_type event_type);+void cmark_iter_reset(cmark_iter *iter, cmark_node *current,+                      cmark_event_type event_type);  /**  * ## Accessors@@ -231,144 +216,120 @@  /** Returns the user data of 'node'.  */-CMARK_EXPORT void*-cmark_node_get_user_data(cmark_node *node);+CMARK_EXPORT void *cmark_node_get_user_data(cmark_node *node);  /** Sets arbitrary user data for 'node'.  Returns 1 on success,  * 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_user_data(cmark_node *node, void *user_data);+CMARK_EXPORT int cmark_node_set_user_data(cmark_node *node, void *user_data);  /** Returns the type of 'node', or `CMARK_NODE_NONE` on error.  */-CMARK_EXPORT cmark_node_type-cmark_node_get_type(cmark_node *node);+CMARK_EXPORT cmark_node_type cmark_node_get_type(cmark_node *node);  /** Like 'cmark_node_get_type', but returns a string representation     of the type, or `"<unknown>"`.  */ CMARK_EXPORT-const char*-cmark_node_get_type_string(cmark_node *node);+const char *cmark_node_get_type_string(cmark_node *node);  /** Returns the string contents of 'node', or NULL if none.  */-CMARK_EXPORT const char*-cmark_node_get_literal(cmark_node *node);+CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node);  /** Sets the string contents of 'node'.  Returns 1 on success,  * 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_literal(cmark_node *node, const char *content);+CMARK_EXPORT int cmark_node_set_literal(cmark_node *node, const char *content);  /** Returns the header level of 'node', or 0 if 'node' is not a header.  */-CMARK_EXPORT int-cmark_node_get_header_level(cmark_node *node);+CMARK_EXPORT int cmark_node_get_header_level(cmark_node *node);  /** Sets the header level of 'node', returning 1 on success and 0 on error.  */-CMARK_EXPORT int-cmark_node_set_header_level(cmark_node *node, int level);+CMARK_EXPORT int cmark_node_set_header_level(cmark_node *node, int level);  /** Returns the list type of 'node', or `CMARK_NO_LIST` if 'node'  * is not a list.  */-CMARK_EXPORT cmark_list_type-cmark_node_get_list_type(cmark_node *node);+CMARK_EXPORT cmark_list_type cmark_node_get_list_type(cmark_node *node);  /** Sets the list type of 'node', returning 1 on success and 0 on error.  */-CMARK_EXPORT int-cmark_node_set_list_type(cmark_node *node, cmark_list_type type);+CMARK_EXPORT int cmark_node_set_list_type(cmark_node *node,+                                          cmark_list_type type);  /** Returns the list delimiter type of 'node', or `CMARK_NO_DELIM` if 'node'  * is not a list.  */-CMARK_EXPORT cmark_delim_type-cmark_node_get_list_delim(cmark_node *node);+CMARK_EXPORT cmark_delim_type cmark_node_get_list_delim(cmark_node *node);  /** Sets the list delimiter type of 'node', returning 1 on success and 0  * on error.  */-CMARK_EXPORT int-cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim);+CMARK_EXPORT int cmark_node_set_list_delim(cmark_node *node,+                                           cmark_delim_type delim);  /** Returns starting number of 'node', if it is an ordered list, otherwise 0.  */-CMARK_EXPORT int-cmark_node_get_list_start(cmark_node *node);+CMARK_EXPORT int cmark_node_get_list_start(cmark_node *node);  /** Sets starting number of 'node', if it is an ordered list. Returns 1  * on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_list_start(cmark_node *node, int start);+CMARK_EXPORT int cmark_node_set_list_start(cmark_node *node, int start);  /** Returns 1 if 'node' is a tight list, 0 otherwise.  */-CMARK_EXPORT int-cmark_node_get_list_tight(cmark_node *node);+CMARK_EXPORT int cmark_node_get_list_tight(cmark_node *node);  /** Sets the "tightness" of a list.  Returns 1 on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_list_tight(cmark_node *node, int tight);+CMARK_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight);  /** Returns the info string from a fenced code block, or NULL if none.  */-CMARK_EXPORT const char*-cmark_node_get_fence_info(cmark_node *node);+CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node);  /** Sets the info string in a fenced code block, returning 1 on  * success and 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_fence_info(cmark_node *node, const char *info);+CMARK_EXPORT int cmark_node_set_fence_info(cmark_node *node, const char *info);  /** Gets the URL of a link or image 'node', or NULL if none.  */-CMARK_EXPORT const char*-cmark_node_get_url(cmark_node *node);+CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node);  /** Sets the URL of a link or image 'node'. Returns 1 on success,  * 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_url(cmark_node *node, const char *url);+CMARK_EXPORT int cmark_node_set_url(cmark_node *node, const char *url);  /** Gets the title of a link or image 'node', or NULL if none.  */-CMARK_EXPORT const char*-cmark_node_get_title(cmark_node *node);+CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node);  /** Sets the title of a link or image 'node'. Returns 1 on success,  * 0 on failure.  */-CMARK_EXPORT int-cmark_node_set_title(cmark_node *node, const char *title);+CMARK_EXPORT int cmark_node_set_title(cmark_node *node, const char *title);  /** Returns the line on which 'node' begins.  */-CMARK_EXPORT int-cmark_node_get_start_line(cmark_node *node);+CMARK_EXPORT int cmark_node_get_start_line(cmark_node *node);  /** Returns the column at which 'node' begins.  */-CMARK_EXPORT int-cmark_node_get_start_column(cmark_node *node);+CMARK_EXPORT int cmark_node_get_start_column(cmark_node *node);  /** Returns the line on which 'node' ends.  */-CMARK_EXPORT int-cmark_node_get_end_line(cmark_node *node);+CMARK_EXPORT int cmark_node_get_end_line(cmark_node *node);  /** Returns the column at which 'node' ends.  */-CMARK_EXPORT int-cmark_node_get_end_column(cmark_node *node);+CMARK_EXPORT int cmark_node_get_end_column(cmark_node *node);  /**  * ## Tree Manipulation@@ -377,35 +338,30 @@ /** Unlinks a 'node', removing it from the tree, but not freeing its  * memory.  (Use 'cmark_node_free' for that.)  */-CMARK_EXPORT void-cmark_node_unlink(cmark_node *node);+CMARK_EXPORT void cmark_node_unlink(cmark_node *node);  /** Inserts 'sibling' before 'node'.  Returns 1 on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_insert_before(cmark_node *node, cmark_node *sibling);+CMARK_EXPORT int cmark_node_insert_before(cmark_node *node,+                                          cmark_node *sibling);  /** Inserts 'sibling' after 'node'. Returns 1 on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_insert_after(cmark_node *node, cmark_node *sibling);+CMARK_EXPORT int cmark_node_insert_after(cmark_node *node, cmark_node *sibling);  /** Adds 'child' to the beginning of the children of 'node'.  * Returns 1 on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_prepend_child(cmark_node *node, cmark_node *child);+CMARK_EXPORT int cmark_node_prepend_child(cmark_node *node, cmark_node *child);  /** Adds 'child' to the end of the children of 'node'.  * Returns 1 on success, 0 on failure.  */-CMARK_EXPORT int-cmark_node_append_child(cmark_node *node, cmark_node *child);+CMARK_EXPORT int cmark_node_append_child(cmark_node *node, cmark_node *child);  /** Consolidates adjacent text nodes.  */-CMARK_EXPORT void-cmark_consolidate_text_nodes(cmark_node *root);+CMARK_EXPORT void cmark_consolidate_text_nodes(cmark_node *root);  /**  * ## Parsing@@ -552,28 +508,28 @@  */  #ifndef CMARK_NO_SHORT_NAMES-#define NODE_DOCUMENT             CMARK_NODE_DOCUMENT-#define NODE_BLOCK_QUOTE          CMARK_NODE_BLOCK_QUOTE-#define NODE_LIST                 CMARK_NODE_LIST-#define NODE_ITEM                 CMARK_NODE_ITEM-#define NODE_CODE_BLOCK           CMARK_NODE_CODE_BLOCK-#define NODE_HTML                 CMARK_NODE_HTML-#define NODE_PARAGRAPH            CMARK_NODE_PARAGRAPH-#define NODE_HEADER		    CMARK_NODE_HEADER-#define NODE_HRULE                CMARK_NODE_HRULE-#define NODE_TEXT                 CMARK_NODE_TEXT-#define NODE_SOFTBREAK            CMARK_NODE_SOFTBREAK-#define NODE_LINEBREAK            CMARK_NODE_LINEBREAK-#define NODE_CODE                 CMARK_NODE_CODE-#define NODE_INLINE_HTML          CMARK_NODE_INLINE_HTML-#define NODE_EMPH                 CMARK_NODE_EMPH-#define NODE_STRONG               CMARK_NODE_STRONG-#define NODE_LINK                 CMARK_NODE_LINK-#define NODE_IMAGE                CMARK_NODE_IMAGE-#define BULLET_LIST               CMARK_BULLET_LIST-#define ORDERED_LIST              CMARK_ORDERED_LIST-#define PERIOD_DELIM              CMARK_PERIOD_DELIM-#define PAREN_DELIM               CMARK_PAREN_DELIM+#define NODE_DOCUMENT CMARK_NODE_DOCUMENT+#define NODE_BLOCK_QUOTE CMARK_NODE_BLOCK_QUOTE+#define NODE_LIST CMARK_NODE_LIST+#define NODE_ITEM CMARK_NODE_ITEM+#define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK+#define NODE_HTML CMARK_NODE_HTML+#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH+#define NODE_HEADER CMARK_NODE_HEADER+#define NODE_HRULE CMARK_NODE_HRULE+#define NODE_TEXT CMARK_NODE_TEXT+#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK+#define NODE_LINEBREAK CMARK_NODE_LINEBREAK+#define NODE_CODE CMARK_NODE_CODE+#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML+#define NODE_EMPH CMARK_NODE_EMPH+#define NODE_STRONG CMARK_NODE_STRONG+#define NODE_LINK CMARK_NODE_LINK+#define NODE_IMAGE CMARK_NODE_IMAGE+#define BULLET_LIST CMARK_BULLET_LIST+#define ORDERED_LIST CMARK_ORDERED_LIST+#define PERIOD_DELIM CMARK_PERIOD_DELIM+#define PAREN_DELIM CMARK_PAREN_DELIM #endif  #ifdef __cplusplus
cbits/cmark_ctype.c view
@@ -5,49 +5,38 @@ /** 1 = space, 2 = punct, 3 = digit, 4 = alpha, 0 = other  */ static const int8_t cmark_ctype_class[256] = {-	/*      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */-	/* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,-	/* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-	/* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,-	/* 4 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,-	/* 5 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2,-	/* 6 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,-	/* 7 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0,-	/* 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* a */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* b */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* c */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* d */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* e */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	/* f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0-};+    /*      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */+    /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,+    /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,+    /* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,+    /* 4 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,+    /* 5 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2,+    /* 6 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,+    /* 7 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0,+    /* 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* a */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* b */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* c */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* d */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* e */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    /* f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};  /**  * Returns 1 if c is a "whitespace" character as defined by the spec.  */-int cmark_isspace(char c)-{-	return cmark_ctype_class[(int8_t)c] == 1;-}+int cmark_isspace(char c) { return cmark_ctype_class[(int8_t)c] == 1; }  /**  * Returns 1 if c is an ascii punctuation character.  */-int cmark_ispunct(char c)-{-	return cmark_ctype_class[(int8_t)c] == 2;-}+int cmark_ispunct(char c) { return cmark_ctype_class[(int8_t)c] == 2; } -int cmark_isalnum(char c)-{-	int8_t result;-	result = cmark_ctype_class[(int8_t)c];-	return (result == 3 || result == 4);+int cmark_isalnum(char c) {+  int8_t result;+  result = cmark_ctype_class[(int8_t)c];+  return (result == 3 || result == 4); } -int cmark_isdigit(char c)-{-	return cmark_ctype_class[(int8_t)c] == 3;-}+int cmark_isdigit(char c) { return cmark_ctype_class[(int8_t)c] == 3; }
cbits/cmark_version.h view
@@ -1,7 +1,7 @@ #ifndef CMARK_VERSION_H #define CMARK_VERSION_H -#define CMARK_VERSION ((0 << 16) | (20 << 8)  | 0)-#define CMARK_VERSION_STRING "0.20.0"+#define CMARK_VERSION ((0 << 16) | (22 << 8)  | 0)+#define CMARK_VERSION_STRING "0.22.0"  #endif
cbits/commonmark.c view
@@ -20,443 +20,408 @@  // Functions to convert cmark_nodes to commonmark strings. -static inline void outc(cmark_renderer *renderer,-                        cmark_escaping escape,-                        int32_t c,-                        unsigned char nextc)-{-	bool needs_escaping = false;-	needs_escaping =-	    escape != LITERAL &&-	    ((escape == NORMAL &&-	      (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' ||-	       c == '<' || c == '>' || c == '\\' || c == '`' || c == '!' ||-	       (c == '&' && isalpha(nextc)) ||-	       (c == '!' && nextc == '[') ||-	       (renderer->begin_line &&-	        (c == '-' || c == '+' || c == '=')) ||-	       ((c == '.' || c == ')') &&-	        isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||-	     (escape == URL &&-	      (c == '`' || c == '<' || c == '>' || isspace(c) ||-	       c == '\\' || c == ')' || c == '(')) ||-	     (escape == TITLE &&-	      (c == '`' || c == '<' || c == '>' || c == '"' ||-	       c == '\\')));+static inline void outc(cmark_renderer *renderer, cmark_escaping escape,+                        int32_t c, unsigned char nextc) {+  bool needs_escaping = false;+  char encoded[20]; -	if (needs_escaping) {-		if (isspace(c)) {-			// use percent encoding for spaces-			cmark_strbuf_printf(renderer->buffer, "%%%2x", c);-			renderer->column += 3;-		} else {-			cmark_render_ascii(renderer, "\\");-			cmark_render_code_point(renderer, c);-		}-	} else {-		cmark_render_code_point(renderer, c);-	}+  needs_escaping =+      escape != LITERAL &&+      ((escape == NORMAL &&+        (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' ||+         c == '>' || c == '\\' || c == '`' || c == '!' ||+         (c == '&' && isalpha(nextc)) || (c == '!' && nextc == '[') ||+         (renderer->begin_line && (c == '-' || c == '+' || c == '=')) ||+         ((c == '.' || c == ')') &&+          isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||+       (escape == URL && (c == '`' || c == '<' || c == '>' || isspace(c) ||+                          c == '\\' || c == ')' || c == '(')) ||+       (escape == TITLE &&+        (c == '`' || c == '<' || c == '>' || c == '"' || c == '\\')));++  if (needs_escaping) {+    if (isspace(c)) {+      // use percent encoding for spaces+      sprintf(encoded, "%%%2x", c);+      cmark_strbuf_puts(renderer->buffer, encoded);+      renderer->column += 3;+    } else {+      cmark_render_ascii(renderer, "\\");+      cmark_render_code_point(renderer, c);+    }+  } else {+    cmark_render_code_point(renderer, c);+  } } -static int-longest_backtick_sequence(const char *code)-{-	int longest = 0;-	int current = 0;-	size_t i = 0;-	size_t code_len = safe_strlen(code);-	while (i <= code_len) {-		if (code[i] == '`') {-			current++;-		} else {-			if (current > longest) {-				longest = current;-			}-			current = 0;-		}-		i++;-	}-	return longest;+static int longest_backtick_sequence(const char *code) {+  int longest = 0;+  int current = 0;+  size_t i = 0;+  size_t code_len = safe_strlen(code);+  while (i <= code_len) {+    if (code[i] == '`') {+      current++;+    } else {+      if (current > longest) {+        longest = current;+      }+      current = 0;+    }+    i++;+  }+  return longest; } -static int-shortest_unused_backtick_sequence(const char *code)-{-	int32_t used = 1;-	int current = 0;-	size_t i = 0;-	size_t code_len = safe_strlen(code);-	while (i <= code_len) {-		if (code[i] == '`') {-			current++;-		} else {-			if (current) {-				used |= (1 << current);-			}-			current = 0;-		}-		i++;-	}-	// return number of first bit that is 0:-	i = 0;-	while (used & 1) {-		used = used >> 1;-		i++;-	}-	return i;+static int shortest_unused_backtick_sequence(const char *code) {+  int32_t used = 1;+  int current = 0;+  size_t i = 0;+  size_t code_len = safe_strlen(code);+  while (i <= code_len) {+    if (code[i] == '`') {+      current++;+    } else {+      if (current) {+        used |= (1 << current);+      }+      current = 0;+    }+    i++;+  }+  // return number of first bit that is 0:+  i = 0;+  while (used & 1) {+    used = used >> 1;+    i++;+  }+  return i; } -static bool-is_autolink(cmark_node *node)-{-	cmark_chunk *title;-	cmark_chunk *url;-	cmark_node *link_text;-	char *realurl;-	int realurllen;+static bool is_autolink(cmark_node *node) {+  cmark_chunk *title;+  cmark_chunk *url;+  cmark_node *link_text;+  char *realurl;+  int realurllen; -	if (node->type != CMARK_NODE_LINK) {-		return false;-	}+  if (node->type != CMARK_NODE_LINK) {+    return false;+  } -	url = &node->as.link.url;-	if (url->len == 0 || scan_scheme(url, 0) == 0) {-		return false;-	}+  url = &node->as.link.url;+  if (url->len == 0 || scan_scheme(url, 0) == 0) {+    return false;+  } -	title = &node->as.link.title;-	// if it has a title, we can't treat it as an autolink:-	if (title->len > 0) {-		return false;-	}+  title = &node->as.link.title;+  // if it has a title, we can't treat it as an autolink:+  if (title->len > 0) {+    return false;+  } -	link_text = node->first_child;-	cmark_consolidate_text_nodes(link_text);-	realurl = (char*)url->data;-	realurllen = url->len;-	if (strncmp(realurl, "mailto:", 7) == 0) {-		realurl += 7;-		realurllen -= 7;-	}-	return (realurllen == link_text->as.literal.len &&-	        strncmp(realurl,-	                (char*)link_text->as.literal.data,-	                link_text->as.literal.len) == 0);+  link_text = node->first_child;+  cmark_consolidate_text_nodes(link_text);+  realurl = (char *)url->data;+  realurllen = url->len;+  if (strncmp(realurl, "mailto:", 7) == 0) {+    realurl += 7;+    realurllen -= 7;+  }+  return (realurllen == link_text->as.literal.len &&+          strncmp(realurl, (char *)link_text->as.literal.data,+                  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.-static cmark_node*-get_containing_block(cmark_node *node)-{-	while (node &&-	       (node->type < CMARK_NODE_FIRST_BLOCK ||-	        node->type > CMARK_NODE_LAST_BLOCK)) {-		node = node->parent;-	}-	return node;+static cmark_node *get_containing_block(cmark_node *node) {+  while (node && (node->type < CMARK_NODE_FIRST_BLOCK ||+                  node->type > CMARK_NODE_LAST_BLOCK)) {+    node = node->parent;+  }+  return node; } -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;-	int i;-	bool entering = (ev_type == CMARK_EVENT_ENTER);-	const char *info, *code, *title;-	size_t info_len, code_len;-	cmark_strbuf listmarker = GH_BUF_INIT;-	char *emph_delim;-	bufsize_t marker_width;+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;+  int i;+  bool entering = (ev_type == CMARK_EVENT_ENTER);+  const char *info, *code, *title;+  size_t info_len, code_len;+  char listmarker[20];+  char *emph_delim;+  bufsize_t marker_width; -	// 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->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));-	}+  // 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->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));+  } -	switch (node->type) {-	case CMARK_NODE_DOCUMENT:-		break;+  switch (node->type) {+  case CMARK_NODE_DOCUMENT:+    break; -	case CMARK_NODE_BLOCK_QUOTE:-		if (entering) {-			LIT("> ");-			cmark_strbuf_puts(renderer->prefix, "> ");-		} else {-			cmark_strbuf_truncate(renderer->prefix,-			                      renderer->prefix->size - 2);-			BLANKLINE();-		}-		break;+  case CMARK_NODE_BLOCK_QUOTE:+    if (entering) {+      LIT("> ");+      cmark_strbuf_puts(renderer->prefix, "> ");+    } else {+      cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2);+      BLANKLINE();+    }+    break; -	case CMARK_NODE_LIST:-		if (!entering && node->next &&-		    (node->next->type == CMARK_NODE_CODE_BLOCK ||-		     node->next->type == CMARK_NODE_LIST)) {-			// this ensures 2 blank lines after list,-			// if before code block or list:-			LIT("\n");-		}-		break;+  case CMARK_NODE_LIST:+    if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK ||+                                    node->next->type == CMARK_NODE_LIST)) {+      // this ensures 2 blank lines after list,+      // if before code block or list:+      LIT("\n");+    }+    break; -	case CMARK_NODE_ITEM:-		if (cmark_node_get_list_type(node->parent) ==-		    CMARK_BULLET_LIST) {-			marker_width = 2;-		} else {-			list_number = cmark_node_get_list_start(node->parent);-			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-			cmark_strbuf_printf(&listmarker,-			                    "%d%s%s", list_number,-			                    list_delim == CMARK_PAREN_DELIM ?-			                    ")" : ".",-			                    list_number < 10 ? "  " : " ");-			marker_width = listmarker.size;-		}-		if (entering) {-			if (cmark_node_get_list_type(node->parent) ==-			    CMARK_BULLET_LIST) {-				LIT("* ");-				cmark_strbuf_puts(renderer->prefix, "  ");-			} else {-				LIT((char *)listmarker.ptr);-				for (i = marker_width; i--;) {-					cmark_strbuf_putc(renderer->prefix, ' ');-				}-			}-		} else {-			cmark_strbuf_truncate(renderer->prefix,-			                      renderer->prefix->size --			                      marker_width);-			CR();-		}-		cmark_strbuf_free(&listmarker);-		break;+  case CMARK_NODE_ITEM:+    if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {+      marker_width = 2;+    } else {+      list_number = cmark_node_get_list_start(node->parent);+      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+      sprintf(listmarker, "%d%s%s", list_number,+              list_delim == CMARK_PAREN_DELIM ? ")" : ".",+              list_number < 10 ? "  " : " ");+      marker_width = safe_strlen(listmarker);+    }+    if (entering) {+      if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {+        LIT("* ");+        cmark_strbuf_puts(renderer->prefix, "  ");+      } else {+        LIT(listmarker);+        for (i = marker_width; i--;) {+          cmark_strbuf_putc(renderer->prefix, ' ');+        }+      }+    } else {+      cmark_strbuf_truncate(renderer->prefix,+                            renderer->prefix->size - marker_width);+      CR();+    }+    break; -	case CMARK_NODE_HEADER:-		if (entering) {-			for (int i = cmark_node_get_header_level(node); i > 0; i--) {-				LIT("#");-			}-			LIT(" ");-			renderer->no_wrap = true;-		} else {-			renderer->no_wrap = false;-			BLANKLINE();-		}-		break;+  case CMARK_NODE_HEADER:+    if (entering) {+      for (int i = cmark_node_get_header_level(node); i > 0; i--) {+        LIT("#");+      }+      LIT(" ");+      renderer->no_wrap = true;+    } else {+      renderer->no_wrap = false;+      BLANKLINE();+    }+    break; -	case CMARK_NODE_CODE_BLOCK:-		BLANKLINE();-		info = cmark_node_get_fence_info(node);-		info_len = safe_strlen(info);-		code = cmark_node_get_literal(node);-		code_len = safe_strlen(code);-		// use indented form if no info, and code doesn't-		// begin or end with a blank line, and code isn't-		// first thing in a list item-		if (info_len == 0 &&-		    (code_len > 2 &&-		     !isspace(code[0]) &&-		     !(isspace(code[code_len - 1]) &&-		       isspace(code[code_len - 2]))) &&-		    !(node->prev == NULL && node->parent &&-		      node->parent->type == CMARK_NODE_ITEM)) {-			LIT("    ");-			cmark_strbuf_puts(renderer->prefix, "    ");-			OUT(cmark_node_get_literal(node), false, LITERAL);-			cmark_strbuf_truncate(renderer->prefix,-			                      renderer->prefix->size - 4);-		} else {-			numticks = longest_backtick_sequence(code) + 1;-			if (numticks < 3) {-				numticks = 3;-			}-			for (i = 0; i < numticks; i++) {-				LIT("`");-			}-			LIT(" ");-			OUT(info, false, LITERAL);-			CR();-			OUT(cmark_node_get_literal(node), false, LITERAL);-			CR();-			for (i = 0; i < numticks; i++) {-				LIT("`");-			}-		}-		BLANKLINE();-		break;+  case CMARK_NODE_CODE_BLOCK:+    BLANKLINE();+    info = cmark_node_get_fence_info(node);+    info_len = safe_strlen(info);+    code = cmark_node_get_literal(node);+    code_len = safe_strlen(code);+    // use indented form if no info, and code doesn't+    // begin or end with a blank line, and code isn't+    // first thing in a list item+    if (info_len == 0 &&+        (code_len > 2 && !isspace(code[0]) &&+         !(isspace(code[code_len - 1]) && isspace(code[code_len - 2]))) &&+        !(node->prev == NULL && node->parent &&+          node->parent->type == CMARK_NODE_ITEM)) {+      LIT("    ");+      cmark_strbuf_puts(renderer->prefix, "    ");+      OUT(cmark_node_get_literal(node), false, LITERAL);+      cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4);+    } else {+      numticks = longest_backtick_sequence(code) + 1;+      if (numticks < 3) {+        numticks = 3;+      }+      for (i = 0; i < numticks; i++) {+        LIT("`");+      }+      LIT(" ");+      OUT(info, false, LITERAL);+      CR();+      OUT(cmark_node_get_literal(node), false, LITERAL);+      CR();+      for (i = 0; i < numticks; i++) {+        LIT("`");+      }+    }+    BLANKLINE();+    break; -	case CMARK_NODE_HTML:-		BLANKLINE();-		OUT(cmark_node_get_literal(node), false, LITERAL);-		BLANKLINE();-		break;+  case CMARK_NODE_HTML:+    BLANKLINE();+    OUT(cmark_node_get_literal(node), false, LITERAL);+    BLANKLINE();+    break; -	case CMARK_NODE_HRULE:-		BLANKLINE();-		LIT("-----");-		BLANKLINE();-		break;+  case CMARK_NODE_HRULE:+    BLANKLINE();+    LIT("-----");+    BLANKLINE();+    break; -	case CMARK_NODE_PARAGRAPH:-		if (!entering) {-			BLANKLINE();-		}-		break;+  case CMARK_NODE_PARAGRAPH:+    if (!entering) {+      BLANKLINE();+    }+    break; -	case CMARK_NODE_TEXT:-		OUT(cmark_node_get_literal(node), true, NORMAL);-		break;+  case CMARK_NODE_TEXT:+    OUT(cmark_node_get_literal(node), true, NORMAL);+    break; -	case CMARK_NODE_LINEBREAK:-		if (!(CMARK_OPT_HARDBREAKS & options)) {-			LIT("\\");-		}-		CR();-		break;+  case CMARK_NODE_LINEBREAK:+    if (!(CMARK_OPT_HARDBREAKS & options)) {+      LIT("\\");+    }+    CR();+    break; -	case CMARK_NODE_SOFTBREAK:-		if (renderer->width == 0 &&-		    !(CMARK_OPT_HARDBREAKS & options)) {-			CR();-		} else {-			OUT(" ", true, LITERAL);-		}-		break;+  case CMARK_NODE_SOFTBREAK:+    if (renderer->width == 0 && !(CMARK_OPT_HARDBREAKS & options)) {+      CR();+    } else {+      OUT(" ", true, LITERAL);+    }+    break; -	case CMARK_NODE_CODE:-		code = cmark_node_get_literal(node);-		code_len = safe_strlen(code);-		numticks = shortest_unused_backtick_sequence(code);-		for (i = 0; i < numticks; i++) {-			LIT("`");-		}-		if (code_len == 0 || code[0] == '`') {-			LIT(" ");-		}-		OUT(cmark_node_get_literal(node), true, LITERAL);-		if (code_len == 0 || code[code_len - 1] == '`') {-			LIT(" ");-		}-		for (i = 0; i < numticks; i++) {-			LIT("`");-		}-		break;+  case CMARK_NODE_CODE:+    code = cmark_node_get_literal(node);+    code_len = safe_strlen(code);+    numticks = shortest_unused_backtick_sequence(code);+    for (i = 0; i < numticks; i++) {+      LIT("`");+    }+    if (code_len == 0 || code[0] == '`') {+      LIT(" ");+    }+    OUT(cmark_node_get_literal(node), true, LITERAL);+    if (code_len == 0 || code[code_len - 1] == '`') {+      LIT(" ");+    }+    for (i = 0; i < numticks; i++) {+      LIT("`");+    }+    break; -	case CMARK_NODE_INLINE_HTML:-		OUT(cmark_node_get_literal(node), false, LITERAL);-		break;+  case CMARK_NODE_INLINE_HTML:+    OUT(cmark_node_get_literal(node), false, LITERAL);+    break; -	case CMARK_NODE_STRONG:-		if (entering) {-			LIT("**");-		} else {-			LIT("**");-		}-		break;+  case CMARK_NODE_STRONG:+    if (entering) {+      LIT("**");+    } else {+      LIT("**");+    }+    break; -	case CMARK_NODE_EMPH:-		// If we have EMPH(EMPH(x)), we need to use *_x_*-		// because **x** is STRONG(x):-		if (node->parent && node->parent->type == CMARK_NODE_EMPH &&-		    node->next == NULL && node->prev == NULL) {-			emph_delim = "_";-		} else {-			emph_delim = "*";-		}-		if (entering) {-			LIT(emph_delim);-		} else {-			LIT(emph_delim);-		}-		break;+  case CMARK_NODE_EMPH:+    // If we have EMPH(EMPH(x)), we need to use *_x_*+    // because **x** is STRONG(x):+    if (node->parent && node->parent->type == CMARK_NODE_EMPH &&+        node->next == NULL && node->prev == NULL) {+      emph_delim = "_";+    } else {+      emph_delim = "*";+    }+    if (entering) {+      LIT(emph_delim);+    } else {+      LIT(emph_delim);+    }+    break; -	case CMARK_NODE_LINK:-		if (is_autolink(node)) {-			if (entering) {-				LIT("<");-				if (strncmp(cmark_node_get_url(node),-				            "mailto:", 7) == 0) {-					LIT((char *)cmark_node_get_url(node) + 7);-				} else {-					LIT((char *)cmark_node_get_url(node));-				}-				LIT(">");-				// return signal to skip contents of node...-				return 0;-			}-		} else {-			if (entering) {-				LIT("[");-			} else {-				LIT("](");-				OUT(cmark_node_get_url(node), false, URL);-				title = cmark_node_get_title(node);-				if (safe_strlen(title) > 0) {-					LIT(" \"");-					OUT(title, false, TITLE);-					LIT("\"");-				}-				LIT(")");-			}-		}-		break;+  case CMARK_NODE_LINK:+    if (is_autolink(node)) {+      if (entering) {+        LIT("<");+        if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) {+          LIT((char *)cmark_node_get_url(node) + 7);+        } else {+          LIT((char *)cmark_node_get_url(node));+        }+        LIT(">");+        // return signal to skip contents of node...+        return 0;+      }+    } else {+      if (entering) {+        LIT("[");+      } else {+        LIT("](");+        OUT(cmark_node_get_url(node), false, URL);+        title = cmark_node_get_title(node);+        if (safe_strlen(title) > 0) {+          LIT(" \"");+          OUT(title, false, TITLE);+          LIT("\"");+        }+        LIT(")");+      }+    }+    break; -	case CMARK_NODE_IMAGE:-		if (entering) {-			LIT("![");-		} else {-			LIT("](");-			OUT(cmark_node_get_url(node), false, URL);-			title = cmark_node_get_title(node);-			if (safe_strlen(title) > 0) {-				OUT(" \"", true, LITERAL);-				OUT(title, false, TITLE);-				LIT("\"");-			}-			LIT(")");-		}-		break;+  case CMARK_NODE_IMAGE:+    if (entering) {+      LIT("![");+    } else {+      LIT("](");+      OUT(cmark_node_get_url(node), false, URL);+      title = cmark_node_get_title(node);+      if (safe_strlen(title) > 0) {+        OUT(" \"", true, LITERAL);+        OUT(title, false, TITLE);+        LIT("\"");+      }+      LIT(")");+    }+    break; -	default:-		assert(false);-		break;-	}+  default:+    assert(false);+    break;+  } -	return 1;+  return 1; } -char *cmark_render_commonmark(cmark_node *root, int options, int width)-{-	if (options & CMARK_OPT_HARDBREAKS) {-		// disable breaking on width, since it has-		// a different meaning with OPT_HARDBREAKS-		width = 0;-	}-	return cmark_render(root, options, width, outc, S_render_node);+char *cmark_render_commonmark(cmark_node *root, int options, int width) {+  if (options & CMARK_OPT_HARDBREAKS) {+    // disable breaking on width, since it has+    // a different meaning with OPT_HARDBREAKS+    width = 0;+  }+  return cmark_render(root, options, width, outc, S_render_node); }
cbits/config.h view
@@ -16,10 +16,10 @@   #define CMARK_ATTRIBUTE(list) #endif -#define HAVE_VA_COPY--#ifndef HAVE_VA_COPY-  #define va_copy(dest, src) ((dest) = (src))+#ifndef CMARK_INLINE+  #if defined(_MSC_VER) && !defined(__cplusplus)+    #define CMARK_INLINE __inline+  #else+    #define CMARK_INLINE inline+  #endif #endif--#define HAVE_C99_SNPRINTF
cbits/houdini.h view
@@ -10,33 +10,39 @@ #include "buffer.h"  #ifdef HAVE___BUILTIN_EXPECT-#	define likely(x)	__builtin_expect((x),1)-#	define unlikely(x)	__builtin_expect((x),0)+#define likely(x) __builtin_expect((x), 1)+#define unlikely(x) __builtin_expect((x), 0) #else-#	define likely(x)	(x)-#	define unlikely(x)	(x)+#define likely(x) (x)+#define unlikely(x) (x) #endif  #ifdef HOUDINI_USE_LOCALE-#	define _isxdigit(c) isxdigit(c)-#	define _isdigit(c) isdigit(c)+#define _isxdigit(c) isxdigit(c)+#define _isdigit(c) isdigit(c) #else /*  * Helper _isdigit methods -- do not trust the current locale  * */-#	define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL)-#	define _isdigit(c) ((c) >= '0' && (c) <= '9')+#define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL)+#define _isdigit(c) ((c) >= '0' && (c) <= '9') #endif -#define HOUDINI_ESCAPED_SIZE(x) (((x) * 12) / 10)+#define HOUDINI_ESCAPED_SIZE(x) (((x)*12) / 10) #define HOUDINI_UNESCAPED_SIZE(x) (x) -extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, bufsize_t size);-extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size);-extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, int secure);-extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size);-extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, bufsize_t size);-extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size);+extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src,+                                      bufsize_t size);+extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src,+                               bufsize_t size);+extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src,+                                bufsize_t size, int secure);+extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src,+                                 bufsize_t size);+extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src,+                                    bufsize_t size);+extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src,+                               bufsize_t size);  #ifdef __cplusplus }
cbits/houdini_href_e.c view
@@ -30,78 +30,71 @@  *  */ static const char HREF_SAFE[] = {-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,-	0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,+    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -int-houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)-{-	static const uint8_t hex_chars[] = "0123456789ABCDEF";-	bufsize_t i = 0, org;-	uint8_t hex_str[3];+int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) {+  static const uint8_t hex_chars[] = "0123456789ABCDEF";+  bufsize_t i = 0, org;+  uint8_t hex_str[3]; -	hex_str[0] = '%';+  hex_str[0] = '%'; -	while (i < size) {-		org = i;-		while (i < size && HREF_SAFE[src[i]] != 0)-			i++;+  while (i < size) {+    org = i;+    while (i < size && HREF_SAFE[src[i]] != 0)+      i++; -		if (likely(i > org))-			cmark_strbuf_put(ob, src + org, i - org);+    if (likely(i > org))+      cmark_strbuf_put(ob, src + org, i - org); -		/* escaping */-		if (i >= size)-			break;+    /* escaping */+    if (i >= size)+      break; -		switch (src[i]) {-		/* amp appears all the time in URLs, but needs-		 * HTML-entity escaping to be inside an href */-		case '&':-			cmark_strbuf_puts(ob, "&amp;");-			break;+    switch (src[i]) {+    /* amp appears all the time in URLs, but needs+     * HTML-entity escaping to be inside an href */+    case '&':+      cmark_strbuf_puts(ob, "&amp;");+      break; -		/* the single quote is a valid URL character-		 * according to the standard; it needs HTML-		 * entity escaping too */-		case '\'':-			cmark_strbuf_puts(ob, "&#x27;");-			break;+    /* the single quote is a valid URL character+     * according to the standard; it needs HTML+     * entity escaping too */+    case '\'':+      cmark_strbuf_puts(ob, "&#x27;");+      break; -			/* the space can be escaped to %20 or a plus-			 * sign. we're going with the generic escape-			 * for now. the plus thing is more commonly seen-			 * when building GET strings */+/* the space can be escaped to %20 or a plus+ * sign. we're going with the generic escape+ * for now. the plus thing is more commonly seen+ * when building GET strings */ #if 0 		case ' ': 			cmark_strbuf_putc(ob, '+'); 			break; #endif -		/* every other character goes with a %XX escaping */-		default:-			hex_str[1] = hex_chars[(src[i] >> 4) & 0xF];-			hex_str[2] = hex_chars[src[i] & 0xF];-			cmark_strbuf_put(ob, hex_str, 3);-		}+    /* every other character goes with a %XX escaping */+    default:+      hex_str[1] = hex_chars[(src[i] >> 4) & 0xF];+      hex_str[2] = hex_chars[src[i] & 0xF];+      cmark_strbuf_put(ob, hex_str, 3);+    } -		i++;-	}+    i++;+  } -	return 1;+  return 1; }
cbits/houdini_html_e.c view
@@ -16,66 +16,51 @@  *  */ static const char HTML_ESCAPE_TABLE[] = {-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 4,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 4,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -static const char *HTML_ESCAPES[] = {-	"",-	"&quot;",-	"&amp;",-	"&#39;",-	"&#47;",-	"&lt;",-	"&gt;"-};+static const char *HTML_ESCAPES[] = {"",      "&quot;", "&amp;", "&#39;",+                                     "&#47;", "&lt;",   "&gt;"}; -int-houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, int secure)-{-	bufsize_t i = 0, org, esc = 0;+int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size,+                         int secure) {+  bufsize_t i = 0, org, esc = 0; -	while (i < size) {-		org = i;-		while (i < size && (esc = HTML_ESCAPE_TABLE[src[i]]) == 0)-			i++;+  while (i < size) {+    org = i;+    while (i < size && (esc = HTML_ESCAPE_TABLE[src[i]]) == 0)+      i++; -		if (i > org)-			cmark_strbuf_put(ob, src + org, i - org);+    if (i > org)+      cmark_strbuf_put(ob, src + org, i - org); -		/* escaping */-		if (unlikely(i >= size))-			break;+    /* escaping */+    if (unlikely(i >= size))+      break; -		/* The forward slash is only escaped in secure mode */-		if ((src[i] == '/' || src[i] == '\'') && !secure) {-			cmark_strbuf_putc(ob, src[i]);-		} else {-			cmark_strbuf_puts(ob, HTML_ESCAPES[esc]);-		}+    /* The forward slash is only escaped in secure mode */+    if ((src[i] == '/' || src[i] == '\'') && !secure) {+      cmark_strbuf_putc(ob, src[i]);+    } else {+      cmark_strbuf_puts(ob, HTML_ESCAPES[esc]);+    } -		i++;-	}+    i++;+  } -	return 1;+  return 1; } -int-houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)-{-	return houdini_escape_html0(ob, src, size, 1);+int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) {+  return houdini_escape_html0(ob, src, size, 1); }
cbits/houdini_html_u.c view
@@ -9,145 +9,140 @@  /* Binary tree lookup code for entities added by JGM */ -static unsigned char *-S_lookup(int i, int low, int hi, const unsigned char *s, int len)-{-	int j;-	int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);-	if (cmp == 0 && cmark_entities[i].entity[len] == 0) {-		return (unsigned char *)cmark_entities[i].bytes;-	} else if (cmp < 0 && i > low) {-		j = i - ((i - low) / 2);-		if (j == i) j -= 1;-		return S_lookup(j, low, i - 1, s, len);-	} else if (cmp > 0 && i < hi) {-		j = i + ((hi - i) / 2);-		if (j == i) j += 1;-		return S_lookup(j, i + 1, hi, s, len);-	} else {-		return NULL;-	}+static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,+                               int len) {+  int j;+  int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);+  if (cmp == 0 && cmark_entities[i].entity[len] == 0) {+    return (unsigned char *)cmark_entities[i].bytes;+  } else if (cmp < 0 && i > low) {+    j = i - ((i - low) / 2);+    if (j == i)+      j -= 1;+    return S_lookup(j, low, i - 1, s, len);+  } else if (cmp > 0 && i < hi) {+    j = i + ((hi - i) / 2);+    if (j == i)+      j += 1;+    return S_lookup(j, i + 1, hi, s, len);+  } else {+    return NULL;+  } } -static unsigned char *-S_lookup_entity(const unsigned char *s, int len)-{-	return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len);+static unsigned char *S_lookup_entity(const unsigned char *s, int len) {+  return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len); } -bufsize_t-houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)-{-	bufsize_t i = 0;+bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src,+                               bufsize_t size) {+  bufsize_t i = 0; -	if (size >= 3 && src[0] == '#') {-		int codepoint  = 0;-		int num_digits = 0;+  if (size >= 3 && src[0] == '#') {+    int codepoint = 0;+    int num_digits = 0; -		if (_isdigit(src[1])) {-			for (i = 1; i < size && _isdigit(src[i]); ++i) {-				codepoint = (codepoint * 10) + (src[i] - '0');+    if (_isdigit(src[1])) {+      for (i = 1; i < size && _isdigit(src[i]); ++i) {+        codepoint = (codepoint * 10) + (src[i] - '0'); -				if (codepoint >= 0x110000) {-					// Keep counting digits but-					// avoid integer overflow.-					codepoint = 0x110000;-				}-			}+        if (codepoint >= 0x110000) {+          // Keep counting digits but+          // avoid integer overflow.+          codepoint = 0x110000;+        }+      } -			num_digits = i - 1;-		}+      num_digits = i - 1;+    } -		else if (src[1] == 'x' || src[1] == 'X') {-			for (i = 2; i < size && _isxdigit(src[i]); ++i) {-				codepoint = (codepoint * 16) + ((src[i] | 32) % 39 - 9);+    else if (src[1] == 'x' || src[1] == 'X') {+      for (i = 2; i < size && _isxdigit(src[i]); ++i) {+        codepoint = (codepoint * 16) + ((src[i] | 32) % 39 - 9); -				if (codepoint >= 0x110000) {-					// Keep counting digits but-					// avoid integer overflow.-					codepoint = 0x110000;-				}-			}+        if (codepoint >= 0x110000) {+          // Keep counting digits but+          // avoid integer overflow.+          codepoint = 0x110000;+        }+      } -			num_digits = i - 2;-		}+      num_digits = i - 2;+    } -		if (num_digits >= 1 && num_digits <= 8 &&-		    i < size && src[i] == ';') {-			if (codepoint == 0 ||-			    (codepoint >= 0xD800 && codepoint < 0xE000) ||-			    codepoint >= 0x110000) {-				codepoint = 0xFFFD;-			}-			utf8proc_encode_char(codepoint, ob);-			return i + 1;-		}-	}+    if (num_digits >= 1 && num_digits <= 8 && i < size && src[i] == ';') {+      if (codepoint == 0 || (codepoint >= 0xD800 && codepoint < 0xE000) ||+          codepoint >= 0x110000) {+        codepoint = 0xFFFD;+      }+      cmark_utf8proc_encode_char(codepoint, ob);+      return i + 1;+    }+  } -	else {-		if (size > CMARK_ENTITY_MAX_LENGTH)-			size = CMARK_ENTITY_MAX_LENGTH;+  else {+    if (size > CMARK_ENTITY_MAX_LENGTH)+      size = CMARK_ENTITY_MAX_LENGTH; -		for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) {-			if (src[i] == ' ')-				break;+    for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) {+      if (src[i] == ' ')+        break; -			if (src[i] == ';') {-				const unsigned char *entity = S_lookup_entity(src, i);+      if (src[i] == ';') {+        const unsigned char *entity = S_lookup_entity(src, i); -				if (entity != NULL) {-					cmark_strbuf_puts(ob, (const char *)entity);-					return i + 1;-				}+        if (entity != NULL) {+          cmark_strbuf_puts(ob, (const char *)entity);+          return i + 1;+        } -				break;-			}-		}-	}+        break;+      }+    }+  } -	return 0;+  return 0; } -int-houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)-{-	bufsize_t i = 0, org, ent;+int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src,+                          bufsize_t size) {+  bufsize_t i = 0, org, ent; -	while (i < size) {-		org = i;-		while (i < size && src[i] != '&')-			i++;+  while (i < size) {+    org = i;+    while (i < size && src[i] != '&')+      i++; -		if (likely(i > org)) {-			if (unlikely(org == 0)) {-				if (i >= size)-					return 0;+    if (likely(i > org)) {+      if (unlikely(org == 0)) {+        if (i >= size)+          return 0; -				cmark_strbuf_grow(ob, HOUDINI_UNESCAPED_SIZE(size));-			}+        cmark_strbuf_grow(ob, HOUDINI_UNESCAPED_SIZE(size));+      } -			cmark_strbuf_put(ob, src + org, i - org);-		}+      cmark_strbuf_put(ob, src + org, i - org);+    } -		/* escaping */-		if (i >= size)-			break;+    /* escaping */+    if (i >= size)+      break; -		i++;+    i++; -		ent = houdini_unescape_ent(ob, src + i, size - i);-		i += ent;+    ent = houdini_unescape_ent(ob, src + i, size - i);+    i += ent; -		/* not really an entity */-		if (ent == 0)-			cmark_strbuf_putc(ob, '&');-	}+    /* not really an entity */+    if (ent == 0)+      cmark_strbuf_putc(ob, '&');+  } -	return 1;+  return 1; } -void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)-{-	if (!houdini_unescape_html(ob, src, size))-		cmark_strbuf_put(ob, src, size);+void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src,+                             bufsize_t size) {+  if (!houdini_unescape_html(ob, src, size))+    cmark_strbuf_put(ob, src, size); }
cbits/html.c view
@@ -12,322 +12,304 @@  // Functions to convert cmark_nodes to HTML strings. -static void escape_html(cmark_strbuf *dest, const unsigned char *source, bufsize_t length)-{-	houdini_escape_html0(dest, source, length, 0);+static void escape_html(cmark_strbuf *dest, const unsigned char *source,+                        bufsize_t length) {+  houdini_escape_html0(dest, source, length, 0); } -static inline void cr(cmark_strbuf *html)-{-	if (html->size && html->ptr[html->size - 1] != '\n')-		cmark_strbuf_putc(html, '\n');+static inline void cr(cmark_strbuf *html) {+  if (html->size && html->ptr[html->size - 1] != '\n')+    cmark_strbuf_putc(html, '\n'); }  struct render_state {-	cmark_strbuf* html;-	cmark_node *plain;+  cmark_strbuf *html;+  cmark_node *plain; }; -static void-S_render_sourcepos(cmark_node *node, cmark_strbuf *html, int options)-{-	if (CMARK_OPT_SOURCEPOS & options) {-		cmark_strbuf_printf(html, " data-sourcepos=\"%d:%d-%d:%d\"",-		                    cmark_node_get_start_line(node),-		                    cmark_node_get_start_column(node),-		                    cmark_node_get_end_line(node),-		                    cmark_node_get_end_column(node));-	}+static void S_render_sourcepos(cmark_node *node, cmark_strbuf *html,+                               int options) {+  char buffer[100];+  if (CMARK_OPT_SOURCEPOS & options) {+    sprintf(buffer, " data-sourcepos=\"%d:%d-%d:%d\"",+            cmark_node_get_start_line(node), cmark_node_get_start_column(node),+            cmark_node_get_end_line(node), cmark_node_get_end_column(node));+    cmark_strbuf_puts(html, buffer);+  } } -static int-S_render_node(cmark_node *node, cmark_event_type ev_type,-              struct render_state *state, int options)-{-	cmark_node *parent;-	cmark_node *grandparent;-	cmark_strbuf *html = state->html;-	char start_header[] = "<h0";-	char end_header[] = "</h0";-	bool tight;--	bool entering = (ev_type == CMARK_EVENT_ENTER);--	if (state->plain == node) { // back at original node-		state->plain = NULL;-	}+static int S_render_node(cmark_node *node, cmark_event_type ev_type,+                         struct render_state *state, int options) {+  cmark_node *parent;+  cmark_node *grandparent;+  cmark_strbuf *html = state->html;+  char start_header[] = "<h0";+  char end_header[] = "</h0";+  bool tight;+  char buffer[100]; -	if (state->plain != NULL) {-		switch(node->type) {-		case CMARK_NODE_TEXT:-		case CMARK_NODE_CODE:-		case CMARK_NODE_INLINE_HTML:-			escape_html(html, node->as.literal.data,-			            node->as.literal.len);-			break;+  bool entering = (ev_type == CMARK_EVENT_ENTER); -		case CMARK_NODE_LINEBREAK:-		case CMARK_NODE_SOFTBREAK:-			cmark_strbuf_putc(html, ' ');-			break;+  if (state->plain == node) { // back at original node+    state->plain = NULL;+  } -		default:-			break;-		}-		return 1;-	}+  if (state->plain != NULL) {+    switch (node->type) {+    case CMARK_NODE_TEXT:+    case CMARK_NODE_CODE:+    case CMARK_NODE_INLINE_HTML:+      escape_html(html, node->as.literal.data, node->as.literal.len);+      break; -	switch (node->type) {-	case CMARK_NODE_DOCUMENT:-		break;+    case CMARK_NODE_LINEBREAK:+    case CMARK_NODE_SOFTBREAK:+      cmark_strbuf_putc(html, ' ');+      break; -	case CMARK_NODE_BLOCK_QUOTE:-		if (entering) {-			cr(html);-			cmark_strbuf_puts(html, "<blockquote");-			S_render_sourcepos(node, html, options);-			cmark_strbuf_puts(html, ">\n");-		} else {-			cr(html);-			cmark_strbuf_puts(html, "</blockquote>\n");-		}-		break;+    default:+      break;+    }+    return 1;+  } -	case CMARK_NODE_LIST: {-		cmark_list_type list_type = node->as.list.list_type;-		int start = node->as.list.start;+  switch (node->type) {+  case CMARK_NODE_DOCUMENT:+    break; -		if (entering) {-			cr(html);-			if (list_type == CMARK_BULLET_LIST) {-				cmark_strbuf_puts(html, "<ul");-				S_render_sourcepos(node, html, options);-				cmark_strbuf_puts(html, ">\n");-			} else if (start == 1) {-				cmark_strbuf_puts(html, "<ol");-				S_render_sourcepos(node, html, options);-				cmark_strbuf_puts(html, ">\n");-			} else {-				cmark_strbuf_printf(html,-				                    "<ol start=\"%d\"",-				                    start);-				S_render_sourcepos(node, html, options);-				cmark_strbuf_puts(html, ">\n");-			}-		} else {-			cmark_strbuf_puts(html,-			                  list_type == CMARK_BULLET_LIST ?-			                  "</ul>\n" : "</ol>\n");-		}-		break;-	}+  case CMARK_NODE_BLOCK_QUOTE:+    if (entering) {+      cr(html);+      cmark_strbuf_puts(html, "<blockquote");+      S_render_sourcepos(node, html, options);+      cmark_strbuf_puts(html, ">\n");+    } else {+      cr(html);+      cmark_strbuf_puts(html, "</blockquote>\n");+    }+    break; -	case CMARK_NODE_ITEM:-		if (entering) {-			cr(html);-			cmark_strbuf_puts(html, "<li");-			S_render_sourcepos(node, html, options);-			cmark_strbuf_putc(html, '>');-		} else {-			cmark_strbuf_puts(html, "</li>\n");-		}-		break;+  case CMARK_NODE_LIST: {+    cmark_list_type list_type = node->as.list.list_type;+    int start = node->as.list.start; -	case CMARK_NODE_HEADER:-		if (entering) {-			cr(html);-			start_header[2] = '0' + node->as.header.level;-			cmark_strbuf_puts(html, start_header);-			S_render_sourcepos(node, html, options);-			cmark_strbuf_putc(html, '>');-		} else {-			end_header[3] = '0' + node->as.header.level;-			cmark_strbuf_puts(html, end_header);-			cmark_strbuf_puts(html, ">\n");-		}-		break;+    if (entering) {+      cr(html);+      if (list_type == CMARK_BULLET_LIST) {+        cmark_strbuf_puts(html, "<ul");+        S_render_sourcepos(node, html, options);+        cmark_strbuf_puts(html, ">\n");+      } else if (start == 1) {+        cmark_strbuf_puts(html, "<ol");+        S_render_sourcepos(node, html, options);+        cmark_strbuf_puts(html, ">\n");+      } else {+        sprintf(buffer, "<ol start=\"%d\"", start);+        cmark_strbuf_puts(html, buffer);+        S_render_sourcepos(node, html, options);+        cmark_strbuf_puts(html, ">\n");+      }+    } else {+      cmark_strbuf_puts(html,+                        list_type == CMARK_BULLET_LIST ? "</ul>\n" : "</ol>\n");+    }+    break;+  } -	case CMARK_NODE_CODE_BLOCK:-		cr(html);+  case CMARK_NODE_ITEM:+    if (entering) {+      cr(html);+      cmark_strbuf_puts(html, "<li");+      S_render_sourcepos(node, html, options);+      cmark_strbuf_putc(html, '>');+    } else {+      cmark_strbuf_puts(html, "</li>\n");+    }+    break; -		if (!node->as.code.fenced || node->as.code.info.len == 0) {-			cmark_strbuf_puts(html, "<pre");-			S_render_sourcepos(node, html, options);-			cmark_strbuf_puts(html, "><code>");-		} else {-			bufsize_t first_tag = 0;-			while (first_tag < node->as.code.info.len &&-			       !cmark_isspace(node->as.code.info.data[first_tag])) {-				first_tag += 1;-			}+  case CMARK_NODE_HEADER:+    if (entering) {+      cr(html);+      start_header[2] = (char)('0' + node->as.header.level);+      cmark_strbuf_puts(html, start_header);+      S_render_sourcepos(node, html, options);+      cmark_strbuf_putc(html, '>');+    } else {+      end_header[3] = (char)('0' + node->as.header.level);+      cmark_strbuf_puts(html, end_header);+      cmark_strbuf_puts(html, ">\n");+    }+    break; -			cmark_strbuf_puts(html, "<pre");-			S_render_sourcepos(node, html, options);-			cmark_strbuf_puts(html, "><code class=\"language-");-			escape_html(html, node->as.code.info.data, first_tag);-			cmark_strbuf_puts(html, "\">");-		}+  case CMARK_NODE_CODE_BLOCK:+    cr(html); -		escape_html(html, node->as.code.literal.data,-		            node->as.code.literal.len);-		cmark_strbuf_puts(html, "</code></pre>\n");-		break;+    if (!node->as.code.fenced || node->as.code.info.len == 0) {+      cmark_strbuf_puts(html, "<pre");+      S_render_sourcepos(node, html, options);+      cmark_strbuf_puts(html, "><code>");+    } else {+      bufsize_t first_tag = 0;+      while (first_tag < node->as.code.info.len &&+             !cmark_isspace(node->as.code.info.data[first_tag])) {+        first_tag += 1;+      } -	case CMARK_NODE_HTML:-		cr(html);-		if (options & CMARK_OPT_SAFE) {-			cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");-		} else {-			cmark_strbuf_put(html, node->as.literal.data,-			                 node->as.literal.len);-		}-		cr(html);-		break;+      cmark_strbuf_puts(html, "<pre");+      S_render_sourcepos(node, html, options);+      cmark_strbuf_puts(html, "><code class=\"language-");+      escape_html(html, node->as.code.info.data, first_tag);+      cmark_strbuf_puts(html, "\">");+    } -	case CMARK_NODE_HRULE:-		cr(html);-		cmark_strbuf_puts(html, "<hr");-		S_render_sourcepos(node, html, options);-		cmark_strbuf_puts(html, " />\n");-		break;+    escape_html(html, node->as.code.literal.data, node->as.code.literal.len);+    cmark_strbuf_puts(html, "</code></pre>\n");+    break; -	case CMARK_NODE_PARAGRAPH:-		parent = cmark_node_parent(node);-		grandparent = cmark_node_parent(parent);-		if (grandparent != NULL &&-		    grandparent->type == CMARK_NODE_LIST) {-			tight = grandparent->as.list.tight;-		} else {-			tight = false;-		}-		if (!tight) {-			if (entering) {-				cr(html);-				cmark_strbuf_puts(html, "<p");-				S_render_sourcepos(node, html, options);-				cmark_strbuf_putc(html, '>');-			} else {-				cmark_strbuf_puts(html, "</p>\n");-			}-		}-		break;+  case CMARK_NODE_HTML:+    cr(html);+    if (options & CMARK_OPT_SAFE) {+      cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");+    } else {+      cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);+    }+    cr(html);+    break; -	case CMARK_NODE_TEXT:-		escape_html(html, node->as.literal.data, node->as.literal.len);-		break;+  case CMARK_NODE_HRULE:+    cr(html);+    cmark_strbuf_puts(html, "<hr");+    S_render_sourcepos(node, html, options);+    cmark_strbuf_puts(html, " />\n");+    break; -	case CMARK_NODE_LINEBREAK:-		cmark_strbuf_puts(html, "<br />\n");-		break;+  case CMARK_NODE_PARAGRAPH:+    parent = cmark_node_parent(node);+    grandparent = cmark_node_parent(parent);+    if (grandparent != NULL && grandparent->type == CMARK_NODE_LIST) {+      tight = grandparent->as.list.tight;+    } else {+      tight = false;+    }+    if (!tight) {+      if (entering) {+        cr(html);+        cmark_strbuf_puts(html, "<p");+        S_render_sourcepos(node, html, options);+        cmark_strbuf_putc(html, '>');+      } else {+        cmark_strbuf_puts(html, "</p>\n");+      }+    }+    break; -	case CMARK_NODE_SOFTBREAK:-		if (options & CMARK_OPT_HARDBREAKS) {-			cmark_strbuf_puts(html, "<br />\n");-		} else {-			cmark_strbuf_putc(html, '\n');-		}-		break;+  case CMARK_NODE_TEXT:+    escape_html(html, node->as.literal.data, node->as.literal.len);+    break; -	case CMARK_NODE_CODE:-		cmark_strbuf_puts(html, "<code>");-		escape_html(html, node->as.literal.data, node->as.literal.len);-		cmark_strbuf_puts(html, "</code>");-		break;+  case CMARK_NODE_LINEBREAK:+    cmark_strbuf_puts(html, "<br />\n");+    break; -	case CMARK_NODE_INLINE_HTML:-		if (options & CMARK_OPT_SAFE) {-			cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");-		} else {-			cmark_strbuf_put(html, node->as.literal.data,-			                 node->as.literal.len);-		}-		break;+  case CMARK_NODE_SOFTBREAK:+    if (options & CMARK_OPT_HARDBREAKS) {+      cmark_strbuf_puts(html, "<br />\n");+    } else {+      cmark_strbuf_putc(html, '\n');+    }+    break; -	case CMARK_NODE_STRONG:-		if (entering) {-			cmark_strbuf_puts(html, "<strong>");-		} else {-			cmark_strbuf_puts(html, "</strong>");-		}-		break;+  case CMARK_NODE_CODE:+    cmark_strbuf_puts(html, "<code>");+    escape_html(html, node->as.literal.data, node->as.literal.len);+    cmark_strbuf_puts(html, "</code>");+    break; -	case CMARK_NODE_EMPH:-		if (entering) {-			cmark_strbuf_puts(html, "<em>");-		} else {-			cmark_strbuf_puts(html, "</em>");-		}-		break;+  case CMARK_NODE_INLINE_HTML:+    if (options & CMARK_OPT_SAFE) {+      cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");+    } else {+      cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);+    }+    break; -	case CMARK_NODE_LINK:-		if (entering) {-			cmark_strbuf_puts(html, "<a href=\"");-			if (!((options & CMARK_OPT_SAFE) &&-			      scan_dangerous_url(&node->as.link.url, 0))) {-				houdini_escape_href(html,-				                    node->as.link.url.data,-				                    node->as.link.url.len);+  case CMARK_NODE_STRONG:+    if (entering) {+      cmark_strbuf_puts(html, "<strong>");+    } else {+      cmark_strbuf_puts(html, "</strong>");+    }+    break; -			}-			if (node->as.link.title.len) {-				cmark_strbuf_puts(html, "\" title=\"");-				escape_html(html,-				            node->as.link.title.data,-				            node->as.link.title.len);-			}-			cmark_strbuf_puts(html, "\">");-		} else {-			cmark_strbuf_puts(html, "</a>");-		}-		break;+  case CMARK_NODE_EMPH:+    if (entering) {+      cmark_strbuf_puts(html, "<em>");+    } else {+      cmark_strbuf_puts(html, "</em>");+    }+    break; -	case CMARK_NODE_IMAGE:-		if (entering) {-			cmark_strbuf_puts(html, "<img src=\"");-			if (!((options & CMARK_OPT_SAFE) &&-			      scan_dangerous_url(&node->as.link.url, 0))) {-				houdini_escape_href(html,-				                    node->as.link.url.data,-				                    node->as.link.url.len);+  case CMARK_NODE_LINK:+    if (entering) {+      cmark_strbuf_puts(html, "<a href=\"");+      if (!((options & CMARK_OPT_SAFE) &&+            scan_dangerous_url(&node->as.link.url, 0))) {+        houdini_escape_href(html, node->as.link.url.data,+                            node->as.link.url.len);+      }+      if (node->as.link.title.len) {+        cmark_strbuf_puts(html, "\" title=\"");+        escape_html(html, node->as.link.title.data, node->as.link.title.len);+      }+      cmark_strbuf_puts(html, "\">");+    } else {+      cmark_strbuf_puts(html, "</a>");+    }+    break; -			}-			cmark_strbuf_puts(html, "\" alt=\"");-			state->plain = node;-		} else {-			if (node->as.link.title.len) {-				cmark_strbuf_puts(html, "\" title=\"");-				escape_html(html, node->as.link.title.data,-				            node->as.link.title.len);-			}+  case CMARK_NODE_IMAGE:+    if (entering) {+      cmark_strbuf_puts(html, "<img src=\"");+      if (!((options & CMARK_OPT_SAFE) &&+            scan_dangerous_url(&node->as.link.url, 0))) {+        houdini_escape_href(html, node->as.link.url.data,+                            node->as.link.url.len);+      }+      cmark_strbuf_puts(html, "\" alt=\"");+      state->plain = node;+    } else {+      if (node->as.link.title.len) {+        cmark_strbuf_puts(html, "\" title=\"");+        escape_html(html, node->as.link.title.data, node->as.link.title.len);+      } -			cmark_strbuf_puts(html, "\" />");-		}-		break;+      cmark_strbuf_puts(html, "\" />");+    }+    break; -	default:-		assert(false);-		break;-	}+  default:+    assert(false);+    break;+  } -	// cmark_strbuf_putc(html, 'x');-	return 1;+  // cmark_strbuf_putc(html, 'x');+  return 1; } -char *cmark_render_html(cmark_node *root, int options)-{-	char *result;-	cmark_strbuf html = GH_BUF_INIT;-	cmark_event_type ev_type;-	cmark_node *cur;-	struct render_state state = { &html, NULL };-	cmark_iter *iter = cmark_iter_new(root);+char *cmark_render_html(cmark_node *root, int options) {+  char *result;+  cmark_strbuf html = GH_BUF_INIT;+  cmark_event_type ev_type;+  cmark_node *cur;+  struct render_state state = {&html, NULL};+  cmark_iter *iter = cmark_iter_new(root); -	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {-		cur = cmark_iter_get_node(iter);-		S_render_node(cur, ev_type, &state, options);-	}-	result = (char *)cmark_strbuf_detach(&html);+  while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {+    cur = cmark_iter_get_node(iter);+    S_render_node(cur, ev_type, &state, options);+  }+  result = (char *)cmark_strbuf_detach(&html); -	cmark_iter_free(iter);-	return result;+  cmark_iter_free(iter);+  return result; }
cbits/inlines.c view
@@ -13,1230 +13,1157 @@ #include "scanners.h" #include "inlines.h" --static const char *EMDASH = "\xE2\x80\x94";-static const char *ENDASH = "\xE2\x80\x93";-static const char *ELLIPSES = "\xE2\x80\xA6";-static const char *LEFTDOUBLEQUOTE = "\xE2\x80\x9C";-static const char *RIGHTDOUBLEQUOTE = "\xE2\x80\x9D";-static const char *LEFTSINGLEQUOTE = "\xE2\x80\x98";-static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99";---// Macros for creating various kinds of simple.-#define make_str(s) make_literal(CMARK_NODE_TEXT, s)-#define make_code(s) make_literal(CMARK_NODE_CODE, s)-#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)-#define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)-#define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)-#define make_emph() make_simple(CMARK_NODE_EMPH)-#define make_strong() make_simple(CMARK_NODE_STRONG)--typedef struct delimiter {-	struct delimiter *previous;-	struct delimiter *next;-	cmark_node *inl_text;-	bufsize_t position;-	unsigned char delim_char;-	bool can_open;-	bool can_close;-	bool active;-} delimiter;--typedef struct {-	cmark_chunk input;-	bufsize_t pos;-	cmark_reference_map *refmap;-	delimiter *last_delim;-} subject;--static inline bool-S_is_line_end_char(char c)-{-	return (c == '\n' || c == '\r');-}--static delimiter*-S_insert_emph(subject *subj, delimiter *opener, delimiter *closer);--static int parse_inline(subject* subj, cmark_node * parent, int options);--static void subject_from_buf(subject *e, cmark_strbuf *buffer,-                             cmark_reference_map *refmap);-static bufsize_t subject_find_special_char(subject *subj, int options);--static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email)-{-	cmark_strbuf buf = GH_BUF_INIT;--	cmark_chunk_trim(url);--	if (url->len == 0) {-		cmark_chunk result = CMARK_CHUNK_EMPTY;-		return result;-	}--	if (is_email)-		cmark_strbuf_puts(&buf, "mailto:");--	houdini_unescape_html_f(&buf, url->data, url->len);-	return cmark_chunk_buf_detach(&buf);-}--static inline cmark_node *make_link(cmark_node *label, cmark_chunk *url, cmark_chunk *title)-{-	cmark_node* e = (cmark_node *)calloc(1, sizeof(*e));-	if(e != NULL) {-		e->type = CMARK_NODE_LINK;-		e->first_child   = label;-		e->last_child    = label;-		e->as.link.url   = *url;-		e->as.link.title = *title;-		e->next = NULL;-		label->parent = e;-	}-	return e;-}--static inline cmark_node* make_autolink(cmark_node* label, cmark_chunk url, int is_email)-{-	cmark_chunk clean_url = cmark_clean_autolink(&url, is_email);-	cmark_chunk title = CMARK_CHUNK_EMPTY;-	return make_link(label, &clean_url, &title);-}--// Create an inline with a literal string value.-static inline cmark_node* make_literal(cmark_node_type t, cmark_chunk s)-{-	cmark_node * e = (cmark_node *)calloc(1, sizeof(*e));-	if(e != NULL) {-		e->type = t;-		e->as.literal = s;-		e->next = NULL;-		e->prev = NULL;-		e->parent = NULL;-		e->first_child = NULL;-		e->last_child = NULL;-		// These fields aren't used for inlines:-		e->start_line = 0;-		e->start_column = 0;-		e->end_line = 0;-	}-	return e;-}--// Create an inline with no value.-static inline cmark_node* make_simple(cmark_node_type t)-{-	cmark_node* e = (cmark_node *)calloc(1, sizeof(*e));-	if(e != NULL) {-		e->type = t;-		e->next = NULL;-		e->prev = NULL;-		e->parent = NULL;-		e->first_child = NULL;-		e->last_child = NULL;-		// These fields aren't used for inlines:-		e->start_line = 0;-		e->start_column = 0;-		e->end_line = 0;-	}-	return e;-}--// 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_chunk *src)-{-	cmark_chunk c;-	bufsize_t len = src->len;--	c.len   = len;-	c.data  = (unsigned char *)malloc(len + 1);-	c.alloc = 1;-	memcpy(c.data, src->data, len);-	c.data[len] = '\0';--	return c;-}--static void subject_from_buf(subject *e, cmark_strbuf *buffer,-                             cmark_reference_map *refmap)-{-	e->input.data = buffer->ptr;-	e->input.len = buffer->size;-	e->input.alloc = 0;-	e->pos = 0;-	e->refmap = refmap;-	e->last_delim = NULL;-}--static inline int isbacktick(int c)-{-	return (c == '`');-}--static inline unsigned char peek_char(subject *subj)-{-	// NULL bytes should have been stripped out by now.  If they're-	// present, it's a programming error:-	assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0));-	return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0;-}--static inline unsigned char peek_at(subject *subj, bufsize_t pos)-{-	return subj->input.data[pos];-}--// Return true if there are more characters in the subject.-static inline int is_eof(subject* subj)-{-	return (subj->pos >= subj->input.len);-}--// Advance the subject.  Doesn't check for eof.-#define advance(subj) (subj)->pos += 1--static inline bool-skip_spaces(subject *subj)-{-	bool skipped = false;-	while (peek_char(subj) == ' ' || peek_char(subj) == '\t') {-		advance(subj);-		skipped = true;-	}-	return skipped;-}--static inline bool-skip_line_end(subject *subj)-{-	bool seen_line_end_char = false;-	if (peek_char(subj) == '\r') {-		advance(subj);-		seen_line_end_char = true;-	}-	if (peek_char(subj) == '\n') {-		advance(subj);-		seen_line_end_char = true;-	}-	return seen_line_end_char || is_eof(subj);-}--// Take characters while a predicate holds, and return a string.-static inline cmark_chunk take_while(subject* subj, int (*f)(int))-{-	unsigned char c;-	bufsize_t startpos = subj->pos;-	bufsize_t len = 0;--	while ((c = peek_char(subj)) && (*f)(c)) {-		advance(subj);-		len++;-	}--	return cmark_chunk_dup(&subj->input, startpos, len);-}--// Try to process a backtick code span that began with a-// span of ticks of length openticklength length (already-// parsed).  Return 0 if you don't find matching closing-// backticks, otherwise return the position in the subject-// after the closing backticks.-static bufsize_t scan_to_closing_backticks(subject* subj, bufsize_t openticklength)-{-	// read non backticks-	unsigned char c;-	while ((c = peek_char(subj)) && c != '`') {-		advance(subj);-	}-	if (is_eof(subj)) {-		return 0;  // did not find closing ticks, return 0-	}-	bufsize_t numticks = 0;-	while (peek_char(subj) == '`') {-		advance(subj);-		numticks++;-	}-	if (numticks != openticklength) {-		return(scan_to_closing_backticks(subj, openticklength));-	}-	return (subj->pos);-}--// Parse backtick code section or raw backticks, return an inline.-// Assumes that the subject has a backtick at the current position.-static cmark_node* handle_backticks(subject *subj)-{-	cmark_chunk openticks = take_while(subj, isbacktick);-	bufsize_t startpos = subj->pos;-	bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len);--	if (endpos == 0) { // not found-		subj->pos = startpos; // rewind-		return make_str(openticks);-	} else {-		cmark_strbuf buf = GH_BUF_INIT;--		cmark_strbuf_set(&buf, subj->input.data + startpos, endpos - startpos - openticks.len);-		cmark_strbuf_trim(&buf);-		cmark_strbuf_normalize_whitespace(&buf);--		return make_code(cmark_chunk_buf_detach(&buf));-	}-}--// Scan ***, **, or * and return number scanned, or 0.-// Advances position.-static int-scan_delims(subject* subj, unsigned char c, bool * can_open, bool * can_close)-{-	int numdelims = 0;-	bufsize_t before_char_pos;-	int32_t after_char = 0;-	int32_t before_char = 0;-	int len;-	bool left_flanking, right_flanking;--	if (subj->pos == 0) {-		before_char = 10;-	} else {-		before_char_pos = subj->pos - 1;-		// walk back to the beginning of the UTF_8 sequence:-		while (peek_at(subj, before_char_pos) >> 6 == 2 &&-		       before_char_pos > 0) {-			before_char_pos -= 1;-		}-		len = utf8proc_iterate(subj->input.data + before_char_pos,-		                       subj->pos - before_char_pos, &before_char);-		if (len == -1) {-			before_char = 10;-		}-	}--	if (c == '\'' || c == '"') {-		numdelims++;-		advance(subj);  // limit to 1 delim for quotes-	} else {-		while (peek_char(subj) == c) {-			numdelims++;-			advance(subj);-		}-	}--	len = utf8proc_iterate(subj->input.data + subj->pos,-	                       subj->input.len - subj->pos, &after_char);-	if (len == -1) {-		after_char = 10;-	}-	left_flanking = numdelims > 0 && !utf8proc_is_space(after_char) &&-	                !(utf8proc_is_punctuation(after_char) &&-	                  !utf8proc_is_space(before_char) &&-	                  !utf8proc_is_punctuation(before_char));-	right_flanking = numdelims > 0 && !utf8proc_is_space(before_char) &&-	                 !(utf8proc_is_punctuation(before_char) &&-	                   !utf8proc_is_space(after_char) &&-	                   !utf8proc_is_punctuation(after_char));-	if (c == '_') {-		*can_open = left_flanking &&-		            (!right_flanking || utf8proc_is_punctuation(before_char));-		*can_close = right_flanking &&-		             (!left_flanking || utf8proc_is_punctuation(after_char));-	} else if (c == '\'' || c == '"') {-		*can_open = left_flanking && !right_flanking;-		*can_close = right_flanking;-	} else {-		*can_open = left_flanking;-		*can_close = right_flanking;-	}-	return numdelims;-}--/*-static void print_delimiters(subject *subj)-{-	delimiter *delim;-	delim = subj->last_delim;-	while (delim != NULL) {-		printf("Item at stack pos %p, text pos %d: %d %d %d next(%p) prev(%p)\n",-		       (void*)delim, delim->position, delim->delim_char,-		       delim->can_open, delim->can_close,-		       (void*)delim->next, (void*)delim->previous);-		delim = delim->previous;-	}-}-*/--static void remove_delimiter(subject *subj, delimiter *delim)-{-	if (delim == NULL) return;-	if (delim->next == NULL) {-		// end of list:-		assert(delim == subj->last_delim);-		subj->last_delim = delim->previous;-	} else {-		delim->next->previous = delim->previous;-	}-	if (delim->previous != NULL) {-		delim->previous->next = delim->next;-	}-	free(delim);-}--static void push_delimiter(subject *subj, unsigned char c, bool can_open,-                           bool can_close, cmark_node *inl_text)-{-	delimiter *delim =-	    (delimiter*)malloc(sizeof(delimiter));-	if (delim == NULL) {-		return;-	}-	delim->delim_char = c;-	delim->can_open = can_open;-	delim->can_close = can_close;-	delim->inl_text = inl_text;-	delim->previous = subj->last_delim;-	delim->next = NULL;-	if (delim->previous != NULL) {-		delim->previous->next = delim;-	}-	delim->position = subj->pos;-	delim->active = true;-	subj->last_delim = delim;-}--// Assumes the subject has a c at the current position.-static cmark_node* handle_delim(subject* subj, unsigned char c, bool smart)-{-	bufsize_t numdelims;-	cmark_node * inl_text;-	bool can_open, can_close;-	cmark_chunk contents;--	numdelims = scan_delims(subj, c, &can_open, &can_close);--	if (c == '\'' && smart) {-		contents = cmark_chunk_literal(RIGHTSINGLEQUOTE);-	} else if (c == '"' && smart) {-		contents = cmark_chunk_literal(can_close ? RIGHTDOUBLEQUOTE : LEFTDOUBLEQUOTE);-	} else {-		contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims);-	}--	inl_text = make_str(contents);--	if ((can_open || can_close) &&-	    (!(c == '\'' || c == '"') || smart)) {-		push_delimiter(subj, c, can_open, can_close, inl_text);-	}--	return inl_text;-}--// Assumes we have a hyphen at the current position.-static cmark_node* handle_hyphen(subject* subj, bool smart)-{-	int startpos = subj->pos;--	advance(subj);--	if (!smart || peek_char(subj) != '-') {-		return make_str(cmark_chunk_literal("-"));-	}--	while (smart && peek_char(subj) == '-') {-		advance(subj);-	}--	int numhyphens = subj->pos - startpos;-	int en_count = 0;-	int em_count = 0;-	int i;-	cmark_strbuf buf = GH_BUF_INIT;--	if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes-		em_count = numhyphens / 3;-	} else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes-		en_count = numhyphens / 2;-	} else if (numhyphens % 3 == 2) { // use one en dash at end-		en_count = 1;-		em_count = (numhyphens - 2) / 3;-	} else { // use two en dashes at the end-		en_count = 2;-		em_count = (numhyphens - 4) / 3;-	}--	for (i = em_count; i > 0; i--) {-		cmark_strbuf_puts(&buf, EMDASH);-	}--	for (i = en_count; i > 0; i--) {-		cmark_strbuf_puts(&buf, ENDASH);-	}--	return make_str(cmark_chunk_buf_detach(&buf));-}--// Assumes we have a period at the current position.-static cmark_node* handle_period(subject* subj, bool smart)-{-	advance(subj);-	if (smart && peek_char(subj) == '.') {-		advance(subj);-		if (peek_char(subj) == '.') {-			advance(subj);-			return make_str(cmark_chunk_literal(ELLIPSES));-		} else {-			return make_str(cmark_chunk_literal(".."));-		}-	} else {-		return make_str(cmark_chunk_literal("."));-	}-}--static void process_emphasis(subject *subj, delimiter *stack_bottom)-{-	delimiter *closer = subj->last_delim;-	delimiter *opener;-	delimiter *old_closer;-	bool opener_found;-	delimiter *openers_bottom[128];--	// initialize openers_bottom:-	openers_bottom['*'] = stack_bottom;-	openers_bottom['_'] = stack_bottom;-	openers_bottom['\''] = stack_bottom;-	openers_bottom['"'] = stack_bottom;--	// move back to first relevant delim.-	while (closer != NULL && closer->previous != stack_bottom) {-		closer = closer->previous;-	}--	// now move forward, looking for closers, and handling each-	while (closer != NULL) {-		if (closer->can_close &&-		    (closer->delim_char == '*' || closer->delim_char == '_' ||-		     closer->delim_char == '"' || closer->delim_char == '\'')) {-			// Now look backwards for first matching opener:-			opener = closer->previous;-			opener_found = false;-			while (opener != NULL && opener != stack_bottom &&-			       opener != openers_bottom[closer->delim_char]) {-				if (opener->delim_char == closer->delim_char &&-				    opener->can_open) {-					opener_found = true;-					break;-				}-				opener = opener->previous;-			}-			old_closer = closer;-			if (closer->delim_char == '*' || closer->delim_char == '_') {-				if (opener_found) {-					closer = S_insert_emph(subj, opener, closer);-				} else {-					closer = closer->next;-				}-			} else if (closer->delim_char == '\'') {-				cmark_chunk_free(&closer->inl_text->as.literal);-				closer->inl_text->as.literal =-				    cmark_chunk_literal(RIGHTSINGLEQUOTE);-				if (opener_found) {-					cmark_chunk_free(&opener->inl_text->as.literal);-					opener->inl_text->as.literal =-					    cmark_chunk_literal(LEFTSINGLEQUOTE);-				}-				closer = closer->next;-			} else if (closer->delim_char == '"') {-				cmark_chunk_free(&closer->inl_text->as.literal);-				closer->inl_text->as.literal =-				    cmark_chunk_literal(RIGHTDOUBLEQUOTE);-				if (opener_found) {-					cmark_chunk_free(&opener->inl_text->as.literal);-					opener->inl_text->as.literal =-					    cmark_chunk_literal(LEFTDOUBLEQUOTE);-				}-				closer = closer->next;-			}-			if (!opener_found) {-				// set lower bound for future searches for openers:-				openers_bottom[old_closer->delim_char] = old_closer->previous;-				if (!old_closer->can_open) {-					// we can remove a closer that can't be an-					// opener, once we've seen there's no-					// matching opener:-					remove_delimiter(subj, old_closer);-				}-			}-		} else {-			closer = closer->next;-		}-	}-	// free all delimiters in list until stack_bottom:-	while (subj->last_delim != stack_bottom) {-		remove_delimiter(subj, subj->last_delim);-	}-}--static delimiter*-S_insert_emph(subject *subj, delimiter *opener, delimiter *closer)-{-	delimiter *delim, *tmp_delim;-	bufsize_t use_delims;-	cmark_node *opener_inl = opener->inl_text;-	cmark_node *closer_inl = closer->inl_text;-	bufsize_t opener_num_chars = opener_inl->as.literal.len;-	bufsize_t closer_num_chars = closer_inl->as.literal.len;-	cmark_node *tmp, *emph, *first_child, *last_child;--	// calculate the actual number of characters used from this closer-	if (closer_num_chars < 3 || opener_num_chars < 3) {-		use_delims = closer_num_chars <= opener_num_chars ?-		             closer_num_chars : opener_num_chars;-	} else { // closer and opener both have >= 3 characters-		use_delims = closer_num_chars % 2 == 0 ? 2 : 1;-	}--	// remove used characters from associated inlines.-	opener_num_chars -= use_delims;-	closer_num_chars -= use_delims;-	opener_inl->as.literal.len = opener_num_chars;-	closer_inl->as.literal.len = closer_num_chars;--	// free delimiters between opener and closer-	delim = closer->previous;-	while (delim != NULL && delim != opener) {-		tmp_delim = delim->previous;-		remove_delimiter(subj, delim);-		delim = tmp_delim;-	}--	first_child = opener_inl->next;-	last_child  = closer_inl->prev;--	// if opener has 0 characters, remove it and its associated inline-	if (opener_num_chars == 0) {-		// replace empty opener inline with emph-		cmark_chunk_free(&(opener_inl->as.literal));-		emph = opener_inl;-		emph->type = use_delims == 1 ? NODE_EMPH : NODE_STRONG;-		// remove opener from list-		remove_delimiter(subj, opener);-	} else {-		// create new emph or strong, and splice it in to our inlines-		// between the opener and closer-		emph = use_delims == 1 ? make_emph() : make_strong();-		emph->parent = opener_inl->parent;-		emph->prev = opener_inl;-		opener_inl->next = emph;-	}--	// push children below emph-	emph->next = closer_inl;-	closer_inl->prev = emph;-	emph->first_child = first_child;-	emph->last_child  = last_child;--	// fix children pointers-	first_child->prev = NULL;-	last_child->next  = NULL;-	for (tmp = first_child; tmp != NULL; tmp = tmp->next) {-		tmp->parent = emph;-	}--	// if closer has 0 characters, remove it and its associated inline-	if (closer_num_chars == 0) {-		// remove empty closer inline-		cmark_node_free(closer_inl);-		// remove closer from list-		tmp_delim = closer->next;-		remove_delimiter(subj, closer);-		closer = tmp_delim;-	}--	return closer;-}--// Parse backslash-escape or just a backslash, returning an inline.-static cmark_node* handle_backslash(subject *subj)-{-	advance(subj);-	unsigned char nextchar = peek_char(subj);-	if (cmark_ispunct(nextchar)) {  // only ascii symbols and newline can be escaped-		advance(subj);-		return make_str(cmark_chunk_dup(&subj->input, subj->pos - 1, 1));-	} else if (!is_eof(subj) && skip_line_end(subj)) {-		return make_linebreak();-	} else {-		return make_str(cmark_chunk_literal("\\"));-	}-}--// Parse an entity or a regular "&" string.-// Assumes the subject has an '&' character at the current position.-static cmark_node* handle_entity(subject* subj)-{-	cmark_strbuf ent = GH_BUF_INIT;-	bufsize_t len;--	advance(subj);--	len = houdini_unescape_ent(&ent,-	                           subj->input.data + subj->pos,-	                           subj->input.len - subj->pos-	                          );--	if (len == 0)-		return make_str(cmark_chunk_literal("&"));--	subj->pos += len;-	return make_str(cmark_chunk_buf_detach(&ent));-}--// Like make_str, but parses entities.-// Returns an inline sequence consisting of str and entity elements.-static cmark_node *make_str_with_entities(cmark_chunk *content)-{-	cmark_strbuf unescaped = GH_BUF_INIT;--	if (houdini_unescape_html(&unescaped, content->data, content->len)) {-		return make_str(cmark_chunk_buf_detach(&unescaped));-	} else {-		return make_str(*content);-	}-}--// Clean a URL: remove surrounding whitespace and surrounding <>,-// and remove \ that escape punctuation.-cmark_chunk cmark_clean_url(cmark_chunk *url)-{-	cmark_strbuf buf = GH_BUF_INIT;--	cmark_chunk_trim(url);--	if (url->len == 0) {-		cmark_chunk result = CMARK_CHUNK_EMPTY;-		return result;-	}--	if (url->data[0] == '<' && url->data[url->len - 1] == '>') {-		houdini_unescape_html_f(&buf, url->data + 1, url->len - 2);-	} else {-		houdini_unescape_html_f(&buf, url->data, url->len);-	}--	cmark_strbuf_unescape(&buf);-	return cmark_chunk_buf_detach(&buf);-}--cmark_chunk cmark_clean_title(cmark_chunk *title)-{-	cmark_strbuf buf = GH_BUF_INIT;-	unsigned char first, last;--	if (title->len == 0) {-		cmark_chunk result = CMARK_CHUNK_EMPTY;-		return result;-	}--	first = title->data[0];-	last = title->data[title->len - 1];--	// remove surrounding quotes if any:-	if ((first == '\'' && last == '\'') ||-	    (first == '(' && last == ')') ||-	    (first == '"' && last == '"')) {-		houdini_unescape_html_f(&buf, title->data + 1, title->len - 2);-	} else {-		houdini_unescape_html_f(&buf, title->data, title->len);-	}--	cmark_strbuf_unescape(&buf);-	return cmark_chunk_buf_detach(&buf);-}--// Parse an autolink or HTML tag.-// Assumes the subject has a '<' character at the current position.-static cmark_node* handle_pointy_brace(subject* subj)-{-	bufsize_t matchlen = 0;-	cmark_chunk contents;--	advance(subj);  // advance past first <--	// first try to match a URL autolink-	matchlen = scan_autolink_uri(&subj->input, subj->pos);-	if (matchlen > 0) {-		contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1);-		subj->pos += matchlen;--		return make_autolink(-		           make_str_with_entities(&contents),-		           contents, 0-		       );-	}--	// next try to match an email autolink-	matchlen = scan_autolink_email(&subj->input, subj->pos);-	if (matchlen > 0) {-		contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1);-		subj->pos += matchlen;--		return make_autolink(-		           make_str_with_entities(&contents),-		           contents, 1-		       );-	}--	// finally, try to match an html tag-	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;-		return make_raw_html(contents);-	}--	// if nothing matches, just return the opening <:-	return make_str(cmark_chunk_literal("<"));-}--// Parse a link label.  Returns 1 if successful.-// Note:  unescaped brackets are not allowed in labels.-// The label begins with `[` and ends with the first `]` character-// encountered.  Backticks in labels do not start code spans.-static int link_label(subject* subj, cmark_chunk *raw_label)-{-	bufsize_t startpos = subj->pos;-	int length = 0;-	unsigned char c;--	// advance past [-	if (peek_char(subj) == '[') {-		advance(subj);-	} else {-		return 0;-	}--	while ((c = peek_char(subj)) && c != '[' && c != ']') {-		if (c == '\\') {-			advance(subj);-			length++;-			if (cmark_ispunct(peek_char(subj))) {-				advance(subj);-				length++;-			}-		} else {-			advance(subj);-			length++;-		}-		if (length > MAX_LINK_LABEL_LENGTH) {-			goto noMatch;-		}-	}--	if (c == ']') { // match found-		*raw_label = cmark_chunk_dup(&subj->input, startpos + 1, subj->pos - (startpos + 1));-		cmark_chunk_trim(raw_label);-		advance(subj);  // advance past ]-		return 1;-	}--noMatch:-	subj->pos = startpos; // rewind-	return 0;--}--// Return a link, an image, or a literal close bracket.-static cmark_node* handle_close_bracket(subject* subj, cmark_node *parent)-{-	bufsize_t initial_pos;-	bufsize_t starturl, endurl, starttitle, endtitle, endall;-	bufsize_t n;-	bufsize_t sps;-	cmark_reference *ref;-	bool is_image = false;-	cmark_chunk url_chunk, title_chunk;-	cmark_chunk url, title;-	delimiter *opener;-	cmark_node *link_text;-	cmark_node *inl;-	cmark_chunk raw_label;-	int found_label;--	advance(subj);  // advance past ]-	initial_pos = subj->pos;--	// look through list of delimiters for a [ or !-	opener = subj->last_delim;-	while (opener) {-		if (opener->delim_char == '[' || opener->delim_char == '!') {-			break;-		}-		opener = opener->previous;-	}--	if (opener == NULL) {-		return make_str(cmark_chunk_literal("]"));-	}--	if (!opener->active) {-		// take delimiter off stack-		remove_delimiter(subj, opener);-		return make_str(cmark_chunk_literal("]"));-	}--	// If we got here, we matched a potential link/image text.-	is_image = opener->delim_char == '!';-	link_text = opener->inl_text->next;--	// Now we check to see if it's a link/image.--	// First, look for an inline link.-	if (peek_char(subj) == '(' &&-	    ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) &&-	    ((n = scan_link_url(&subj->input, subj->pos + 1 + sps)) > -1)) {--		// try to parse an explicit link:-		starturl = subj->pos + 1 + sps; // after (-		endurl = starturl + n;-		starttitle = endurl + scan_spacechars(&subj->input, endurl);--		// ensure there are spaces btw url and title-		endtitle = (starttitle == endurl) ? starttitle :-		           starttitle + scan_link_title(&subj->input, starttitle);--		endall = endtitle + scan_spacechars(&subj->input, endtitle);--		if (peek_at(subj, endall) == ')') {-			subj->pos = endall + 1;--			url_chunk = cmark_chunk_dup(&subj->input, starturl, endurl - starturl);-			title_chunk = cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle);-			url = cmark_clean_url(&url_chunk);-			title = cmark_clean_title(&title_chunk);-			cmark_chunk_free(&url_chunk);-			cmark_chunk_free(&title_chunk);-			goto match;--		} else {-			goto noMatch;-		}-	}--	// Next, look for a following [link label] that matches in refmap.-	// skip spaces-	subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos);-	raw_label = cmark_chunk_literal("");-	found_label = link_label(subj, &raw_label);-	if (!found_label || raw_label.len == 0) {-		cmark_chunk_free(&raw_label);-		raw_label = cmark_chunk_dup(&subj->input, opener->position,-		                            initial_pos - opener->position - 1);-	}--	if (!found_label) {-		// If we have a shortcut reference link, back up-		// to before the spacse we skipped.-		subj->pos = initial_pos;-	}--	ref = cmark_reference_lookup(subj->refmap, &raw_label);-	cmark_chunk_free(&raw_label);--	if (ref != NULL) { // found-		url   = chunk_clone(&ref->url);-		title = chunk_clone(&ref->title);-		goto match;-	} else {-		goto noMatch;-	}--noMatch:-	// If we fall through to here, it means we didn't match a link:-	remove_delimiter(subj, opener);  // remove this opener from delimiter list-	subj->pos = initial_pos;-	return make_str(cmark_chunk_literal("]"));--match:-	inl = opener->inl_text;-	inl->type = is_image ? NODE_IMAGE : NODE_LINK;-	cmark_chunk_free(&inl->as.literal);-	inl->first_child = link_text;-	process_emphasis(subj, opener);-	inl->as.link.url   = url;-	inl->as.link.title = title;-	inl->next = NULL;-	if (link_text) {-		cmark_node *tmp;-		link_text->prev = NULL;-		for (tmp = link_text; tmp->next != NULL; tmp = tmp->next) {-			tmp->parent = inl;-		}-		tmp->parent = inl;-		inl->last_child = tmp;-	}-	parent->last_child = inl;--	// 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-	// inside links.)-	remove_delimiter(subj, opener);-	if (!is_image) {-		opener = subj->last_delim;-		while (opener != NULL) {-			if (opener->delim_char == '[') {-				if (!opener->active) {-					break;-				} else {-					opener->active = false;-				}-			}-			opener = opener->previous;-		}-	}--	return NULL;-}--// Parse a hard or soft linebreak, returning an inline.-// Assumes the subject has a newline at the current position.-static cmark_node* handle_newline(subject *subj)-{-	bufsize_t nlpos = subj->pos;-	// skip over newline-	advance(subj);-	// skip spaces at beginning of line-	skip_spaces(subj);-	if (nlpos > 1 &&-	    peek_at(subj, nlpos - 1) == ' ' &&-	    peek_at(subj, nlpos - 2) == ' ') {-		return make_linebreak();-	} else {-		return make_softbreak();-	}-}--static bufsize_t subject_find_special_char(subject *subj, int options)-{-	// "\r\n\\`&_*[]<!"-	static const int8_t SPECIAL_CHARS[256] = {-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1,-		1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0-	};--	// " ' . --	static const char SMART_PUNCT_CHARS[] = {-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	};--	bufsize_t n = subj->pos + 1;--	while (n < subj->input.len) {-		if (SPECIAL_CHARS[subj->input.data[n]])-			return n;-		if (options & CMARK_OPT_SMART &&-		    SMART_PUNCT_CHARS[subj->input.data[n]])-			return n;-		n++;-	}--	return subj->input.len;-}--// Parse an inline, advancing subject, and add it as a child of parent.-// Return 0 if no inline can be parsed, 1 otherwise.-static int parse_inline(subject* subj, cmark_node * parent, int options)-{-	cmark_node* new_inl = NULL;-	cmark_chunk contents;-	unsigned char c;-	bufsize_t endpos;-	c = peek_char(subj);-	if (c == 0) {-		return 0;-	}-	switch(c) {-	case '\r':-	case '\n':-		new_inl = handle_newline(subj);-		break;-	case '`':-		new_inl = handle_backticks(subj);-		break;-	case '\\':-		new_inl = handle_backslash(subj);-		break;-	case '&':-		new_inl = handle_entity(subj);-		break;-	case '<':-		new_inl = handle_pointy_brace(subj);-		break;-	case '*':-	case '_':-	case '\'':-	case '"':-		new_inl = handle_delim(subj, c, options & CMARK_OPT_SMART);-		break;-	case '-':-		new_inl = handle_hyphen(subj, options & CMARK_OPT_SMART);-		break;-	case '.':-		new_inl = handle_period(subj, options & CMARK_OPT_SMART);-		break;-	case '[':-		advance(subj);-		new_inl = make_str(cmark_chunk_literal("["));-		push_delimiter(subj, '[', true, false, new_inl);-		break;-	case ']':-		new_inl = handle_close_bracket(subj, parent);-		break;-	case '!':-		advance(subj);-		if (peek_char(subj) == '[') {-			advance(subj);-			new_inl = make_str(cmark_chunk_literal("!["));-			push_delimiter(subj, '!', false, true, new_inl);-		} else {-			new_inl = make_str(cmark_chunk_literal("!"));-		}-		break;-	default:-		endpos = subject_find_special_char(subj, options);-		contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos);-		subj->pos = endpos;--		// if we're at a newline, strip trailing spaces.-		if (S_is_line_end_char(peek_char(subj))) {-			cmark_chunk_rtrim(&contents);-		}--		new_inl = make_str(contents);-	}-	if (new_inl != NULL) {-		cmark_node_append_child(parent, new_inl);-	}--	return 1;-}--// Parse inlines from parent's string_content, adding as children of parent.-extern void cmark_parse_inlines(cmark_node* parent, cmark_reference_map *refmap, int options)-{-	subject subj;-	subject_from_buf(&subj, &parent->string_content, refmap);-	cmark_chunk_rtrim(&subj.input);--	while (!is_eof(&subj) && parse_inline(&subj, parent, options)) ;--	process_emphasis(&subj, NULL);-}--// Parse zero or more space characters, including at most one newline.-static void spnl(subject* subj)-{-	skip_spaces(subj);-	if (skip_line_end(subj)) {-		skip_spaces(subj);-	}-}--// Parse reference.  Assumes string begins with '[' character.-// Modify refmap if a reference is encountered.-// Return 0 if no reference found, otherwise position of subject-// after reference is parsed.-bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, cmark_reference_map *refmap)-{-	subject subj;--	cmark_chunk lab;-	cmark_chunk url;-	cmark_chunk title;--	bufsize_t matchlen = 0;-	bufsize_t beforetitle;--	subject_from_buf(&subj, input, NULL);--	// parse label:-	if (!link_label(&subj, &lab) || lab.len == 0)-		return 0;--	// colon:-	if (peek_char(&subj) == ':') {-		advance(&subj);-	} else {-		return 0;-	}--	// parse link url:-	spnl(&subj);-	matchlen = scan_link_url(&subj.input, subj.pos);-	if (matchlen) {-		url = cmark_chunk_dup(&subj.input, subj.pos, matchlen);-		subj.pos += matchlen;-	} else {-		return 0;-	}--	// parse optional link_title-	beforetitle = subj.pos;-	spnl(&subj);-	matchlen = scan_link_title(&subj.input, subj.pos);-	if (matchlen) {-		title = cmark_chunk_dup(&subj.input, subj.pos, matchlen);-		subj.pos += matchlen;-	} else {-		subj.pos = beforetitle;-		title = cmark_chunk_literal("");-	}--	// parse final spaces and newline:-	skip_spaces(&subj);-	if (!skip_line_end(&subj)) {-		if (matchlen) { // try rewinding before title-			subj.pos = beforetitle;-			skip_spaces(&subj);-			if (!skip_line_end(&subj)) {-				return 0;-			}-		} else {-			return 0;-		}-	}-	// insert reference into refmap-	cmark_reference_create(refmap, &lab, &url, &title);-	return subj.pos;+static const char *EMDASH = "\xE2\x80\x94";+static const char *ENDASH = "\xE2\x80\x93";+static const char *ELLIPSES = "\xE2\x80\xA6";+static const char *LEFTDOUBLEQUOTE = "\xE2\x80\x9C";+static const char *RIGHTDOUBLEQUOTE = "\xE2\x80\x9D";+static const char *LEFTSINGLEQUOTE = "\xE2\x80\x98";+static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99";++// Macros for creating various kinds of simple.+#define make_str(s) make_literal(CMARK_NODE_TEXT, s)+#define make_code(s) make_literal(CMARK_NODE_CODE, s)+#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)+#define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)+#define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)+#define make_emph() make_simple(CMARK_NODE_EMPH)+#define make_strong() make_simple(CMARK_NODE_STRONG)++typedef struct delimiter {+  struct delimiter *previous;+  struct delimiter *next;+  cmark_node *inl_text;+  bufsize_t position;+  unsigned char delim_char;+  bool can_open;+  bool can_close;+  bool active;+} delimiter;++typedef struct {+  cmark_chunk input;+  bufsize_t pos;+  cmark_reference_map *refmap;+  delimiter *last_delim;+} subject;++static inline bool S_is_line_end_char(char c) {+  return (c == '\n' || c == '\r');+}++static delimiter *S_insert_emph(subject *subj, delimiter *opener,+                                delimiter *closer);++static int parse_inline(subject *subj, cmark_node *parent, int options);++static void subject_from_buf(subject *e, cmark_strbuf *buffer,+                             cmark_reference_map *refmap);+static bufsize_t subject_find_special_char(subject *subj, int options);++// Create an inline with a literal string value.+static inline cmark_node *make_literal(cmark_node_type t, cmark_chunk s) {+  cmark_node *e = (cmark_node *)calloc(1, sizeof(*e));+  if (e != NULL) {+    e->type = t;+    e->as.literal = s;+    e->next = NULL;+    e->prev = NULL;+    e->parent = NULL;+    e->first_child = NULL;+    e->last_child = NULL;+    // These fields aren't used for inlines:+    e->start_line = 0;+    e->start_column = 0;+    e->end_line = 0;+  }+  return e;+}++// Create an inline with no value.+static inline cmark_node *make_simple(cmark_node_type t) {+  cmark_node *e = (cmark_node *)calloc(1, sizeof(*e));+  if (e != NULL) {+    e->type = t;+    e->next = NULL;+    e->prev = NULL;+    e->parent = NULL;+    e->first_child = NULL;+    e->last_child = NULL;+    // These fields aren't used for inlines:+    e->start_line = 0;+    e->start_column = 0;+    e->end_line = 0;+  }+  return e;+}++// Like make_str, but parses entities.+static cmark_node *make_str_with_entities(cmark_chunk *content) {+  cmark_strbuf unescaped = GH_BUF_INIT;++  if (houdini_unescape_html(&unescaped, content->data, content->len)) {+    return make_str(cmark_chunk_buf_detach(&unescaped));+  } else {+    return make_str(*content);+  }+}++// 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_chunk *src) {+  cmark_chunk c;+  bufsize_t len = src->len;++  c.len = len;+  c.data = (unsigned char *)malloc(len + 1);+  c.alloc = 1;+  memcpy(c.data, src->data, len);+  c.data[len] = '\0';++  return c;+}++static cmark_chunk cmark_clean_autolink(cmark_chunk *url, int is_email) {+  cmark_strbuf buf = GH_BUF_INIT;++  cmark_chunk_trim(url);++  if (url->len == 0) {+    cmark_chunk result = CMARK_CHUNK_EMPTY;+    return result;+  }++  if (is_email)+    cmark_strbuf_puts(&buf, "mailto:");++  houdini_unescape_html_f(&buf, url->data, url->len);+  return cmark_chunk_buf_detach(&buf);+}++static inline cmark_node *make_autolink(cmark_chunk url, int is_email) {+  cmark_node *link = make_simple(CMARK_NODE_LINK);+  link->as.link.url = cmark_clean_autolink(&url, is_email);+  link->as.link.title = cmark_chunk_literal("");+  cmark_node_append_child(link, make_str_with_entities(&url));+  return link;+}++static void subject_from_buf(subject *e, cmark_strbuf *buffer,+                             cmark_reference_map *refmap) {+  e->input.data = buffer->ptr;+  e->input.len = buffer->size;+  e->input.alloc = 0;+  e->pos = 0;+  e->refmap = refmap;+  e->last_delim = NULL;+}++static inline int isbacktick(int c) { return (c == '`'); }++static inline unsigned char peek_char(subject *subj) {+  // NULL bytes should have been stripped out by now.  If they're+  // present, it's a programming error:+  assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0));+  return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0;+}++static inline unsigned char peek_at(subject *subj, bufsize_t pos) {+  return subj->input.data[pos];+}++// Return true if there are more characters in the subject.+static inline int is_eof(subject *subj) {+  return (subj->pos >= subj->input.len);+}++// Advance the subject.  Doesn't check for eof.+#define advance(subj) (subj)->pos += 1++static inline bool skip_spaces(subject *subj) {+  bool skipped = false;+  while (peek_char(subj) == ' ' || peek_char(subj) == '\t') {+    advance(subj);+    skipped = true;+  }+  return skipped;+}++static inline bool skip_line_end(subject *subj) {+  bool seen_line_end_char = false;+  if (peek_char(subj) == '\r') {+    advance(subj);+    seen_line_end_char = true;+  }+  if (peek_char(subj) == '\n') {+    advance(subj);+    seen_line_end_char = true;+  }+  return seen_line_end_char || is_eof(subj);+}++// Take characters while a predicate holds, and return a string.+static inline cmark_chunk take_while(subject *subj, int (*f)(int)) {+  unsigned char c;+  bufsize_t startpos = subj->pos;+  bufsize_t len = 0;++  while ((c = peek_char(subj)) && (*f)(c)) {+    advance(subj);+    len++;+  }++  return cmark_chunk_dup(&subj->input, startpos, len);+}++// Try to process a backtick code span that began with a+// span of ticks of length openticklength length (already+// parsed).  Return 0 if you don't find matching closing+// backticks, otherwise return the position in the subject+// after the closing backticks.+static bufsize_t scan_to_closing_backticks(subject *subj,+                                           bufsize_t openticklength) {+  // read non backticks+  unsigned char c;+  while ((c = peek_char(subj)) && c != '`') {+    advance(subj);+  }+  if (is_eof(subj)) {+    return 0; // did not find closing ticks, return 0+  }+  bufsize_t numticks = 0;+  while (peek_char(subj) == '`') {+    advance(subj);+    numticks++;+  }+  if (numticks != openticklength) {+    return (scan_to_closing_backticks(subj, openticklength));+  }+  return (subj->pos);+}++// Parse backtick code section or raw backticks, return an inline.+// Assumes that the subject has a backtick at the current position.+static cmark_node *handle_backticks(subject *subj) {+  cmark_chunk openticks = take_while(subj, isbacktick);+  bufsize_t startpos = subj->pos;+  bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len);++  if (endpos == 0) {      // not found+    subj->pos = startpos; // rewind+    return make_str(openticks);+  } else {+    cmark_strbuf buf = GH_BUF_INIT;++    cmark_strbuf_set(&buf, subj->input.data + startpos,+                     endpos - startpos - openticks.len);+    cmark_strbuf_trim(&buf);+    cmark_strbuf_normalize_whitespace(&buf);++    return make_code(cmark_chunk_buf_detach(&buf));+  }+}++// Scan ***, **, or * and return number scanned, or 0.+// Advances position.+static int scan_delims(subject *subj, unsigned char c, bool *can_open,+                       bool *can_close) {+  int numdelims = 0;+  bufsize_t before_char_pos;+  int32_t after_char = 0;+  int32_t before_char = 0;+  int len;+  bool left_flanking, right_flanking;++  if (subj->pos == 0) {+    before_char = 10;+  } else {+    before_char_pos = subj->pos - 1;+    // walk back to the beginning of the UTF_8 sequence:+    while (peek_at(subj, before_char_pos) >> 6 == 2 && before_char_pos > 0) {+      before_char_pos -= 1;+    }+    len = cmark_utf8proc_iterate(subj->input.data + before_char_pos,+                           subj->pos - before_char_pos, &before_char);+    if (len == -1) {+      before_char = 10;+    }+  }++  if (c == '\'' || c == '"') {+    numdelims++;+    advance(subj); // limit to 1 delim for quotes+  } else {+    while (peek_char(subj) == c) {+      numdelims++;+      advance(subj);+    }+  }++  len = cmark_utf8proc_iterate(subj->input.data + subj->pos,+                         subj->input.len - subj->pos, &after_char);+  if (len == -1) {+    after_char = 10;+  }+  left_flanking = numdelims > 0 && !cmark_utf8proc_is_space(after_char) &&+                  !(cmark_utf8proc_is_punctuation(after_char) &&+                    !cmark_utf8proc_is_space(before_char) &&+                    !cmark_utf8proc_is_punctuation(before_char));+  right_flanking =+      numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&+      !(cmark_utf8proc_is_punctuation(before_char) &&+        !cmark_utf8proc_is_space(after_char) && !cmark_utf8proc_is_punctuation(after_char));+  if (c == '_') {+    *can_open = left_flanking &&+                (!right_flanking || cmark_utf8proc_is_punctuation(before_char));+    *can_close = right_flanking &&+                 (!left_flanking || cmark_utf8proc_is_punctuation(after_char));+  } else if (c == '\'' || c == '"') {+    *can_open = left_flanking && !right_flanking;+    *can_close = right_flanking;+  } else {+    *can_open = left_flanking;+    *can_close = right_flanking;+  }+  return numdelims;+}++/*+static void print_delimiters(subject *subj)+{+        delimiter *delim;+        delim = subj->last_delim;+        while (delim != NULL) {+                printf("Item at stack pos %p, text pos %d: %d %d %d next(%p)+prev(%p)\n",+                       (void*)delim, delim->position, delim->delim_char,+                       delim->can_open, delim->can_close,+                       (void*)delim->next, (void*)delim->previous);+                delim = delim->previous;+        }+}+*/++static void remove_delimiter(subject *subj, delimiter *delim) {+  if (delim == NULL)+    return;+  if (delim->next == NULL) {+    // end of list:+    assert(delim == subj->last_delim);+    subj->last_delim = delim->previous;+  } else {+    delim->next->previous = delim->previous;+  }+  if (delim->previous != NULL) {+    delim->previous->next = delim->next;+  }+  free(delim);+}++static void push_delimiter(subject *subj, unsigned char c, bool can_open,+                           bool can_close, cmark_node *inl_text) {+  delimiter *delim = (delimiter *)malloc(sizeof(delimiter));+  if (delim == NULL) {+    return;+  }+  delim->delim_char = c;+  delim->can_open = can_open;+  delim->can_close = can_close;+  delim->inl_text = inl_text;+  delim->previous = subj->last_delim;+  delim->next = NULL;+  if (delim->previous != NULL) {+    delim->previous->next = delim;+  }+  delim->position = subj->pos;+  delim->active = true;+  subj->last_delim = delim;+}++// Assumes the subject has a c at the current position.+static cmark_node *handle_delim(subject *subj, unsigned char c, bool smart) {+  bufsize_t numdelims;+  cmark_node *inl_text;+  bool can_open, can_close;+  cmark_chunk contents;++  numdelims = scan_delims(subj, c, &can_open, &can_close);++  if (c == '\'' && smart) {+    contents = cmark_chunk_literal(RIGHTSINGLEQUOTE);+  } else if (c == '"' && smart) {+    contents =+        cmark_chunk_literal(can_close ? RIGHTDOUBLEQUOTE : LEFTDOUBLEQUOTE);+  } else {+    contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims);+  }++  inl_text = make_str(contents);++  if ((can_open || can_close) && (!(c == '\'' || c == '"') || smart)) {+    push_delimiter(subj, c, can_open, can_close, inl_text);+  }++  return inl_text;+}++// Assumes we have a hyphen at the current position.+static cmark_node *handle_hyphen(subject *subj, bool smart) {+  int startpos = subj->pos;++  advance(subj);++  if (!smart || peek_char(subj) != '-') {+    return make_str(cmark_chunk_literal("-"));+  }++  while (smart && peek_char(subj) == '-') {+    advance(subj);+  }++  int numhyphens = subj->pos - startpos;+  int en_count = 0;+  int em_count = 0;+  int i;+  cmark_strbuf buf = GH_BUF_INIT;++  if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes+    em_count = numhyphens / 3;+  } else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes+    en_count = numhyphens / 2;+  } else if (numhyphens % 3 == 2) { // use one en dash at end+    en_count = 1;+    em_count = (numhyphens - 2) / 3;+  } else { // use two en dashes at the end+    en_count = 2;+    em_count = (numhyphens - 4) / 3;+  }++  for (i = em_count; i > 0; i--) {+    cmark_strbuf_puts(&buf, EMDASH);+  }++  for (i = en_count; i > 0; i--) {+    cmark_strbuf_puts(&buf, ENDASH);+  }++  return make_str(cmark_chunk_buf_detach(&buf));+}++// Assumes we have a period at the current position.+static cmark_node *handle_period(subject *subj, bool smart) {+  advance(subj);+  if (smart && peek_char(subj) == '.') {+    advance(subj);+    if (peek_char(subj) == '.') {+      advance(subj);+      return make_str(cmark_chunk_literal(ELLIPSES));+    } else {+      return make_str(cmark_chunk_literal(".."));+    }+  } else {+    return make_str(cmark_chunk_literal("."));+  }+}++static void process_emphasis(subject *subj, delimiter *stack_bottom) {+  delimiter *closer = subj->last_delim;+  delimiter *opener;+  delimiter *old_closer;+  bool opener_found;+  delimiter *openers_bottom[128];++  // initialize openers_bottom:+  openers_bottom['*'] = stack_bottom;+  openers_bottom['_'] = stack_bottom;+  openers_bottom['\''] = stack_bottom;+  openers_bottom['"'] = stack_bottom;++  // move back to first relevant delim.+  while (closer != NULL && closer->previous != stack_bottom) {+    closer = closer->previous;+  }++  // now move forward, looking for closers, and handling each+  while (closer != NULL) {+    if (closer->can_close &&+        (closer->delim_char == '*' || closer->delim_char == '_' ||+         closer->delim_char == '"' || closer->delim_char == '\'')) {+      // Now look backwards for first matching opener:+      opener = closer->previous;+      opener_found = false;+      while (opener != NULL && opener != stack_bottom &&+             opener != openers_bottom[closer->delim_char]) {+        if (opener->delim_char == closer->delim_char && opener->can_open) {+          opener_found = true;+          break;+        }+        opener = opener->previous;+      }+      old_closer = closer;+      if (closer->delim_char == '*' || closer->delim_char == '_') {+        if (opener_found) {+          closer = S_insert_emph(subj, opener, closer);+        } else {+          closer = closer->next;+        }+      } else if (closer->delim_char == '\'') {+        cmark_chunk_free(&closer->inl_text->as.literal);+        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);+        if (opener_found) {+          cmark_chunk_free(&opener->inl_text->as.literal);+          opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);+        }+        closer = closer->next;+      } else if (closer->delim_char == '"') {+        cmark_chunk_free(&closer->inl_text->as.literal);+        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE);+        if (opener_found) {+          cmark_chunk_free(&opener->inl_text->as.literal);+          opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);+        }+        closer = closer->next;+      }+      if (!opener_found) {+        // set lower bound for future searches for openers:+        openers_bottom[old_closer->delim_char] = old_closer->previous;+        if (!old_closer->can_open) {+          // we can remove a closer that can't be an+          // opener, once we've seen there's no+          // matching opener:+          remove_delimiter(subj, old_closer);+        }+      }+    } else {+      closer = closer->next;+    }+  }+  // free all delimiters in list until stack_bottom:+  while (subj->last_delim != stack_bottom) {+    remove_delimiter(subj, subj->last_delim);+  }+}++static delimiter *S_insert_emph(subject *subj, delimiter *opener,+                                delimiter *closer) {+  delimiter *delim, *tmp_delim;+  bufsize_t use_delims;+  cmark_node *opener_inl = opener->inl_text;+  cmark_node *closer_inl = closer->inl_text;+  bufsize_t opener_num_chars = opener_inl->as.literal.len;+  bufsize_t closer_num_chars = closer_inl->as.literal.len;+  cmark_node *tmp, *emph, *first_child, *last_child;++  // calculate the actual number of characters used from this closer+  if (closer_num_chars < 3 || opener_num_chars < 3) {+    use_delims = closer_num_chars <= opener_num_chars ? closer_num_chars+                                                      : opener_num_chars;+  } else { // closer and opener both have >= 3 characters+    use_delims = closer_num_chars % 2 == 0 ? 2 : 1;+  }++  // remove used characters from associated inlines.+  opener_num_chars -= use_delims;+  closer_num_chars -= use_delims;+  opener_inl->as.literal.len = opener_num_chars;+  closer_inl->as.literal.len = closer_num_chars;++  // free delimiters between opener and closer+  delim = closer->previous;+  while (delim != NULL && delim != opener) {+    tmp_delim = delim->previous;+    remove_delimiter(subj, delim);+    delim = tmp_delim;+  }++  first_child = opener_inl->next;+  last_child = closer_inl->prev;++  // if opener has 0 characters, remove it and its associated inline+  if (opener_num_chars == 0) {+    // replace empty opener inline with emph+    cmark_chunk_free(&(opener_inl->as.literal));+    emph = opener_inl;+    emph->type = use_delims == 1 ? CMARK_NODE_EMPH : CMARK_NODE_STRONG;+    // remove opener from list+    remove_delimiter(subj, opener);+  } else {+    // create new emph or strong, and splice it in to our inlines+    // between the opener and closer+    emph = use_delims == 1 ? make_emph() : make_strong();+    emph->parent = opener_inl->parent;+    emph->prev = opener_inl;+    opener_inl->next = emph;+  }++  // push children below emph+  emph->next = closer_inl;+  closer_inl->prev = emph;+  emph->first_child = first_child;+  emph->last_child = last_child;++  // fix children pointers+  first_child->prev = NULL;+  last_child->next = NULL;+  for (tmp = first_child; tmp != NULL; tmp = tmp->next) {+    tmp->parent = emph;+  }++  // if closer has 0 characters, remove it and its associated inline+  if (closer_num_chars == 0) {+    // remove empty closer inline+    cmark_node_free(closer_inl);+    // remove closer from list+    tmp_delim = closer->next;+    remove_delimiter(subj, closer);+    closer = tmp_delim;+  }++  return closer;+}++// Parse backslash-escape or just a backslash, returning an inline.+static cmark_node *handle_backslash(subject *subj) {+  advance(subj);+  unsigned char nextchar = peek_char(subj);+  if (cmark_ispunct(+          nextchar)) { // only ascii symbols and newline can be escaped+    advance(subj);+    return make_str(cmark_chunk_dup(&subj->input, subj->pos - 1, 1));+  } else if (!is_eof(subj) && skip_line_end(subj)) {+    return make_linebreak();+  } else {+    return make_str(cmark_chunk_literal("\\"));+  }+}++// Parse an entity or a regular "&" string.+// Assumes the subject has an '&' character at the current position.+static cmark_node *handle_entity(subject *subj) {+  cmark_strbuf ent = GH_BUF_INIT;+  bufsize_t len;++  advance(subj);++  len = houdini_unescape_ent(&ent, subj->input.data + subj->pos,+                             subj->input.len - subj->pos);++  if (len == 0)+    return make_str(cmark_chunk_literal("&"));++  subj->pos += len;+  return make_str(cmark_chunk_buf_detach(&ent));+}++// Clean a URL: remove surrounding whitespace and surrounding <>,+// and remove \ that escape punctuation.+cmark_chunk cmark_clean_url(cmark_chunk *url) {+  cmark_strbuf buf = GH_BUF_INIT;++  cmark_chunk_trim(url);++  if (url->len == 0) {+    cmark_chunk result = CMARK_CHUNK_EMPTY;+    return result;+  }++  if (url->data[0] == '<' && url->data[url->len - 1] == '>') {+    houdini_unescape_html_f(&buf, url->data + 1, url->len - 2);+  } else {+    houdini_unescape_html_f(&buf, url->data, url->len);+  }++  cmark_strbuf_unescape(&buf);+  return cmark_chunk_buf_detach(&buf);+}++cmark_chunk cmark_clean_title(cmark_chunk *title) {+  cmark_strbuf buf = GH_BUF_INIT;+  unsigned char first, last;++  if (title->len == 0) {+    cmark_chunk result = CMARK_CHUNK_EMPTY;+    return result;+  }++  first = title->data[0];+  last = title->data[title->len - 1];++  // remove surrounding quotes if any:+  if ((first == '\'' && last == '\'') || (first == '(' && last == ')') ||+      (first == '"' && last == '"')) {+    houdini_unescape_html_f(&buf, title->data + 1, title->len - 2);+  } else {+    houdini_unescape_html_f(&buf, title->data, title->len);+  }++  cmark_strbuf_unescape(&buf);+  return cmark_chunk_buf_detach(&buf);+}++// Parse an autolink or HTML tag.+// Assumes the subject has a '<' character at the current position.+static cmark_node *handle_pointy_brace(subject *subj) {+  bufsize_t matchlen = 0;+  cmark_chunk contents;++  advance(subj); // advance past first <++  // first try to match a URL autolink+  matchlen = scan_autolink_uri(&subj->input, subj->pos);+  if (matchlen > 0) {+    contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1);+    subj->pos += matchlen;++    return make_autolink(contents, 0);+  }++  // next try to match an email autolink+  matchlen = scan_autolink_email(&subj->input, subj->pos);+  if (matchlen > 0) {+    contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1);+    subj->pos += matchlen;++    return make_autolink(contents, 1);+  }++  // finally, try to match an html tag+  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;+    return make_raw_html(contents);+  }++  // if nothing matches, just return the opening <:+  return make_str(cmark_chunk_literal("<"));+}++// Parse a link label.  Returns 1 if successful.+// Note:  unescaped brackets are not allowed in labels.+// The label begins with `[` and ends with the first `]` character+// encountered.  Backticks in labels do not start code spans.+static int link_label(subject *subj, cmark_chunk *raw_label) {+  bufsize_t startpos = subj->pos;+  int length = 0;+  unsigned char c;++  // advance past [+  if (peek_char(subj) == '[') {+    advance(subj);+  } else {+    return 0;+  }++  while ((c = peek_char(subj)) && c != '[' && c != ']') {+    if (c == '\\') {+      advance(subj);+      length++;+      if (cmark_ispunct(peek_char(subj))) {+        advance(subj);+        length++;+      }+    } else {+      advance(subj);+      length++;+    }+    if (length > MAX_LINK_LABEL_LENGTH) {+      goto noMatch;+    }+  }++  if (c == ']') { // match found+    *raw_label =+        cmark_chunk_dup(&subj->input, startpos + 1, subj->pos - (startpos + 1));+    cmark_chunk_trim(raw_label);+    advance(subj); // advance past ]+    return 1;+  }++noMatch:+  subj->pos = startpos; // rewind+  return 0;+}++// Return a link, an image, or a literal close bracket.+static cmark_node *handle_close_bracket(subject *subj, cmark_node *parent) {+  bufsize_t initial_pos;+  bufsize_t starturl, endurl, starttitle, endtitle, endall;+  bufsize_t n;+  bufsize_t sps;+  cmark_reference *ref;+  bool is_image = false;+  cmark_chunk url_chunk, title_chunk;+  cmark_chunk url, title;+  delimiter *opener;+  cmark_node *link_text;+  cmark_node *inl;+  cmark_chunk raw_label;+  int found_label;++  advance(subj); // advance past ]+  initial_pos = subj->pos;++  // look through list of delimiters for a [ or !+  opener = subj->last_delim;+  while (opener) {+    if (opener->delim_char == '[' || opener->delim_char == '!') {+      break;+    }+    opener = opener->previous;+  }++  if (opener == NULL) {+    return make_str(cmark_chunk_literal("]"));+  }++  if (!opener->active) {+    // take delimiter off stack+    remove_delimiter(subj, opener);+    return make_str(cmark_chunk_literal("]"));+  }++  // If we got here, we matched a potential link/image text.+  is_image = opener->delim_char == '!';+  link_text = opener->inl_text->next;++  // Now we check to see if it's a link/image.++  // First, look for an inline link.+  if (peek_char(subj) == '(' &&+      ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) &&+      ((n = scan_link_url(&subj->input, subj->pos + 1 + sps)) > -1)) {++    // try to parse an explicit link:+    starturl = subj->pos + 1 + sps; // after (+    endurl = starturl + n;+    starttitle = endurl + scan_spacechars(&subj->input, endurl);++    // ensure there are spaces btw url and title+    endtitle = (starttitle == endurl)+                   ? starttitle+                   : starttitle + scan_link_title(&subj->input, starttitle);++    endall = endtitle + scan_spacechars(&subj->input, endtitle);++    if (peek_at(subj, endall) == ')') {+      subj->pos = endall + 1;++      url_chunk = cmark_chunk_dup(&subj->input, starturl, endurl - starturl);+      title_chunk =+          cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle);+      url = cmark_clean_url(&url_chunk);+      title = cmark_clean_title(&title_chunk);+      cmark_chunk_free(&url_chunk);+      cmark_chunk_free(&title_chunk);+      goto match;++    } else {+      goto noMatch;+    }+  }++  // Next, look for a following [link label] that matches in refmap.+  // skip spaces+  subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos);+  raw_label = cmark_chunk_literal("");+  found_label = link_label(subj, &raw_label);+  if (!found_label || raw_label.len == 0) {+    cmark_chunk_free(&raw_label);+    raw_label = cmark_chunk_dup(&subj->input, opener->position,+                                initial_pos - opener->position - 1);+  }++  if (!found_label) {+    // If we have a shortcut reference link, back up+    // to before the spacse we skipped.+    subj->pos = initial_pos;+  }++  ref = cmark_reference_lookup(subj->refmap, &raw_label);+  cmark_chunk_free(&raw_label);++  if (ref != NULL) { // found+    url = chunk_clone(&ref->url);+    title = chunk_clone(&ref->title);+    goto match;+  } else {+    goto noMatch;+  }++noMatch:+  // If we fall through to here, it means we didn't match a link:+  remove_delimiter(subj, opener); // remove this opener from delimiter list+  subj->pos = initial_pos;+  return make_str(cmark_chunk_literal("]"));++match:+  inl = opener->inl_text;+  inl->type = is_image ? CMARK_NODE_IMAGE : CMARK_NODE_LINK;+  cmark_chunk_free(&inl->as.literal);+  inl->first_child = link_text;+  process_emphasis(subj, opener);+  inl->as.link.url = url;+  inl->as.link.title = title;+  inl->next = NULL;+  if (link_text) {+    cmark_node *tmp;+    link_text->prev = NULL;+    for (tmp = link_text; tmp->next != NULL; tmp = tmp->next) {+      tmp->parent = inl;+    }+    tmp->parent = inl;+    inl->last_child = tmp;+  }+  parent->last_child = inl;++  // 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+  // inside links.)+  remove_delimiter(subj, opener);+  if (!is_image) {+    opener = subj->last_delim;+    while (opener != NULL) {+      if (opener->delim_char == '[') {+        if (!opener->active) {+          break;+        } else {+          opener->active = false;+        }+      }+      opener = opener->previous;+    }+  }++  return NULL;+}++// Parse a hard or soft linebreak, returning an inline.+// Assumes the subject has a cr or newline at the current position.+static cmark_node *handle_newline(subject *subj) {+  bufsize_t nlpos = subj->pos;+  // skip over cr, crlf, or lf:+  if (peek_at(subj, subj->pos) == '\r') {+	  advance(subj);+  }+  if (peek_at(subj, subj->pos) == '\n') {+	  advance(subj);+  }+  // skip spaces at beginning of line+  skip_spaces(subj);+  if (nlpos > 1 && peek_at(subj, nlpos - 1) == ' ' &&+      peek_at(subj, nlpos - 2) == ' ') {+    return make_linebreak();+  } else {+    return make_softbreak();+  }+}++static bufsize_t subject_find_special_char(subject *subj, int options) {+  // "\r\n\\`&_*[]<!"+  static const int8_t SPECIAL_CHARS[256] = {+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1,+      1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};++  // " ' . -+  static const char SMART_PUNCT_CHARS[] = {+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+  };++  bufsize_t n = subj->pos + 1;++  while (n < subj->input.len) {+    if (SPECIAL_CHARS[subj->input.data[n]])+      return n;+    if (options & CMARK_OPT_SMART && SMART_PUNCT_CHARS[subj->input.data[n]])+      return n;+    n++;+  }++  return subj->input.len;+}++// Parse an inline, advancing subject, and add it as a child of parent.+// Return 0 if no inline can be parsed, 1 otherwise.+static int parse_inline(subject *subj, cmark_node *parent, int options) {+  cmark_node *new_inl = NULL;+  cmark_chunk contents;+  unsigned char c;+  bufsize_t endpos;+  c = peek_char(subj);+  if (c == 0) {+    return 0;+  }+  switch (c) {+  case '\r':+  case '\n':+    new_inl = handle_newline(subj);+    break;+  case '`':+    new_inl = handle_backticks(subj);+    break;+  case '\\':+    new_inl = handle_backslash(subj);+    break;+  case '&':+    new_inl = handle_entity(subj);+    break;+  case '<':+    new_inl = handle_pointy_brace(subj);+    break;+  case '*':+  case '_':+  case '\'':+  case '"':+    new_inl = handle_delim(subj, c, (options & CMARK_OPT_SMART) != 0);+    break;+  case '-':+    new_inl = handle_hyphen(subj, (options & CMARK_OPT_SMART) != 0);+    break;+  case '.':+    new_inl = handle_period(subj, (options & CMARK_OPT_SMART) != 0);+    break;+  case '[':+    advance(subj);+    new_inl = make_str(cmark_chunk_literal("["));+    push_delimiter(subj, '[', true, false, new_inl);+    break;+  case ']':+    new_inl = handle_close_bracket(subj, parent);+    break;+  case '!':+    advance(subj);+    if (peek_char(subj) == '[') {+      advance(subj);+      new_inl = make_str(cmark_chunk_literal("!["));+      push_delimiter(subj, '!', false, true, new_inl);+    } else {+      new_inl = make_str(cmark_chunk_literal("!"));+    }+    break;+  default:+    endpos = subject_find_special_char(subj, options);+    contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos);+    subj->pos = endpos;++    // if we're at a newline, strip trailing spaces.+    if (S_is_line_end_char(peek_char(subj))) {+      cmark_chunk_rtrim(&contents);+    }++    new_inl = make_str(contents);+  }+  if (new_inl != NULL) {+    cmark_node_append_child(parent, new_inl);+  }++  return 1;+}++// Parse inlines from parent's string_content, adding as children of parent.+extern void cmark_parse_inlines(cmark_node *parent, cmark_reference_map *refmap,+                                int options) {+  subject subj;+  subject_from_buf(&subj, &parent->string_content, refmap);+  cmark_chunk_rtrim(&subj.input);++  while (!is_eof(&subj) && parse_inline(&subj, parent, options))+    ;++  process_emphasis(&subj, NULL);+}++// Parse zero or more space characters, including at most one newline.+static void spnl(subject *subj) {+  skip_spaces(subj);+  if (skip_line_end(subj)) {+    skip_spaces(subj);+  }+}++// Parse reference.  Assumes string begins with '[' character.+// Modify refmap if a reference is encountered.+// Return 0 if no reference found, otherwise position of subject+// after reference is parsed.+bufsize_t cmark_parse_reference_inline(cmark_strbuf *input,+                                       cmark_reference_map *refmap) {+  subject subj;++  cmark_chunk lab;+  cmark_chunk url;+  cmark_chunk title;++  bufsize_t matchlen = 0;+  bufsize_t beforetitle;++  subject_from_buf(&subj, input, NULL);++  // parse label:+  if (!link_label(&subj, &lab) || lab.len == 0)+    return 0;++  // colon:+  if (peek_char(&subj) == ':') {+    advance(&subj);+  } else {+    return 0;+  }++  // parse link url:+  spnl(&subj);+  matchlen = scan_link_url(&subj.input, subj.pos);+  if (matchlen) {+    url = cmark_chunk_dup(&subj.input, subj.pos, matchlen);+    subj.pos += matchlen;+  } else {+    return 0;+  }++  // parse optional link_title+  beforetitle = subj.pos;+  spnl(&subj);+  matchlen = scan_link_title(&subj.input, subj.pos);+  if (matchlen) {+    title = cmark_chunk_dup(&subj.input, subj.pos, matchlen);+    subj.pos += matchlen;+  } else {+    subj.pos = beforetitle;+    title = cmark_chunk_literal("");+  }++  // parse final spaces and newline:+  skip_spaces(&subj);+  if (!skip_line_end(&subj)) {+    if (matchlen) { // try rewinding before title+      subj.pos = beforetitle;+      skip_spaces(&subj);+      if (!skip_line_end(&subj)) {+        return 0;+      }+    } else {+      return 0;+    }+  }+  // insert reference into refmap+  cmark_reference_create(refmap, &lab, &url, &title);+  return subj.pos; }
cbits/inlines.h view
@@ -8,9 +8,11 @@ cmark_chunk cmark_clean_url(cmark_chunk *url); cmark_chunk cmark_clean_title(cmark_chunk *title); -void cmark_parse_inlines(cmark_node* parent, cmark_reference_map *refmap, int options);+void cmark_parse_inlines(cmark_node *parent, cmark_reference_map *refmap,+                         int options); -bufsize_t cmark_parse_reference_inline(cmark_strbuf *input, cmark_reference_map *refmap);+bufsize_t cmark_parse_reference_inline(cmark_strbuf *input,+                                       cmark_reference_map *refmap);  #ifdef __cplusplus }
cbits/iterator.c view
@@ -7,142 +7,112 @@ #include "iterator.h"  static const int S_leaf_mask =-    (1 << CMARK_NODE_HTML)        |-    (1 << CMARK_NODE_HRULE)       |-    (1 << CMARK_NODE_CODE_BLOCK)  |-    (1 << CMARK_NODE_TEXT)        |-    (1 << CMARK_NODE_SOFTBREAK)   |-    (1 << CMARK_NODE_LINEBREAK)   |-    (1 << CMARK_NODE_CODE)        |-    (1 << CMARK_NODE_INLINE_HTML);+    (1 << CMARK_NODE_HTML) | (1 << CMARK_NODE_HRULE) |+    (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) |+    (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) |+    (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_INLINE_HTML); -cmark_iter*-cmark_iter_new(cmark_node *root)-{-	if (root == NULL) {-		return NULL;-	}-	cmark_iter *iter = (cmark_iter*)malloc(sizeof(cmark_iter));-	if (iter == NULL) {-		return NULL;-	}-	iter->root         = root;-	iter->cur.ev_type  = CMARK_EVENT_NONE;-	iter->cur.node     = NULL;-	iter->next.ev_type = CMARK_EVENT_ENTER;-	iter->next.node    = root;-	return iter;+cmark_iter *cmark_iter_new(cmark_node *root) {+  if (root == NULL) {+    return NULL;+  }+  cmark_iter *iter = (cmark_iter *)malloc(sizeof(cmark_iter));+  if (iter == NULL) {+    return NULL;+  }+  iter->root = root;+  iter->cur.ev_type = CMARK_EVENT_NONE;+  iter->cur.node = NULL;+  iter->next.ev_type = CMARK_EVENT_ENTER;+  iter->next.node = root;+  return iter; } -void-cmark_iter_free(cmark_iter *iter)-{-	free(iter);-}+void cmark_iter_free(cmark_iter *iter) { free(iter); } -static bool-S_is_leaf(cmark_node *node)-{-	return (1 << node->type) & S_leaf_mask;+static bool S_is_leaf(cmark_node *node) {+  return ((1 << node->type) & S_leaf_mask) != 0; } -cmark_event_type-cmark_iter_next(cmark_iter *iter)-{-	cmark_event_type  ev_type = iter->next.ev_type;-	cmark_node       *node    = iter->next.node;--	iter->cur.ev_type = ev_type;-	iter->cur.node    = node;+cmark_event_type cmark_iter_next(cmark_iter *iter) {+  cmark_event_type ev_type = iter->next.ev_type;+  cmark_node *node = iter->next.node; -	if (ev_type == CMARK_EVENT_DONE) {-		return ev_type;-	}+  iter->cur.ev_type = ev_type;+  iter->cur.node = node; -	/* roll forward to next item, setting both fields */-	if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) {-		if (node->first_child == NULL) {-			/* stay on this node but exit */-			iter->next.ev_type = CMARK_EVENT_EXIT;-		} else {-			iter->next.ev_type = CMARK_EVENT_ENTER;-			iter->next.node    = node->first_child;-		}-	} else if (node == iter->root) {-		/* don't move past root */-		iter->next.ev_type = CMARK_EVENT_DONE;-		iter->next.node    = NULL;-	} else if (node->next) {-		iter->next.ev_type = CMARK_EVENT_ENTER;-		iter->next.node    = node->next;-	} else if (node->parent) {-		iter->next.ev_type = CMARK_EVENT_EXIT;-		iter->next.node    = node->parent;-	} else {-		assert(false);-		iter->next.ev_type = CMARK_EVENT_DONE;-		iter->next.node    = NULL;-	}+  if (ev_type == CMARK_EVENT_DONE) {+    return ev_type;+  } -	return ev_type;-}+  /* roll forward to next item, setting both fields */+  if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) {+    if (node->first_child == NULL) {+      /* stay on this node but exit */+      iter->next.ev_type = CMARK_EVENT_EXIT;+    } else {+      iter->next.ev_type = CMARK_EVENT_ENTER;+      iter->next.node = node->first_child;+    }+  } else if (node == iter->root) {+    /* don't move past root */+    iter->next.ev_type = CMARK_EVENT_DONE;+    iter->next.node = NULL;+  } else if (node->next) {+    iter->next.ev_type = CMARK_EVENT_ENTER;+    iter->next.node = node->next;+  } else if (node->parent) {+    iter->next.ev_type = CMARK_EVENT_EXIT;+    iter->next.node = node->parent;+  } else {+    assert(false);+    iter->next.ev_type = CMARK_EVENT_DONE;+    iter->next.node = NULL;+  } -void-cmark_iter_reset(cmark_iter *iter, cmark_node *current,-                 cmark_event_type event_type)-{-	iter->next.ev_type = event_type;-	iter->next.node    = current;-	cmark_iter_next(iter);+  return ev_type; } -cmark_node*-cmark_iter_get_node(cmark_iter *iter)-{-	return iter->cur.node;+void cmark_iter_reset(cmark_iter *iter, cmark_node *current,+                      cmark_event_type event_type) {+  iter->next.ev_type = event_type;+  iter->next.node = current;+  cmark_iter_next(iter); } -cmark_event_type-cmark_iter_get_event_type(cmark_iter *iter)-{-	return iter->cur.ev_type;-}+cmark_node *cmark_iter_get_node(cmark_iter *iter) { return iter->cur.node; } -cmark_node*-cmark_iter_get_root(cmark_iter *iter)-{-	return iter->root;+cmark_event_type cmark_iter_get_event_type(cmark_iter *iter) {+  return iter->cur.ev_type; } +cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; } -void cmark_consolidate_text_nodes(cmark_node *root)-{-	cmark_iter *iter = cmark_iter_new(root);-	cmark_strbuf buf = GH_BUF_INIT;-	cmark_event_type ev_type;-	cmark_node *cur, *tmp, *next;+void cmark_consolidate_text_nodes(cmark_node *root) {+  cmark_iter *iter = cmark_iter_new(root);+  cmark_strbuf buf = GH_BUF_INIT;+  cmark_event_type ev_type;+  cmark_node *cur, *tmp, *next; -	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {-		cur = cmark_iter_get_node(iter);-		if (ev_type == CMARK_EVENT_ENTER &&-		    cur->type == CMARK_NODE_TEXT &&-		    cur->next &&-		    cur->next->type == CMARK_NODE_TEXT) {-			cmark_strbuf_clear(&buf);-			cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len);-			tmp = cur->next;-			while (tmp && tmp->type == CMARK_NODE_TEXT) {-				cmark_iter_next(iter); // advance pointer-				cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len);-				next = tmp->next;-				cmark_node_free(tmp);-				tmp = next;-			}-			cmark_chunk_free(&cur->as.literal);-			cur->as.literal = cmark_chunk_buf_detach(&buf);-		}-	}+  while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {+    cur = cmark_iter_get_node(iter);+    if (ev_type == CMARK_EVENT_ENTER && cur->type == CMARK_NODE_TEXT &&+        cur->next && cur->next->type == CMARK_NODE_TEXT) {+      cmark_strbuf_clear(&buf);+      cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len);+      tmp = cur->next;+      while (tmp && tmp->type == CMARK_NODE_TEXT) {+        cmark_iter_next(iter); // advance pointer+        cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len);+        next = tmp->next;+        cmark_node_free(tmp);+        tmp = next;+      }+      cmark_chunk_free(&cur->as.literal);+      cur->as.literal = cmark_chunk_buf_detach(&buf);+    }+  } -	cmark_strbuf_free(&buf);-	cmark_iter_free(iter);+  cmark_strbuf_free(&buf);+  cmark_iter_free(iter); }
cbits/iterator.h view
@@ -8,14 +8,14 @@ #include "cmark.h"  typedef struct {-	cmark_event_type  ev_type;-	cmark_node       *node;+  cmark_event_type ev_type;+  cmark_node *node; } cmark_iter_state;  struct cmark_iter {-	cmark_node       *root;-	cmark_iter_state  cur;-	cmark_iter_state  next;+  cmark_node *root;+  cmark_iter_state cur;+  cmark_iter_state next; };  #ifdef __cplusplus
cbits/latex.c view
@@ -18,413 +18,391 @@ #define CR() renderer->cr(renderer) #define BLANKLINE() renderer->blankline(renderer) -static inline void outc(cmark_renderer *renderer,-                        cmark_escaping escape,-                        int32_t c,-                        unsigned char nextc)-{-	if (escape == LITERAL) {-		cmark_render_code_point(renderer, c);-		return;-	}+static inline void outc(cmark_renderer *renderer, cmark_escaping escape,+                        int32_t c, unsigned char nextc) {+  if (escape == LITERAL) {+    cmark_render_code_point(renderer, c);+    return;+  } -	switch(c) {-	case 123: // '{'-	case 125: // '}'-	case 35: // '#'-	case 37: // '%'-	case 38: // '&'-		cmark_render_ascii(renderer, "\\");-		cmark_render_code_point(renderer, c);-		break;-	case 36: // '$'-	case 95: // '_'-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "\\");-		}-		cmark_render_code_point(renderer, c);-		break;-	case 45 : // '-'-		if (nextc == 45) { // prevent ligature-			cmark_render_ascii(renderer, "\\-");-		} else {-			cmark_render_ascii(renderer, "-");-		}-		break;-	case 126: // '~'-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "\\textasciitilde{}");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 94: // '^'-		cmark_render_ascii(renderer, "\\^{}");-		break;-	case 92: // '\\'-		if (escape == URL) {-			// / acts as path sep even on windows:-			cmark_render_ascii(renderer, "/");-		} else {-			cmark_render_ascii(renderer, "\\textbackslash{}");-		}-		break;-	case 124: // '|'-		cmark_render_ascii(renderer, "\\textbar{}");-		break;-	case 60: // '<'-		cmark_render_ascii(renderer, "\\textless{}");-		break;-	case 62: // '>'-		cmark_render_ascii(renderer, "\\textgreater{}");-		break;-	case 91: // '['-	case 93: // ']'-		cmark_render_ascii(renderer, "{");-		cmark_render_code_point(renderer, c);-		cmark_render_ascii(renderer, "}");-		break;-	case 34: // '"'-		cmark_render_ascii(renderer, "\\textquotedbl{}");-		// requires \usepackage[T1]{fontenc}-		break;-	case 39: // '\''-		cmark_render_ascii(renderer, "\\textquotesingle{}");-		// requires \usepackage{textcomp}-		break;-	case 160: // nbsp-		cmark_render_ascii(renderer, "~");-		break;-	case 8230: // hellip-		cmark_render_ascii(renderer, "\\ldots{}");-		break;-	case 8216: // lsquo-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "`");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 8217: // rsquo-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "\'");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 8220: // ldquo-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "``");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 8221: // rdquo-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "''");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 8212: // emdash-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "---");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 8211: // endash-		if (escape == NORMAL) {-			cmark_render_ascii(renderer, "--");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	default:-		cmark_render_code_point(renderer, c);-	}+  switch (c) {+  case 123: // '{'+  case 125: // '}'+  case 35:  // '#'+  case 37:  // '%'+  case 38:  // '&'+    cmark_render_ascii(renderer, "\\");+    cmark_render_code_point(renderer, c);+    break;+  case 36: // '$'+  case 95: // '_'+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "\\");+    }+    cmark_render_code_point(renderer, c);+    break;+  case 45:             // '-'+    if (nextc == 45) { // prevent ligature+      cmark_render_ascii(renderer, "\\-");+    } else {+      cmark_render_ascii(renderer, "-");+    }+    break;+  case 126: // '~'+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "\\textasciitilde{}");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 94: // '^'+    cmark_render_ascii(renderer, "\\^{}");+    break;+  case 92: // '\\'+    if (escape == URL) {+      // / acts as path sep even on windows:+      cmark_render_ascii(renderer, "/");+    } else {+      cmark_render_ascii(renderer, "\\textbackslash{}");+    }+    break;+  case 124: // '|'+    cmark_render_ascii(renderer, "\\textbar{}");+    break;+  case 60: // '<'+    cmark_render_ascii(renderer, "\\textless{}");+    break;+  case 62: // '>'+    cmark_render_ascii(renderer, "\\textgreater{}");+    break;+  case 91: // '['+  case 93: // ']'+    cmark_render_ascii(renderer, "{");+    cmark_render_code_point(renderer, c);+    cmark_render_ascii(renderer, "}");+    break;+  case 34: // '"'+    cmark_render_ascii(renderer, "\\textquotedbl{}");+    // requires \usepackage[T1]{fontenc}+    break;+  case 39: // '\''+    cmark_render_ascii(renderer, "\\textquotesingle{}");+    // requires \usepackage{textcomp}+    break;+  case 160: // nbsp+    cmark_render_ascii(renderer, "~");+    break;+  case 8230: // hellip+    cmark_render_ascii(renderer, "\\ldots{}");+    break;+  case 8216: // lsquo+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "`");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 8217: // rsquo+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "\'");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 8220: // ldquo+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "``");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 8221: // rdquo+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "''");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 8212: // emdash+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "---");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 8211: // endash+    if (escape == NORMAL) {+      cmark_render_ascii(renderer, "--");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  default:+    cmark_render_code_point(renderer, c);+  } } -typedef enum  {-	NO_LINK,-	URL_AUTOLINK,-	EMAIL_AUTOLINK,-	NORMAL_LINK-} link_type;+typedef enum { NO_LINK, URL_AUTOLINK, EMAIL_AUTOLINK, NORMAL_LINK } link_type; -static link_type-get_link_type(cmark_node *node)-{-	size_t title_len, url_len;-	cmark_node *link_text;-	char *realurl;-	int realurllen;-	bool isemail = false;+static link_type get_link_type(cmark_node *node) {+  size_t title_len, url_len;+  cmark_node *link_text;+  char *realurl;+  int realurllen;+  bool isemail = false; -	if (node->type != CMARK_NODE_LINK) {-		return NO_LINK;-	}+  if (node->type != CMARK_NODE_LINK) {+    return NO_LINK;+  } -	const char* url = cmark_node_get_url(node);-	cmark_chunk url_chunk = cmark_chunk_literal(url);+  const char *url = cmark_node_get_url(node);+  cmark_chunk url_chunk = cmark_chunk_literal(url); -	url_len = safe_strlen(url);-	if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) {-		return NO_LINK;-	}+  url_len = safe_strlen(url);+  if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) {+    return NO_LINK;+  } -	const char* title = cmark_node_get_title(node);-	title_len = safe_strlen(title);-	// if it has a title, we can't treat it as an autolink:-	if (title_len > 0) {-		return NORMAL_LINK;-	}+  const char *title = cmark_node_get_title(node);+  title_len = safe_strlen(title);+  // if it has a title, we can't treat it as an autolink:+  if (title_len > 0) {+    return NORMAL_LINK;+  } -	link_text = node->first_child;-	cmark_consolidate_text_nodes(link_text);-	realurl = (char*)url;-	realurllen = url_len;-	if (strncmp(realurl, "mailto:", 7) == 0) {-		realurl += 7;-		realurllen -= 7;-		isemail = true;-	}-	if (realurllen == link_text->as.literal.len &&-	    strncmp(realurl,-	            (char*)link_text->as.literal.data,-	            link_text->as.literal.len) == 0) {-		if (isemail) {-			return EMAIL_AUTOLINK;-		} else {-			return URL_AUTOLINK;-		}-	} else {-		return NORMAL_LINK;-	}+  link_text = node->first_child;+  cmark_consolidate_text_nodes(link_text);+  realurl = (char *)url;+  realurllen = url_len;+  if (strncmp(realurl, "mailto:", 7) == 0) {+    realurl += 7;+    realurllen -= 7;+    isemail = true;+  }+  if (realurllen == link_text->as.literal.len &&+      strncmp(realurl, (char *)link_text->as.literal.data,+              link_text->as.literal.len) == 0) {+    if (isemail) {+      return EMAIL_AUTOLINK;+    } else {+      return URL_AUTOLINK;+    }+  } else {+    return NORMAL_LINK;+  } } -static int-S_get_enumlevel(cmark_node *node)-{-	int enumlevel = 0;-	cmark_node *tmp = node;-	while (tmp) {-		if (tmp->type == CMARK_NODE_LIST &&-		    cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) {-			enumlevel++;-		}-		tmp = tmp->parent;-	}-	return enumlevel;+static int S_get_enumlevel(cmark_node *node) {+  int enumlevel = 0;+  cmark_node *tmp = node;+  while (tmp) {+    if (tmp->type == CMARK_NODE_LIST &&+        cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) {+      enumlevel++;+    }+    tmp = tmp->parent;+  }+  return enumlevel; } -static int-S_render_node(cmark_renderer *renderer,-              cmark_node *node,-              cmark_event_type ev_type,-              int options)-{-	int list_number;-	char list_number_string[20];-	bool entering = (ev_type == CMARK_EVENT_ENTER);-	cmark_list_type list_type;-	const char* roman_numerals[] = { "", "i", "ii", "iii", "iv", "v",-	                                 "vi", "vii", "viii", "ix", "x"-	                               };+static int S_render_node(cmark_renderer *renderer, cmark_node *node,+                         cmark_event_type ev_type, int options) {+  int list_number;+  char list_number_string[20];+  bool entering = (ev_type == CMARK_EVENT_ENTER);+  cmark_list_type list_type;+  const char *roman_numerals[] = {"",   "i",   "ii",   "iii", "iv", "v",+                                  "vi", "vii", "viii", "ix",  "x"}; -	// avoid warning about unused parameter:-	(void)(options);+  // avoid warning about unused parameter:+  (void)(options); -	switch (node->type) {-	case CMARK_NODE_DOCUMENT:-		break;+  switch (node->type) {+  case CMARK_NODE_DOCUMENT:+    break; -	case CMARK_NODE_BLOCK_QUOTE:-		if (entering) {-			LIT("\\begin{quote}");-			CR();-		} else {-			LIT("\\end{quote}");-			BLANKLINE();-		}-		break;+  case CMARK_NODE_BLOCK_QUOTE:+    if (entering) {+      LIT("\\begin{quote}");+      CR();+    } else {+      LIT("\\end{quote}");+      BLANKLINE();+    }+    break; -	case CMARK_NODE_LIST:-		list_type = cmark_node_get_list_type(node);-		if (entering) {-			LIT("\\begin{");-			LIT(list_type == CMARK_ORDERED_LIST ?-			    "enumerate" : "itemize");-			LIT("}");-			CR();-			list_number = cmark_node_get_list_start(node);-			if (list_number > 1) {-				sprintf(list_number_string,-				        "%d", list_number);-				LIT("\\setcounter{enum");-				LIT((char *)roman_numerals[S_get_enumlevel(node)]);-				LIT("}{");-				OUT(list_number_string, false, NORMAL);-				LIT("}");-				CR();-			}-		} else {-			LIT("\\end{");-			LIT(list_type == CMARK_ORDERED_LIST ?-			    "enumerate" : "itemize");-			LIT("}");-			BLANKLINE();-		}-		break;+  case CMARK_NODE_LIST:+    list_type = cmark_node_get_list_type(node);+    if (entering) {+      LIT("\\begin{");+      LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize");+      LIT("}");+      CR();+      list_number = cmark_node_get_list_start(node);+      if (list_number > 1) {+        sprintf(list_number_string, "%d", list_number);+        LIT("\\setcounter{enum");+        LIT((char *)roman_numerals[S_get_enumlevel(node)]);+        LIT("}{");+        OUT(list_number_string, false, NORMAL);+        LIT("}");+        CR();+      }+    } else {+      LIT("\\end{");+      LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize");+      LIT("}");+      BLANKLINE();+    }+    break; -	case CMARK_NODE_ITEM:-		if (entering) {-			LIT("\\item ");-		} else {-			CR();-		}-		break;+  case CMARK_NODE_ITEM:+    if (entering) {+      LIT("\\item ");+    } else {+      CR();+    }+    break; -	case CMARK_NODE_HEADER:-		if (entering) {-			switch (cmark_node_get_header_level(node)) {-			case 1:-				LIT("\\section");-				break;-			case 2:-				LIT("\\subsection");-				break;-			case 3:-				LIT("\\subsubsection");-				break;-			case 4:-				LIT("\\paragraph");-				break;-			case 5:-				LIT("\\subparagraph");-				break;-			}-			LIT("{");-		} else {-			LIT("}");-			BLANKLINE();-		}-		break;+  case CMARK_NODE_HEADER:+    if (entering) {+      switch (cmark_node_get_header_level(node)) {+      case 1:+        LIT("\\section");+        break;+      case 2:+        LIT("\\subsection");+        break;+      case 3:+        LIT("\\subsubsection");+        break;+      case 4:+        LIT("\\paragraph");+        break;+      case 5:+        LIT("\\subparagraph");+        break;+      }+      LIT("{");+    } else {+      LIT("}");+      BLANKLINE();+    }+    break; -	case CMARK_NODE_CODE_BLOCK:-		CR();-		LIT("\\begin{verbatim}");-		CR();-		OUT(cmark_node_get_literal(node), false, LITERAL);-		CR();-		LIT("\\end{verbatim}");-		BLANKLINE();-		break;+  case CMARK_NODE_CODE_BLOCK:+    CR();+    LIT("\\begin{verbatim}");+    CR();+    OUT(cmark_node_get_literal(node), false, LITERAL);+    CR();+    LIT("\\end{verbatim}");+    BLANKLINE();+    break; -	case CMARK_NODE_HTML:-		break;+  case CMARK_NODE_HTML:+    break; -	case CMARK_NODE_HRULE:-		BLANKLINE();-		LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");-		BLANKLINE();-		break;+  case CMARK_NODE_HRULE:+    BLANKLINE();+    LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");+    BLANKLINE();+    break; -	case CMARK_NODE_PARAGRAPH:-		if (!entering) {-			BLANKLINE();-		}-		break;+  case CMARK_NODE_PARAGRAPH:+    if (!entering) {+      BLANKLINE();+    }+    break; -	case CMARK_NODE_TEXT:-		OUT(cmark_node_get_literal(node), true, NORMAL);-		break;+  case CMARK_NODE_TEXT:+    OUT(cmark_node_get_literal(node), true, NORMAL);+    break; -	case CMARK_NODE_LINEBREAK:-		LIT("\\\\");-		CR();-		break;+  case CMARK_NODE_LINEBREAK:+    LIT("\\\\");+    CR();+    break; -	case CMARK_NODE_SOFTBREAK:-		if (renderer->width == 0) {-			CR();-		} else {-			OUT(" ", true, NORMAL);-		}-		break;+  case CMARK_NODE_SOFTBREAK:+    if (renderer->width == 0) {+      CR();+    } else {+      OUT(" ", true, NORMAL);+    }+    break; -	case CMARK_NODE_CODE:-		LIT("\\texttt{");-		OUT(cmark_node_get_literal(node), false, NORMAL);-		LIT("}");-		break;+  case CMARK_NODE_CODE:+    LIT("\\texttt{");+    OUT(cmark_node_get_literal(node), false, NORMAL);+    LIT("}");+    break; -	case CMARK_NODE_INLINE_HTML:-		break;+  case CMARK_NODE_INLINE_HTML:+    break; -	case CMARK_NODE_STRONG:-		if (entering) {-			LIT("\\textbf{");-		} else {-			LIT("}");-		}-		break;+  case CMARK_NODE_STRONG:+    if (entering) {+      LIT("\\textbf{");+    } else {+      LIT("}");+    }+    break; -	case CMARK_NODE_EMPH:-		if (entering) {-			LIT("\\emph{");-		} else {-			LIT("}");-		}-		break;+  case CMARK_NODE_EMPH:+    if (entering) {+      LIT("\\emph{");+    } else {+      LIT("}");+    }+    break; -	case CMARK_NODE_LINK:-		if (entering) {-			const char* url = cmark_node_get_url(node);-			// requires \usepackage{hyperref}-			switch(get_link_type(node)) {-			case URL_AUTOLINK:-				LIT("\\url{");-				OUT(url, false, URL);-				break;-			case EMAIL_AUTOLINK:-				LIT("\\href{");-				OUT(url, false, URL);-				LIT("}\\nolinkurl{");-				break;-			case NORMAL_LINK:-				LIT("\\href{");-				OUT(url, false, URL);-				LIT("}{");-				break;-			case NO_LINK:-				LIT("{");  // error?-			}-		} else {-			LIT("}");-		}+  case CMARK_NODE_LINK:+    if (entering) {+      const char *url = cmark_node_get_url(node);+      // requires \usepackage{hyperref}+      switch (get_link_type(node)) {+      case URL_AUTOLINK:+        LIT("\\url{");+        OUT(url, false, URL);+        break;+      case EMAIL_AUTOLINK:+        LIT("\\href{");+        OUT(url, false, URL);+        LIT("}\\nolinkurl{");+        break;+      case NORMAL_LINK:+        LIT("\\href{");+        OUT(url, false, URL);+        LIT("}{");+        break;+      case NO_LINK:+        LIT("{"); // error?+      }+    } else {+      LIT("}");+    } -		break;+    break; -	case CMARK_NODE_IMAGE:-		if (entering) {-			LIT("\\protect\\includegraphics{");-			// requires \include{graphicx}-			OUT(cmark_node_get_url(node), false, URL);-			LIT("}");-			return 0;-		}-		break;+  case CMARK_NODE_IMAGE:+    if (entering) {+      LIT("\\protect\\includegraphics{");+      // requires \include{graphicx}+      OUT(cmark_node_get_url(node), false, URL);+      LIT("}");+      return 0;+    }+    break; -	default:-		assert(false);-		break;-	}+  default:+    assert(false);+    break;+  } -	return 1;+  return 1; } -char *cmark_render_latex(cmark_node *root, int options, int width)-{-	return cmark_render(root, options, width, outc, S_render_node);+char *cmark_render_latex(cmark_node *root, int options, int width) {+  return cmark_render(root, options, width, outc, S_render_node); }
cbits/man.c view
@@ -16,234 +16,220 @@ #define BLANKLINE() renderer->blankline(renderer)  // Functions to convert cmark_nodes to groff man strings.-static-void S_outc(cmark_renderer *renderer,-            cmark_escaping escape,-            int32_t c,-            unsigned char nextc)-{-	(void)(nextc);+static void S_outc(cmark_renderer *renderer, cmark_escaping escape, int32_t c,+                   unsigned char nextc) {+  (void)(nextc); -	if (escape == LITERAL) {-		cmark_render_code_point(renderer, c);-		return;-	}+  if (escape == LITERAL) {+    cmark_render_code_point(renderer, c);+    return;+  } -	switch(c) {-	case 46:-		if (renderer->begin_line) {-			cmark_render_ascii(renderer, "\\&.");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 39:-		if (renderer->begin_line) {-			cmark_render_ascii(renderer, "\\&'");-		} else {-			cmark_render_code_point(renderer, c);-		}-		break;-	case 45:-		cmark_render_ascii(renderer, "\\-");-		break;-	case 92:-		cmark_render_ascii(renderer, "\\e");-		break;-	case 8216: // left single quote-		cmark_render_ascii(renderer, "\\[oq]");-		break;-	case 8217: // right single quote-		cmark_render_ascii(renderer, "\\[cq]");-		break;-	case 8220: // left double quote-		cmark_render_ascii(renderer, "\\[lq]");-		break;-	case 8221: // right double quote-		cmark_render_ascii(renderer, "\\[rq]");-		break;-	case 8212: // em dash-		cmark_render_ascii(renderer, "\\[em]");-		break;-	case 8211: // en dash-		cmark_render_ascii(renderer, "\\[en]");-		break;-	default:-		cmark_render_code_point(renderer, c);-	}+  switch (c) {+  case 46:+    if (renderer->begin_line) {+      cmark_render_ascii(renderer, "\\&.");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 39:+    if (renderer->begin_line) {+      cmark_render_ascii(renderer, "\\&'");+    } else {+      cmark_render_code_point(renderer, c);+    }+    break;+  case 45:+    cmark_render_ascii(renderer, "\\-");+    break;+  case 92:+    cmark_render_ascii(renderer, "\\e");+    break;+  case 8216: // left single quote+    cmark_render_ascii(renderer, "\\[oq]");+    break;+  case 8217: // right single quote+    cmark_render_ascii(renderer, "\\[cq]");+    break;+  case 8220: // left double quote+    cmark_render_ascii(renderer, "\\[lq]");+    break;+  case 8221: // right double quote+    cmark_render_ascii(renderer, "\\[rq]");+    break;+  case 8212: // em dash+    cmark_render_ascii(renderer, "\\[em]");+    break;+  case 8211: // en dash+    cmark_render_ascii(renderer, "\\[en]");+    break;+  default:+    cmark_render_code_point(renderer, c);+  } } -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);+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); -	// avoid unused parameter error:-	(void)(options);+  // avoid unused parameter error:+  (void)(options); -	switch (node->type) {-	case CMARK_NODE_DOCUMENT:-		break;+  switch (node->type) {+  case CMARK_NODE_DOCUMENT:+    break; -	case CMARK_NODE_BLOCK_QUOTE:-		if (entering) {-			CR();-			LIT(".RS");-			CR();-		} else {-			CR();-			LIT(".RE");-			CR();-		}-		break;+  case CMARK_NODE_BLOCK_QUOTE:+    if (entering) {+      CR();+      LIT(".RS");+      CR();+    } else {+      CR();+      LIT(".RE");+      CR();+    }+    break; -	case CMARK_NODE_LIST:-		break;+  case CMARK_NODE_LIST:+    break; -	case CMARK_NODE_ITEM:-		if (entering) {-			CR();-			LIT(".IP ");-			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;-				}-				char list_number_s[20];-				sprintf(list_number_s, "\"%d.\" 4", list_number);-				LIT(list_number_s);-			}-			CR();-		} else {-			CR();-		}-		break;+  case CMARK_NODE_ITEM:+    if (entering) {+      CR();+      LIT(".IP ");+      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;+        }+        char list_number_s[20];+        sprintf(list_number_s, "\"%d.\" 4", list_number);+        LIT(list_number_s);+      }+      CR();+    } else {+      CR();+    }+    break; -	case CMARK_NODE_HEADER:-		if (entering) {-			CR();-			LIT(cmark_node_get_header_level(node) == 1 ?-			    ".SH" : ".SS");-			CR();-		} else {-			CR();-		}-		break;+  case CMARK_NODE_HEADER:+    if (entering) {+      CR();+      LIT(cmark_node_get_header_level(node) == 1 ? ".SH" : ".SS");+      CR();+    } else {+      CR();+    }+    break; -	case CMARK_NODE_CODE_BLOCK:-		CR();-		LIT(".IP\n.nf\n\\f[C]\n");-		OUT(cmark_node_get_literal(node),-		    false,-		    NORMAL);-		CR();-		LIT("\\f[]\n.fi");-		CR();-		break;+  case CMARK_NODE_CODE_BLOCK:+    CR();+    LIT(".IP\n.nf\n\\f[C]\n");+    OUT(cmark_node_get_literal(node), false, NORMAL);+    CR();+    LIT("\\f[]\n.fi");+    CR();+    break; -	case CMARK_NODE_HTML:-		break;+  case CMARK_NODE_HTML:+    break; -	case CMARK_NODE_HRULE:-		CR();-		LIT(".PP\n  *  *  *  *  *");-		CR();-		break;+  case CMARK_NODE_HRULE:+    CR();+    LIT(".PP\n  *  *  *  *  *");+    CR();+    break; -	case CMARK_NODE_PARAGRAPH:-		if (entering) {-			// no blank line if first paragraph in list:-			if (node->parent &&-			    node->parent->type == CMARK_NODE_ITEM &&-			    node->prev == NULL) {-				// no blank line or .PP-			} else {-				CR();-				LIT(".PP");-				CR();-			}-		} else {-			CR();-		}-		break;+  case CMARK_NODE_PARAGRAPH:+    if (entering) {+      // no blank line if first paragraph in list:+      if (node->parent && node->parent->type == CMARK_NODE_ITEM &&+          node->prev == NULL) {+        // no blank line or .PP+      } else {+        CR();+        LIT(".PP");+        CR();+      }+    } else {+      CR();+    }+    break; -	case CMARK_NODE_TEXT:-		OUT(cmark_node_get_literal(node), true, NORMAL);-		break;+  case CMARK_NODE_TEXT:+    OUT(cmark_node_get_literal(node), true, NORMAL);+    break; -	case CMARK_NODE_LINEBREAK:-		LIT(".PD 0\n.P\n.PD");-		CR();-		break;+  case CMARK_NODE_LINEBREAK:+    LIT(".PD 0\n.P\n.PD");+    CR();+    break; -	case CMARK_NODE_SOFTBREAK:-		if (renderer->width == 0) {-			CR();-		} else {-			OUT(" ", true, LITERAL);-		}-		break;+  case CMARK_NODE_SOFTBREAK:+    if (renderer->width == 0) {+      CR();+    } else {+      OUT(" ", true, LITERAL);+    }+    break; -	case CMARK_NODE_CODE:-		LIT("\\f[C]");-		OUT(cmark_node_get_literal(node), true, NORMAL);-		LIT("\\f[]");-		break;+  case CMARK_NODE_CODE:+    LIT("\\f[C]");+    OUT(cmark_node_get_literal(node), true, NORMAL);+    LIT("\\f[]");+    break; -	case CMARK_NODE_INLINE_HTML:-		break;+  case CMARK_NODE_INLINE_HTML:+    break; -	case CMARK_NODE_STRONG:-		if (entering) {-			LIT("\\f[B]");-		} else {-			LIT("\\f[]");-		}-		break;+  case CMARK_NODE_STRONG:+    if (entering) {+      LIT("\\f[B]");+    } else {+      LIT("\\f[]");+    }+    break; -	case CMARK_NODE_EMPH:-		if (entering) {-			LIT("\\f[I]");-		} else {-			LIT("\\f[]");-		}-		break;+  case CMARK_NODE_EMPH:+    if (entering) {+      LIT("\\f[I]");+    } else {+      LIT("\\f[]");+    }+    break; -	case CMARK_NODE_LINK:-		if (!entering) {-			LIT(" (");-			OUT(cmark_node_get_url(node), true, URL);-			LIT(")");-		}-		break;+  case CMARK_NODE_LINK:+    if (!entering) {+      LIT(" (");+      OUT(cmark_node_get_url(node), true, URL);+      LIT(")");+    }+    break; -	case CMARK_NODE_IMAGE:-		if (entering) {-			LIT("[IMAGE: ");-		} else {-			LIT("]");-		}-		break;+  case CMARK_NODE_IMAGE:+    if (entering) {+      LIT("[IMAGE: ");+    } else {+      LIT("]");+    }+    break; -	default:-		assert(false);-		break;-	}+  default:+    assert(false);+    break;+  } -	return 1;+  return 1; } -char *cmark_render_man(cmark_node *root, int options, int width)-{-	return cmark_render(root, options, width, S_outc, S_render_node);+char *cmark_render_man(cmark_node *root, int options, int width) {+  return cmark_render(root, options, width, S_outc, S_render_node); }
cbits/node.c view
@@ -4,855 +4,762 @@ #include "config.h" #include "node.h" -static void-S_node_unlink(cmark_node *node);--static inline bool-S_is_block(cmark_node *node)-{-	if (node == NULL) {-		return false;-	}-	return node->type >= CMARK_NODE_FIRST_BLOCK-	       && node->type <= CMARK_NODE_LAST_BLOCK;-}--static inline bool-S_is_inline(cmark_node *node)-{-	if (node == NULL) {-		return false;-	}-	return node->type >= CMARK_NODE_FIRST_INLINE-	       && node->type <= CMARK_NODE_LAST_INLINE;-}--static bool-S_can_contain(cmark_node *node, cmark_node *child)-{-	cmark_node *cur;--	if (node == NULL || child == NULL) {-		return false;-	}--	// 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 (child->type == CMARK_NODE_DOCUMENT) {-		return false;-	}--	switch (node->type) {-	case CMARK_NODE_DOCUMENT:-	case CMARK_NODE_BLOCK_QUOTE:-	case CMARK_NODE_ITEM:-		return S_is_block(child)-		       && child->type != CMARK_NODE_ITEM;--	case CMARK_NODE_LIST:-		return child->type == CMARK_NODE_ITEM;--	case CMARK_NODE_PARAGRAPH:-	case CMARK_NODE_HEADER:-	case CMARK_NODE_EMPH:-	case CMARK_NODE_STRONG:-	case CMARK_NODE_LINK:-	case CMARK_NODE_IMAGE:-		return S_is_inline(child);--	default:-		break;-	}--	return false;-}--cmark_node*-cmark_node_new(cmark_node_type type)-{-	cmark_node *node = (cmark_node *)calloc(1, sizeof(*node));-	node->type = type;--	switch (node->type) {-	case CMARK_NODE_HEADER:-		node->as.header.level = 1;-		break;--	case CMARK_NODE_LIST: {-		cmark_list *list = &node->as.list;-		list->list_type = CMARK_BULLET_LIST;-		list->start     = 1;-		list->tight     = false;-		break;-	}--	default:-		break;-	}--	return node;-}--// Free a cmark_node list and any children.-static-void S_free_nodes(cmark_node *e)-{-	cmark_node *next;-	while (e != NULL) {-		if (S_is_block(e)) {-			cmark_strbuf_free(&e->string_content);-		}-		switch (e->type) {-		case NODE_CODE_BLOCK:-			cmark_chunk_free(&e->as.code.info);-			cmark_chunk_free(&e->as.code.literal);-			break;-		case NODE_TEXT:-		case NODE_INLINE_HTML:-		case NODE_CODE:-		case NODE_HTML:-			cmark_chunk_free(&e->as.literal);-			break;-		case NODE_LINK:-		case NODE_IMAGE:-			cmark_chunk_free(&e->as.link.url);-			cmark_chunk_free(&e->as.link.title);-			break;-		default:-			break;-		}-		if (e->last_child) {-			// Splice children into list-			e->last_child->next = e->next;-			e->next = e->first_child;-		}-		next = e->next;-		free(e);-		e = next;-	}-}--void-cmark_node_free(cmark_node *node)-{-	S_node_unlink(node);-	node->next = NULL;-	S_free_nodes(node);-}--cmark_node_type-cmark_node_get_type(cmark_node *node)-{-	if (node == NULL) {-		return CMARK_NODE_NONE;-	} else {-		return node->type;-	}-}--const char*-cmark_node_get_type_string(cmark_node *node)-{-	if (node == NULL) {-		return "NONE";-	}--	switch (node->type) {-	case CMARK_NODE_NONE:-		return "none";-	case CMARK_NODE_DOCUMENT:-		return "document";-	case CMARK_NODE_BLOCK_QUOTE:-		return "block_quote";-	case CMARK_NODE_LIST:-		return "list";-	case CMARK_NODE_ITEM:-		return "item";-	case CMARK_NODE_CODE_BLOCK:-		return "code_block";-	case CMARK_NODE_HTML:-		return "html";-	case CMARK_NODE_PARAGRAPH:-		return "paragraph";-	case CMARK_NODE_HEADER:-		return "header";-	case CMARK_NODE_HRULE:-		return "hrule";-	case CMARK_NODE_TEXT:-		return "text";-	case CMARK_NODE_SOFTBREAK:-		return "softbreak";-	case CMARK_NODE_LINEBREAK:-		return "linebreak";-	case CMARK_NODE_CODE:-		return "code";-	case CMARK_NODE_INLINE_HTML:-		return "inline_html";-	case CMARK_NODE_EMPH:-		return "emph";-	case CMARK_NODE_STRONG:-		return "strong";-	case CMARK_NODE_LINK:-		return "link";-	case CMARK_NODE_IMAGE:-		return "image";-	}--	return "<unknown>";-}--cmark_node*-cmark_node_next(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->next;-	}-}--cmark_node*-cmark_node_previous(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->prev;-	}-}--cmark_node*-cmark_node_parent(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->parent;-	}-}--cmark_node*-cmark_node_first_child(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->first_child;-	}-}--cmark_node*-cmark_node_last_child(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->last_child;-	}-}--void*-cmark_node_get_user_data(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	} else {-		return node->user_data;-	}-}--int-cmark_node_set_user_data(cmark_node *node, void *user_data)-{-	if (node == NULL) {-		return 0;-	}-	node->user_data = user_data;-	return 1;-}--const char*-cmark_node_get_literal(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	}--	switch (node->type) {-	case NODE_HTML:-	case NODE_TEXT:-	case NODE_INLINE_HTML:-	case NODE_CODE:-		return cmark_chunk_to_cstr(&node->as.literal);--	case NODE_CODE_BLOCK:-		return cmark_chunk_to_cstr(&node->as.code.literal);--	default:-		break;-	}--	return NULL;-}--int-cmark_node_set_literal(cmark_node *node, const char *content)-{-	if (node == NULL) {-		return 0;-	}--	switch (node->type) {-	case NODE_HTML:-	case NODE_TEXT:-	case NODE_INLINE_HTML:-	case NODE_CODE:-		cmark_chunk_set_cstr(&node->as.literal, content);-		return 1;--	case NODE_CODE_BLOCK:-		cmark_chunk_set_cstr(&node->as.code.literal, content);-		return 1;--	default:-		break;-	}--	return 0;-}--int-cmark_node_get_header_level(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}--	switch (node->type) {-	case CMARK_NODE_HEADER:-		return node->as.header.level;--	default:-		break;-	}--	return 0;-}--int-cmark_node_set_header_level(cmark_node *node, int level)-{-	if (node == NULL || level < 1 || level > 6) {-		return 0;-	}--	switch (node->type) {-	case CMARK_NODE_HEADER:-		node->as.header.level = level;-		return 1;--	default:-		break;-	}--	return 0;-}--cmark_list_type-cmark_node_get_list_type(cmark_node *node)-{-	if (node == NULL) {-		return CMARK_NO_LIST;-	}--	if (node->type == CMARK_NODE_LIST) {-		return node->as.list.list_type;-	} else {-		return CMARK_NO_LIST;-	}-}--int-cmark_node_set_list_type(cmark_node *node, cmark_list_type type)-{-	if (!(type == CMARK_BULLET_LIST || type == CMARK_ORDERED_LIST)) {-		return 0;-	}--	if (node == NULL) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		node->as.list.list_type = type;-		return 1;-	} else {-		return 0;-	}-}--cmark_delim_type-cmark_node_get_list_delim(cmark_node *node)-{-	if (node == NULL) {-		return CMARK_NO_DELIM;-	}--	if (node->type == CMARK_NODE_LIST) {-		return node->as.list.delimiter;-	} else {-		return CMARK_NO_DELIM;-	}-}--int-cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim)-{-	if (!(delim == CMARK_PERIOD_DELIM || delim == CMARK_PAREN_DELIM)) {-		return 0;-	}--	if (node == NULL) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		node->as.list.delimiter = delim;-		return 1;-	} else {-		return 0;-	}-}--int-cmark_node_get_list_start(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		return node->as.list.start;-	} else {-		return 0;-	}-}--int-cmark_node_set_list_start(cmark_node *node, int start)-{-	if (node == NULL || start < 0) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		node->as.list.start = start;-		return 1;-	} else {-		return 0;-	}-}--int-cmark_node_get_list_tight(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		return node->as.list.tight;-	} else {-		return 0;-	}-}--int-cmark_node_set_list_tight(cmark_node *node, int tight)-{-	if (node == NULL) {-		return 0;-	}--	if (node->type == CMARK_NODE_LIST) {-		node->as.list.tight = tight;-		return 1;-	} else {-		return 0;-	}-}--const char*-cmark_node_get_fence_info(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	}--	if (node->type == NODE_CODE_BLOCK) {-		return cmark_chunk_to_cstr(&node->as.code.info);-	} else {-		return NULL;-	}-}--int-cmark_node_set_fence_info(cmark_node *node, const char *info)-{-	if (node == NULL) {-		return 0;-	}--	if (node->type == NODE_CODE_BLOCK) {-		cmark_chunk_set_cstr(&node->as.code.info, info);-		return 1;-	} else {-		return 0;-	}-}--const char*-cmark_node_get_url(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	}--	switch (node->type) {-	case NODE_LINK:-	case NODE_IMAGE:-		return cmark_chunk_to_cstr(&node->as.link.url);-	default:-		break;-	}--	return NULL;-}--int-cmark_node_set_url(cmark_node *node, const char *url)-{-	if (node == NULL) {-		return 0;-	}--	switch (node->type) {-	case NODE_LINK:-	case NODE_IMAGE:-		cmark_chunk_set_cstr(&node->as.link.url, url);-		return 1;-	default:-		break;-	}--	return 0;-}--const char*-cmark_node_get_title(cmark_node *node)-{-	if (node == NULL) {-		return NULL;-	}--	switch (node->type) {-	case NODE_LINK:-	case NODE_IMAGE:-		return cmark_chunk_to_cstr(&node->as.link.title);-	default:-		break;-	}--	return NULL;-}--int-cmark_node_set_title(cmark_node *node, const char *title)-{-	if (node == NULL) {-		return 0;-	}--	switch (node->type) {-	case NODE_LINK:-	case NODE_IMAGE:-		cmark_chunk_set_cstr(&node->as.link.title, title);-		return 1;-	default:-		break;-	}--	return 0;-}--int-cmark_node_get_start_line(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}-	return node->start_line;-}--int-cmark_node_get_start_column(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}-	return node->start_column;-}--int-cmark_node_get_end_line(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}-	return node->end_line;-}--int-cmark_node_get_end_column(cmark_node *node)-{-	if (node == NULL) {-		return 0;-	}-	return node->end_column;-}--// Unlink a node without adjusting its next, prev, and parent pointers.-static void-S_node_unlink(cmark_node *node)-{-	if (node == NULL) {-		return;-	}--	if (node->prev) {-		node->prev->next = node->next;-	}-	if (node->next) {-		node->next->prev = node->prev;-	}--	// Adjust first_child and last_child of parent.-	cmark_node *parent = node->parent;-	if (parent) {-		if (parent->first_child == node) {-			parent->first_child = node->next;-		}-		if (parent->last_child == node) {-			parent->last_child = node->prev;-		}-	}-}--void-cmark_node_unlink(cmark_node *node)-{-	S_node_unlink(node);--	node->next   = NULL;-	node->prev   = NULL;-	node->parent = NULL;--}--int-cmark_node_insert_before(cmark_node *node, cmark_node *sibling)-{-	if (node == NULL || sibling == NULL) {-		return 0;-	}--	if (!node->parent || !S_can_contain(node->parent, sibling)) {-		return 0;-	}--	S_node_unlink(sibling);--	cmark_node *old_prev = node->prev;--	// Insert 'sibling' between 'old_prev' and 'node'.-	if (old_prev) {-		old_prev->next = sibling;-	}-	sibling->prev = old_prev;-	sibling->next = node;-	node->prev    = sibling;--	// Set new parent.-	cmark_node *parent = node->parent;-	sibling->parent = parent;--	// Adjust first_child of parent if inserted as first child.-	if (parent && !old_prev) {-		parent->first_child = sibling;-	}--	return 1;-}--int-cmark_node_insert_after(cmark_node *node, cmark_node *sibling)-{-	if (node == NULL || sibling == NULL) {-		return 0;-	}--	if (!node->parent || !S_can_contain(node->parent, sibling)) {-		return 0;-	}--	S_node_unlink(sibling);--	cmark_node *old_next = node->next;--	// Insert 'sibling' between 'node' and 'old_next'.-	if (old_next) {-		old_next->prev = sibling;-	}-	sibling->next = old_next;-	sibling->prev = node;-	node->next    = sibling;--	// Set new parent.-	cmark_node *parent = node->parent;-	sibling->parent = parent;--	// Adjust last_child of parent if inserted as last child.-	if (parent && !old_next) {-		parent->last_child = sibling;-	}--	return 1;-}--int-cmark_node_prepend_child(cmark_node *node, cmark_node *child)-{-	if (!S_can_contain(node, child)) {-		return 0;-	}--	S_node_unlink(child);--	cmark_node *old_first_child = node->first_child;--	child->next       = old_first_child;-	child->prev       = NULL;-	child->parent     = node;-	node->first_child = child;--	if (old_first_child) {-		old_first_child->prev = child;-	} else {-		// Also set last_child if node previously had no children.-		node->last_child = child;-	}--	return 1;-}--int-cmark_node_append_child(cmark_node *node, cmark_node *child)-{-	if (!S_can_contain(node, child)) {-		return 0;-	}--	S_node_unlink(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;-	}--	return 1;-}--static void-S_print_error(FILE *out, cmark_node *node, const char *elem)-{-	if (out == NULL) {-		return;-	}-	fprintf(out, "Invalid '%s' in node type %s at %d:%d\n", elem,-	        cmark_node_get_type_string(node), node->start_line,-	        node->start_column);-}--int-cmark_node_check(cmark_node *node, FILE *out)-{-	cmark_node *cur;-	int errors = 0;--	if (!node) {-		return 0;-	}--	cur = node;-	while (true) {-		if (cur->first_child) {-			if (cur->first_child->prev != NULL) {-				S_print_error(out, cur->first_child, "prev");-				cur->first_child->prev = NULL;-				++errors;-			}-			if (cur->first_child->parent != cur) {-				S_print_error(out, cur->first_child, "parent");-				cur->first_child->parent = cur;-				++errors;-			}-			cur = cur->first_child;-			continue;-		}--next_sibling:-		if (cur == node) {-			break;-		}-		if (cur->next) {-			if (cur->next->prev != cur) {-				S_print_error(out, cur->next, "prev");-				cur->next->prev = cur;-				++errors;-			}-			if (cur->next->parent != cur->parent) {-				S_print_error(out, cur->next, "parent");-				cur->next->parent = cur->parent;-				++errors;-			}-			cur = cur->next;-			continue;-		}--		if (cur->parent->last_child != cur) {-			S_print_error(out, cur->parent, "last_child");-			cur->parent->last_child = cur;-			++errors;-		}-		cur = cur->parent;-		goto next_sibling;-	}--	return errors;+static void S_node_unlink(cmark_node *node);++static inline bool S_is_block(cmark_node *node) {+  if (node == NULL) {+    return false;+  }+  return node->type >= CMARK_NODE_FIRST_BLOCK &&+         node->type <= CMARK_NODE_LAST_BLOCK;+}++static inline bool S_is_inline(cmark_node *node) {+  if (node == NULL) {+    return false;+  }+  return node->type >= CMARK_NODE_FIRST_INLINE &&+         node->type <= CMARK_NODE_LAST_INLINE;+}++static bool S_can_contain(cmark_node *node, cmark_node *child) {+  cmark_node *cur;++  if (node == NULL || child == NULL) {+    return false;+  }++  // 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 (child->type == CMARK_NODE_DOCUMENT) {+    return false;+  }++  switch (node->type) {+  case CMARK_NODE_DOCUMENT:+  case CMARK_NODE_BLOCK_QUOTE:+  case CMARK_NODE_ITEM:+    return S_is_block(child) && child->type != CMARK_NODE_ITEM;++  case CMARK_NODE_LIST:+    return child->type == CMARK_NODE_ITEM;++  case CMARK_NODE_PARAGRAPH:+  case CMARK_NODE_HEADER:+  case CMARK_NODE_EMPH:+  case CMARK_NODE_STRONG:+  case CMARK_NODE_LINK:+  case CMARK_NODE_IMAGE:+    return S_is_inline(child);++  default:+    break;+  }++  return false;+}++cmark_node *cmark_node_new(cmark_node_type type) {+  cmark_node *node = (cmark_node *)calloc(1, sizeof(*node));+  node->type = type;++  switch (node->type) {+  case CMARK_NODE_HEADER:+    node->as.header.level = 1;+    break;++  case CMARK_NODE_LIST: {+    cmark_list *list = &node->as.list;+    list->list_type = CMARK_BULLET_LIST;+    list->start = 1;+    list->tight = false;+    break;+  }++  default:+    break;+  }++  return node;+}++// Free a cmark_node list and any children.+static void S_free_nodes(cmark_node *e) {+  cmark_node *next;+  while (e != NULL) {+    if (S_is_block(e)) {+      cmark_strbuf_free(&e->string_content);+    }+    switch (e->type) {+    case NODE_CODE_BLOCK:+      cmark_chunk_free(&e->as.code.info);+      cmark_chunk_free(&e->as.code.literal);+      break;+    case NODE_TEXT:+    case NODE_INLINE_HTML:+    case NODE_CODE:+    case NODE_HTML:+      cmark_chunk_free(&e->as.literal);+      break;+    case NODE_LINK:+    case NODE_IMAGE:+      cmark_chunk_free(&e->as.link.url);+      cmark_chunk_free(&e->as.link.title);+      break;+    default:+      break;+    }+    if (e->last_child) {+      // Splice children into list+      e->last_child->next = e->next;+      e->next = e->first_child;+    }+    next = e->next;+    free(e);+    e = next;+  }+}++void cmark_node_free(cmark_node *node) {+  S_node_unlink(node);+  node->next = NULL;+  S_free_nodes(node);+}++cmark_node_type cmark_node_get_type(cmark_node *node) {+  if (node == NULL) {+    return CMARK_NODE_NONE;+  } else {+    return node->type;+  }+}++const char *cmark_node_get_type_string(cmark_node *node) {+  if (node == NULL) {+    return "NONE";+  }++  switch (node->type) {+  case CMARK_NODE_NONE:+    return "none";+  case CMARK_NODE_DOCUMENT:+    return "document";+  case CMARK_NODE_BLOCK_QUOTE:+    return "block_quote";+  case CMARK_NODE_LIST:+    return "list";+  case CMARK_NODE_ITEM:+    return "item";+  case CMARK_NODE_CODE_BLOCK:+    return "code_block";+  case CMARK_NODE_HTML:+    return "html";+  case CMARK_NODE_PARAGRAPH:+    return "paragraph";+  case CMARK_NODE_HEADER:+    return "header";+  case CMARK_NODE_HRULE:+    return "hrule";+  case CMARK_NODE_TEXT:+    return "text";+  case CMARK_NODE_SOFTBREAK:+    return "softbreak";+  case CMARK_NODE_LINEBREAK:+    return "linebreak";+  case CMARK_NODE_CODE:+    return "code";+  case CMARK_NODE_INLINE_HTML:+    return "inline_html";+  case CMARK_NODE_EMPH:+    return "emph";+  case CMARK_NODE_STRONG:+    return "strong";+  case CMARK_NODE_LINK:+    return "link";+  case CMARK_NODE_IMAGE:+    return "image";+  }++  return "<unknown>";+}++cmark_node *cmark_node_next(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->next;+  }+}++cmark_node *cmark_node_previous(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->prev;+  }+}++cmark_node *cmark_node_parent(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->parent;+  }+}++cmark_node *cmark_node_first_child(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->first_child;+  }+}++cmark_node *cmark_node_last_child(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->last_child;+  }+}++void *cmark_node_get_user_data(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  } else {+    return node->user_data;+  }+}++int cmark_node_set_user_data(cmark_node *node, void *user_data) {+  if (node == NULL) {+    return 0;+  }+  node->user_data = user_data;+  return 1;+}++const char *cmark_node_get_literal(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  }++  switch (node->type) {+  case NODE_HTML:+  case NODE_TEXT:+  case NODE_INLINE_HTML:+  case NODE_CODE:+    return cmark_chunk_to_cstr(&node->as.literal);++  case NODE_CODE_BLOCK:+    return cmark_chunk_to_cstr(&node->as.code.literal);++  default:+    break;+  }++  return NULL;+}++int cmark_node_set_literal(cmark_node *node, const char *content) {+  if (node == NULL) {+    return 0;+  }++  switch (node->type) {+  case NODE_HTML:+  case NODE_TEXT:+  case NODE_INLINE_HTML:+  case NODE_CODE:+    cmark_chunk_set_cstr(&node->as.literal, content);+    return 1;++  case NODE_CODE_BLOCK:+    cmark_chunk_set_cstr(&node->as.code.literal, content);+    return 1;++  default:+    break;+  }++  return 0;+}++int cmark_node_get_header_level(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }++  switch (node->type) {+  case CMARK_NODE_HEADER:+    return node->as.header.level;++  default:+    break;+  }++  return 0;+}++int cmark_node_set_header_level(cmark_node *node, int level) {+  if (node == NULL || level < 1 || level > 6) {+    return 0;+  }++  switch (node->type) {+  case CMARK_NODE_HEADER:+    node->as.header.level = level;+    return 1;++  default:+    break;+  }++  return 0;+}++cmark_list_type cmark_node_get_list_type(cmark_node *node) {+  if (node == NULL) {+    return CMARK_NO_LIST;+  }++  if (node->type == CMARK_NODE_LIST) {+    return node->as.list.list_type;+  } else {+    return CMARK_NO_LIST;+  }+}++int cmark_node_set_list_type(cmark_node *node, cmark_list_type type) {+  if (!(type == CMARK_BULLET_LIST || type == CMARK_ORDERED_LIST)) {+    return 0;+  }++  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    node->as.list.list_type = type;+    return 1;+  } else {+    return 0;+  }+}++cmark_delim_type cmark_node_get_list_delim(cmark_node *node) {+  if (node == NULL) {+    return CMARK_NO_DELIM;+  }++  if (node->type == CMARK_NODE_LIST) {+    return node->as.list.delimiter;+  } else {+    return CMARK_NO_DELIM;+  }+}++int cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim) {+  if (!(delim == CMARK_PERIOD_DELIM || delim == CMARK_PAREN_DELIM)) {+    return 0;+  }++  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    node->as.list.delimiter = delim;+    return 1;+  } else {+    return 0;+  }+}++int cmark_node_get_list_start(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    return node->as.list.start;+  } else {+    return 0;+  }+}++int cmark_node_set_list_start(cmark_node *node, int start) {+  if (node == NULL || start < 0) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    node->as.list.start = start;+    return 1;+  } else {+    return 0;+  }+}++int cmark_node_get_list_tight(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    return node->as.list.tight;+  } else {+    return 0;+  }+}++int cmark_node_set_list_tight(cmark_node *node, int tight) {+  if (node == NULL) {+    return 0;+  }++  if (node->type == CMARK_NODE_LIST) {+    node->as.list.tight = tight == 1;+    return 1;+  } else {+    return 0;+  }+}++const char *cmark_node_get_fence_info(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  }++  if (node->type == NODE_CODE_BLOCK) {+    return cmark_chunk_to_cstr(&node->as.code.info);+  } else {+    return NULL;+  }+}++int cmark_node_set_fence_info(cmark_node *node, const char *info) {+  if (node == NULL) {+    return 0;+  }++  if (node->type == NODE_CODE_BLOCK) {+    cmark_chunk_set_cstr(&node->as.code.info, info);+    return 1;+  } else {+    return 0;+  }+}++const char *cmark_node_get_url(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  }++  switch (node->type) {+  case NODE_LINK:+  case NODE_IMAGE:+    return cmark_chunk_to_cstr(&node->as.link.url);+  default:+    break;+  }++  return NULL;+}++int cmark_node_set_url(cmark_node *node, const char *url) {+  if (node == NULL) {+    return 0;+  }++  switch (node->type) {+  case NODE_LINK:+  case NODE_IMAGE:+    cmark_chunk_set_cstr(&node->as.link.url, url);+    return 1;+  default:+    break;+  }++  return 0;+}++const char *cmark_node_get_title(cmark_node *node) {+  if (node == NULL) {+    return NULL;+  }++  switch (node->type) {+  case NODE_LINK:+  case NODE_IMAGE:+    return cmark_chunk_to_cstr(&node->as.link.title);+  default:+    break;+  }++  return NULL;+}++int cmark_node_set_title(cmark_node *node, const char *title) {+  if (node == NULL) {+    return 0;+  }++  switch (node->type) {+  case NODE_LINK:+  case NODE_IMAGE:+    cmark_chunk_set_cstr(&node->as.link.title, title);+    return 1;+  default:+    break;+  }++  return 0;+}++int cmark_node_get_start_line(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }+  return node->start_line;+}++int cmark_node_get_start_column(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }+  return node->start_column;+}++int cmark_node_get_end_line(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }+  return node->end_line;+}++int cmark_node_get_end_column(cmark_node *node) {+  if (node == NULL) {+    return 0;+  }+  return node->end_column;+}++// Unlink a node without adjusting its next, prev, and parent pointers.+static void S_node_unlink(cmark_node *node) {+  if (node == NULL) {+    return;+  }++  if (node->prev) {+    node->prev->next = node->next;+  }+  if (node->next) {+    node->next->prev = node->prev;+  }++  // Adjust first_child and last_child of parent.+  cmark_node *parent = node->parent;+  if (parent) {+    if (parent->first_child == node) {+      parent->first_child = node->next;+    }+    if (parent->last_child == node) {+      parent->last_child = node->prev;+    }+  }+}++void cmark_node_unlink(cmark_node *node) {+  S_node_unlink(node);++  node->next = NULL;+  node->prev = NULL;+  node->parent = NULL;+}++int cmark_node_insert_before(cmark_node *node, cmark_node *sibling) {+  if (node == NULL || sibling == NULL) {+    return 0;+  }++  if (!node->parent || !S_can_contain(node->parent, sibling)) {+    return 0;+  }++  S_node_unlink(sibling);++  cmark_node *old_prev = node->prev;++  // Insert 'sibling' between 'old_prev' and 'node'.+  if (old_prev) {+    old_prev->next = sibling;+  }+  sibling->prev = old_prev;+  sibling->next = node;+  node->prev = sibling;++  // Set new parent.+  cmark_node *parent = node->parent;+  sibling->parent = parent;++  // Adjust first_child of parent if inserted as first child.+  if (parent && !old_prev) {+    parent->first_child = sibling;+  }++  return 1;+}++int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) {+  if (node == NULL || sibling == NULL) {+    return 0;+  }++  if (!node->parent || !S_can_contain(node->parent, sibling)) {+    return 0;+  }++  S_node_unlink(sibling);++  cmark_node *old_next = node->next;++  // Insert 'sibling' between 'node' and 'old_next'.+  if (old_next) {+    old_next->prev = sibling;+  }+  sibling->next = old_next;+  sibling->prev = node;+  node->next = sibling;++  // Set new parent.+  cmark_node *parent = node->parent;+  sibling->parent = parent;++  // Adjust last_child of parent if inserted as last child.+  if (parent && !old_next) {+    parent->last_child = sibling;+  }++  return 1;+}++int cmark_node_prepend_child(cmark_node *node, cmark_node *child) {+  if (!S_can_contain(node, child)) {+    return 0;+  }++  S_node_unlink(child);++  cmark_node *old_first_child = node->first_child;++  child->next = old_first_child;+  child->prev = NULL;+  child->parent = node;+  node->first_child = child;++  if (old_first_child) {+    old_first_child->prev = child;+  } else {+    // Also set last_child if node previously had no children.+    node->last_child = child;+  }++  return 1;+}++int cmark_node_append_child(cmark_node *node, cmark_node *child) {+  if (!S_can_contain(node, child)) {+    return 0;+  }++  S_node_unlink(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;+  }++  return 1;+}++static void S_print_error(FILE *out, cmark_node *node, const char *elem) {+  if (out == NULL) {+    return;+  }+  fprintf(out, "Invalid '%s' in node type %s at %d:%d\n", elem,+          cmark_node_get_type_string(node), node->start_line,+          node->start_column);+}++int cmark_node_check(cmark_node *node, FILE *out) {+  cmark_node *cur;+  int errors = 0;++  if (!node) {+    return 0;+  }++  cur = node;+  for (;;) {+    if (cur->first_child) {+      if (cur->first_child->prev != NULL) {+        S_print_error(out, cur->first_child, "prev");+        cur->first_child->prev = NULL;+        ++errors;+      }+      if (cur->first_child->parent != cur) {+        S_print_error(out, cur->first_child, "parent");+        cur->first_child->parent = cur;+        ++errors;+      }+      cur = cur->first_child;+      continue;+    }++  next_sibling:+    if (cur == node) {+      break;+    }+    if (cur->next) {+      if (cur->next->prev != cur) {+        S_print_error(out, cur->next, "prev");+        cur->next->prev = cur;+        ++errors;+      }+      if (cur->next->parent != cur->parent) {+        S_print_error(out, cur->next, "parent");+        cur->next->parent = cur->parent;+        ++errors;+      }+      cur = cur->next;+      continue;+    }++    if (cur->parent->last_child != cur) {+      S_print_error(out, cur->parent, "last_child");+      cur->parent->last_child = cur;+      ++errors;+    }+    cur = cur->parent;+    goto next_sibling;+  }++  return errors; }
cbits/node.h view
@@ -13,68 +13,67 @@ #include "chunk.h"  typedef struct {-	cmark_list_type   list_type;-	int               marker_offset;-	int               padding;-	int               start;-	cmark_delim_type  delimiter;-	unsigned char     bullet_char;-	bool              tight;+  cmark_list_type list_type;+  int marker_offset;+  int padding;+  int start;+  cmark_delim_type delimiter;+  unsigned char bullet_char;+  bool tight; } cmark_list;  typedef struct {-	cmark_chunk       info;-	cmark_chunk       literal;-	int               fence_length;-	/* fence_offset must be 0-3, so we can use int8_t */-	int8_t            fence_offset;-	unsigned char     fence_char;-	bool              fenced;+  cmark_chunk info;+  cmark_chunk literal;+  int fence_length;+  /* fence_offset must be 0-3, so we can use int8_t */+  int8_t fence_offset;+  unsigned char fence_char;+  bool fenced; } cmark_code;  typedef struct {-	int level;-	bool setext;+  int level;+  bool setext; } cmark_header;  typedef struct {-	cmark_chunk url;-	cmark_chunk title;+  cmark_chunk url;+  cmark_chunk title; } cmark_link;  struct cmark_node {-	struct cmark_node *next;-	struct cmark_node *prev;-	struct cmark_node *parent;-	struct cmark_node *first_child;-	struct cmark_node *last_child;+  struct cmark_node *next;+  struct cmark_node *prev;+  struct cmark_node *parent;+  struct cmark_node *first_child;+  struct cmark_node *last_child; -	void *user_data;+  void *user_data; -	int start_line;-	int start_column;-	int end_line;-	int end_column;+  int start_line;+  int start_column;+  int end_line;+  int end_column; -	cmark_node_type type;+  cmark_node_type type; -	bool open;-	bool last_line_blank;+  bool open;+  bool last_line_blank; -	cmark_strbuf string_content;+  cmark_strbuf string_content; -	union {-		cmark_chunk       literal;-		cmark_list        list;-		cmark_code        code;-		cmark_header      header;-		cmark_link        link;-		int               html_block_type;-	} as;+  union {+    cmark_chunk literal;+    cmark_list list;+    cmark_code code;+    cmark_header header;+    cmark_link link;+    int html_block_type;+  } as; }; -CMARK_EXPORT int-cmark_node_check(cmark_node *node, FILE *out);+CMARK_EXPORT int cmark_node_check(cmark_node *node, FILE *out);  #ifdef __cplusplus }
cbits/parser.h view
@@ -12,20 +12,20 @@ #define MAX_LINK_LABEL_LENGTH 1000  struct cmark_parser {-	struct cmark_reference_map *refmap;-	struct cmark_node* root;-	struct cmark_node* current;-	int line_number;-	bufsize_t offset;-	bufsize_t column;-	bufsize_t first_nonspace;-	bufsize_t first_nonspace_column;-	int indent;-	bool blank;-	cmark_strbuf *curline;-	bufsize_t last_line_length;-	cmark_strbuf *linebuf;-	int options;+  struct cmark_reference_map *refmap;+  struct cmark_node *root;+  struct cmark_node *current;+  int line_number;+  bufsize_t offset;+  bufsize_t column;+  bufsize_t first_nonspace;+  bufsize_t first_nonspace_column;+  int indent;+  bool blank;+  cmark_strbuf *curline;+  bufsize_t last_line_length;+  cmark_strbuf *linebuf;+  int options; };  #ifdef __cplusplus
cbits/references.c view
@@ -5,150 +5,140 @@ #include "inlines.h" #include "chunk.h" -static unsigned int-refhash(const unsigned char *link_ref)-{-	unsigned int hash = 0;+static unsigned int refhash(const unsigned char *link_ref) {+  unsigned int hash = 0; -	while (*link_ref)-		hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash;+  while (*link_ref)+    hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash; -	return hash;+  return hash; } -static void reference_free(cmark_reference *ref)-{-	if(ref != NULL) {-		free(ref->label);-		cmark_chunk_free(&ref->url);-		cmark_chunk_free(&ref->title);-		free(ref);-	}+static void reference_free(cmark_reference *ref) {+  if (ref != NULL) {+    free(ref->label);+    cmark_chunk_free(&ref->url);+    cmark_chunk_free(&ref->title);+    free(ref);+  } }  // normalize reference:  collapse internal whitespace to single space, // remove leading/trailing whitespace, case fold // Return NULL if the reference name is actually empty (i.e. composed // solely from whitespace)-static unsigned char *normalize_reference(cmark_chunk *ref)-{-	cmark_strbuf normalized = GH_BUF_INIT;-	unsigned char *result;+static unsigned char *normalize_reference(cmark_chunk *ref) {+  cmark_strbuf normalized = GH_BUF_INIT;+  unsigned char *result; -	if(ref == NULL)-		return NULL;+  if (ref == NULL)+    return NULL; -	if (ref->len == 0)-		return NULL;+  if (ref->len == 0)+    return NULL; -	utf8proc_case_fold(&normalized, ref->data, ref->len);-	cmark_strbuf_trim(&normalized);-	cmark_strbuf_normalize_whitespace(&normalized);+  cmark_utf8proc_case_fold(&normalized, ref->data, ref->len);+  cmark_strbuf_trim(&normalized);+  cmark_strbuf_normalize_whitespace(&normalized); -	result = cmark_strbuf_detach(&normalized);-	assert(result);+  result = cmark_strbuf_detach(&normalized);+  assert(result); -	if (result[0] == '\0') {-		free(result);-		return NULL;-	}+  if (result[0] == '\0') {+    free(result);+    return NULL;+  } -	return result;+  return result; } -static void add_reference(cmark_reference_map *map, cmark_reference* ref)-{-	cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE];+static void add_reference(cmark_reference_map *map, cmark_reference *ref) {+  cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE]; -	while (t) {-		if (t->hash == ref->hash &&-		    !strcmp((char *)t->label, (char *)ref->label)) {-			reference_free(ref);-			return;-		}+  while (t) {+    if (t->hash == ref->hash && !strcmp((char *)t->label, (char *)ref->label)) {+      reference_free(ref);+      return;+    } -		t = t->next;-	}+    t = t->next;+  } -	map->table[ref->hash % REFMAP_SIZE] = ref;+  map->table[ref->hash % REFMAP_SIZE] = ref; } -void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url,-                            cmark_chunk *title)-{-	cmark_reference *ref;-	unsigned char *reflabel = normalize_reference(label);+void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label,+                            cmark_chunk *url, cmark_chunk *title) {+  cmark_reference *ref;+  unsigned char *reflabel = normalize_reference(label); -	/* empty reference name, or composed from only whitespace */-	if (reflabel == NULL)-		return;+  /* empty reference name, or composed from only whitespace */+  if (reflabel == NULL)+    return; -	ref = (cmark_reference *)calloc(1, sizeof(*ref));-	if(ref != NULL) {-		ref->label = reflabel;-		ref->hash = refhash(ref->label);-		ref->url = cmark_clean_url(url);-		ref->title = cmark_clean_title(title);-		ref->next = NULL;+  ref = (cmark_reference *)calloc(1, sizeof(*ref));+  if (ref != NULL) {+    ref->label = reflabel;+    ref->hash = refhash(ref->label);+    ref->url = cmark_clean_url(url);+    ref->title = cmark_clean_title(title);+    ref->next = NULL; -		add_reference(map, ref);-	}+    add_reference(map, ref);+  } }  // Returns reference if refmap contains a reference with matching // label, otherwise NULL.-cmark_reference* cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label)-{-	cmark_reference *ref = NULL;-	unsigned char *norm;-	unsigned int hash;+cmark_reference *cmark_reference_lookup(cmark_reference_map *map,+                                        cmark_chunk *label) {+  cmark_reference *ref = NULL;+  unsigned char *norm;+  unsigned int hash; -	if (label->len > MAX_LINK_LABEL_LENGTH)-		return NULL;+  if (label->len > MAX_LINK_LABEL_LENGTH)+    return NULL; -	if (map == NULL)-		return NULL;+  if (map == NULL)+    return NULL; -	norm = normalize_reference(label);-	if (norm == NULL)-		return NULL;+  norm = normalize_reference(label);+  if (norm == NULL)+    return NULL; -	hash = refhash(norm);-	ref = map->table[hash % REFMAP_SIZE];+  hash = refhash(norm);+  ref = map->table[hash % REFMAP_SIZE]; -	while (ref) {-		if (ref->hash == hash &&-		    !strcmp((char *)ref->label, (char *)norm))-			break;-		ref = ref->next;-	}+  while (ref) {+    if (ref->hash == hash && !strcmp((char *)ref->label, (char *)norm))+      break;+    ref = ref->next;+  } -	free(norm);-	return ref;+  free(norm);+  return ref; } -void cmark_reference_map_free(cmark_reference_map *map)-{-	unsigned int i;+void cmark_reference_map_free(cmark_reference_map *map) {+  unsigned int i; -	if(map == NULL)-		return;+  if (map == NULL)+    return; -	for (i = 0; i < REFMAP_SIZE; ++i) {-		cmark_reference *ref = map->table[i];-		cmark_reference *next;+  for (i = 0; i < REFMAP_SIZE; ++i) {+    cmark_reference *ref = map->table[i];+    cmark_reference *next; -		while (ref) {-			next = ref->next;-			reference_free(ref);-			ref = next;-		}-	}+    while (ref) {+      next = ref->next;+      reference_free(ref);+      ref = next;+    }+  } -	free(map);+  free(map); } -cmark_reference_map *cmark_reference_map_new(void)-{-	return (cmark_reference_map *)calloc(1, sizeof(cmark_reference_map));+cmark_reference_map *cmark_reference_map_new(void) {+  return (cmark_reference_map *)calloc(1, sizeof(cmark_reference_map)); }
cbits/references.h view
@@ -10,25 +10,27 @@ #define REFMAP_SIZE 16  struct cmark_reference {-	struct cmark_reference *next;-	unsigned char *label;-	cmark_chunk url;-	cmark_chunk title;-	unsigned int hash;+  struct cmark_reference *next;+  unsigned char *label;+  cmark_chunk url;+  cmark_chunk title;+  unsigned int hash; };  typedef struct cmark_reference cmark_reference;  struct cmark_reference_map {-	cmark_reference *table[REFMAP_SIZE];+  cmark_reference *table[REFMAP_SIZE]; };  typedef struct cmark_reference_map cmark_reference_map;  cmark_reference_map *cmark_reference_map_new(void); void cmark_reference_map_free(cmark_reference_map *map);-cmark_reference* cmark_reference_lookup(cmark_reference_map *map, cmark_chunk *label);-extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, cmark_chunk *url, cmark_chunk *title);+cmark_reference *cmark_reference_lookup(cmark_reference_map *map,+                                        cmark_chunk *label);+extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label,+                                   cmark_chunk *url, cmark_chunk *title);  #ifdef __cplusplus }
cbits/render.c view
@@ -5,182 +5,159 @@ #include "utf8.h" #include "render.h" -static inline-void S_cr(cmark_renderer *renderer)-{-	if (renderer->need_cr < 1) {-		renderer->need_cr = 1;-	}+static inline void S_cr(cmark_renderer *renderer) {+  if (renderer->need_cr < 1) {+    renderer->need_cr = 1;+  } } -static inline-void S_blankline(cmark_renderer *renderer)-{-	if (renderer->need_cr < 2) {-		renderer->need_cr = 2;-	}+static inline void S_blankline(cmark_renderer *renderer) {+  if (renderer->need_cr < 2) {+    renderer->need_cr = 2;+  } } -static-void S_out(cmark_renderer *renderer,-           const char *source,-           bool wrap,-           cmark_escaping escape)-{-	int length = cmark_strbuf_safe_strlen(source);-	unsigned char nextc;-	int32_t c;-	int i = 0;-	int len;-	cmark_chunk remainder = cmark_chunk_literal("");-	int k = renderer->buffer->size - 1;+static void S_out(cmark_renderer *renderer, const char *source, bool wrap,+                  cmark_escaping escape) {+  int length = cmark_strbuf_safe_strlen(source);+  unsigned char nextc;+  int32_t c;+  int i = 0;+  int len;+  cmark_chunk remainder = cmark_chunk_literal("");+  int k = renderer->buffer->size - 1; -	wrap = wrap && !renderer->no_wrap;+  wrap = wrap && !renderer->no_wrap; -	if (renderer->in_tight_list_item && renderer->need_cr > 1) {-		renderer->need_cr = 1;-	}-	while (renderer->need_cr) {-		if (k < 0 || renderer->buffer->ptr[k] == '\n') {-			k -= 1;-		} else {-			cmark_strbuf_putc(renderer->buffer, '\n');-			if (renderer->need_cr > 1) {-				cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,-				                 renderer->prefix->size);-			}-		}-		renderer->column = 0;-		renderer->begin_line = true;-		renderer->need_cr -= 1;-	}+  if (renderer->in_tight_list_item && renderer->need_cr > 1) {+    renderer->need_cr = 1;+  }+  while (renderer->need_cr) {+    if (k < 0 || renderer->buffer->ptr[k] == '\n') {+      k -= 1;+    } else {+      cmark_strbuf_putc(renderer->buffer, '\n');+      if (renderer->need_cr > 1) {+        cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,+                         renderer->prefix->size);+      }+    }+    renderer->column = 0;+    renderer->begin_line = true;+    renderer->need_cr -= 1;+  } -	while (i < length) {-		if (renderer->begin_line) {-			cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,-			                 renderer->prefix->size);-			// note: this assumes prefix is ascii:-			renderer->column = renderer->prefix->size;-		}+  while (i < length) {+    if (renderer->begin_line) {+      cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,+                       renderer->prefix->size);+      // note: this assumes prefix is ascii:+      renderer->column = renderer->prefix->size;+    } -		len = utf8proc_iterate((const uint8_t *)source + i, length - i, &c);-		if (len == -1) { // error condition-			return;  // return without rendering rest of string-		}-		nextc = source[i + len];-		if (c == 32 && wrap) {-			if (!renderer->begin_line) {-				cmark_strbuf_putc(renderer->buffer, ' ');-				renderer->column += 1;-				renderer->begin_line = false;-				renderer->last_breakable = renderer->buffer->size --				                           1;-				// skip following spaces-				while (source[i + 1] == ' ') {-					i++;-				}-			}+    len = cmark_utf8proc_iterate((const uint8_t *)source + i, length - i, &c);+    if (len == -1) { // error condition+      return;        // return without rendering rest of string+    }+    nextc = source[i + len];+    if (c == 32 && wrap) {+      if (!renderer->begin_line) {+        cmark_strbuf_putc(renderer->buffer, ' ');+        renderer->column += 1;+        renderer->begin_line = false;+        renderer->last_breakable = renderer->buffer->size - 1;+        // skip following spaces+        while (source[i + 1] == ' ') {+          i++;+        }+      } -		} else if (c == 10) {-			cmark_strbuf_putc(renderer->buffer, '\n');-			renderer->column = 0;-			renderer->begin_line = true;-			renderer->last_breakable = 0;-		} else if (escape == LITERAL) {-			cmark_render_code_point(renderer, c);-			renderer->begin_line = false;-		} else {-			(renderer->outc)(renderer, escape, c, nextc);-			renderer->begin_line = false;-		}+    } else if (c == 10) {+      cmark_strbuf_putc(renderer->buffer, '\n');+      renderer->column = 0;+      renderer->begin_line = true;+      renderer->last_breakable = 0;+    } else if (escape == LITERAL) {+      cmark_render_code_point(renderer, c);+      renderer->begin_line = false;+    } else {+      (renderer->outc)(renderer, escape, c, nextc);+      renderer->begin_line = false;+    } -		// If adding the character went beyond width, look for an-		// earlier place where the line could be broken:-		if (renderer->width > 0 &&-		    renderer->column > renderer->width &&-		    !renderer->begin_line &&-		    renderer->last_breakable > 0) {+    // If adding the character went beyond width, look for an+    // earlier place where the line could be broken:+    if (renderer->width > 0 && renderer->column > renderer->width &&+        !renderer->begin_line && renderer->last_breakable > 0) { -			// copy from last_breakable to remainder-			cmark_chunk_set_cstr(&remainder, (char *) renderer->buffer->ptr + renderer->last_breakable + 1);-			// truncate at last_breakable-			cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable);-			// add newline, prefix, and remainder-			cmark_strbuf_putc(renderer->buffer, '\n');-			cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,-			                 renderer->prefix->size);-			cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len);-			renderer->column = renderer->prefix->size + remainder.len;-			cmark_chunk_free(&remainder);-			renderer->last_breakable = 0;-			renderer->begin_line = false;-		}+      // copy from last_breakable to remainder+      cmark_chunk_set_cstr(&remainder, (char *)renderer->buffer->ptr ++                                           renderer->last_breakable + 1);+      // truncate at last_breakable+      cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable);+      // add newline, prefix, and remainder+      cmark_strbuf_putc(renderer->buffer, '\n');+      cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,+                       renderer->prefix->size);+      cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len);+      renderer->column = renderer->prefix->size + remainder.len;+      cmark_chunk_free(&remainder);+      renderer->last_breakable = 0;+      renderer->begin_line = false;+    } -		i += len;-	}+    i += len;+  } }  // Assumes no newlines, assumes ascii content:-void-cmark_render_ascii(cmark_renderer* renderer, const char* s)-{-	int origsize = renderer->buffer->size;-	cmark_strbuf_puts(renderer->buffer, s);-	renderer->column += renderer->buffer->size - origsize;+void cmark_render_ascii(cmark_renderer *renderer, const char *s) {+  int origsize = renderer->buffer->size;+  cmark_strbuf_puts(renderer->buffer, s);+  renderer->column += renderer->buffer->size - origsize; } -void-cmark_render_code_point(cmark_renderer *renderer, uint32_t c)-{-	utf8proc_encode_char(c, renderer->buffer);-	renderer->column += 1;+void cmark_render_code_point(cmark_renderer *renderer, uint32_t c) {+  cmark_utf8proc_encode_char(c, renderer->buffer);+  renderer->column += 1; } -char*-cmark_render(cmark_node *root,-             int options,-             int width,-             void (*outc)(cmark_renderer*,-                          cmark_escaping,-                          int32_t,-                          unsigned char),-             int (*render_node)(cmark_renderer *renderer,-                                cmark_node *node,-                                cmark_event_type ev_type,-                                int options))-{-	cmark_strbuf pref = GH_BUF_INIT;-	cmark_strbuf buf = GH_BUF_INIT;-	cmark_node *cur;-	cmark_event_type ev_type;-	char *result;-	cmark_iter *iter = cmark_iter_new(root);+char *cmark_render(cmark_node *root, int options, int width,+                   void (*outc)(cmark_renderer *, cmark_escaping, int32_t,+                                unsigned char),+                   int (*render_node)(cmark_renderer *renderer,+                                      cmark_node *node,+                                      cmark_event_type ev_type, int options)) {+  cmark_strbuf pref = GH_BUF_INIT;+  cmark_strbuf buf = GH_BUF_INIT;+  cmark_node *cur;+  cmark_event_type ev_type;+  char *result;+  cmark_iter *iter = cmark_iter_new(root); -	cmark_renderer renderer = { &buf, &pref, 0, width,-	                            0, 0, true, false, false,-	                            outc, S_cr, S_blankline, S_out-	                          };+  cmark_renderer renderer = {&buf,  &pref, 0,    width, 0,           0,    true,+                             false, false, outc, S_cr,  S_blankline, S_out}; -	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {-		cur = cmark_iter_get_node(iter);-		if (!render_node(&renderer, cur, ev_type, options)) {-			// a false value causes us to skip processing-			// the node's contents.  this is used for-			// autolinks.-			cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT);-		}-	}+  while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {+    cur = cmark_iter_get_node(iter);+    if (!render_node(&renderer, cur, ev_type, options)) {+      // a false value causes us to skip processing+      // the node's contents.  this is used for+      // autolinks.+      cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT);+    }+  } -	// ensure final newline-	if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {-		cmark_strbuf_putc(renderer.buffer, '\n');-	}+  // ensure final newline+  if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {+    cmark_strbuf_putc(renderer.buffer, '\n');+  } -	result = (char *)cmark_strbuf_detach(renderer.buffer);+  result = (char *)cmark_strbuf_detach(renderer.buffer); -	cmark_iter_free(iter);-	cmark_strbuf_free(renderer.prefix);-	cmark_strbuf_free(renderer.buffer);+  cmark_iter_free(iter);+  cmark_strbuf_free(renderer.prefix);+  cmark_strbuf_free(renderer.buffer); -	return result;+  return result; }
cbits/render.h view
@@ -9,55 +9,36 @@ #include "buffer.h" #include "chunk.h" -typedef enum  {-	LITERAL,-	NORMAL,-	TITLE,-	URL-} cmark_escaping;+typedef enum { LITERAL, NORMAL, TITLE, URL } cmark_escaping;  struct cmark_renderer {-	cmark_strbuf* buffer;-	cmark_strbuf* prefix;-	int column;-	int width;-	int need_cr;-	bufsize_t last_breakable;-	bool begin_line;-	bool no_wrap;-	bool in_tight_list_item;-	void (*outc)(struct cmark_renderer*,-		     cmark_escaping,-		     int32_t,-		     unsigned char);-	void (*cr)(struct cmark_renderer*);-	void (*blankline)(struct cmark_renderer*);-	void (*out)(struct cmark_renderer*,-		    const char *,-		    bool,-		    cmark_escaping);+  cmark_strbuf *buffer;+  cmark_strbuf *prefix;+  int column;+  int width;+  int need_cr;+  bufsize_t last_breakable;+  bool begin_line;+  bool no_wrap;+  bool in_tight_list_item;+  void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char);+  void (*cr)(struct cmark_renderer *);+  void (*blankline)(struct cmark_renderer *);+  void (*out)(struct cmark_renderer *, const char *, bool, cmark_escaping); };  typedef struct cmark_renderer cmark_renderer; -void-cmark_render_ascii(cmark_renderer *renderer, const char* s);+void cmark_render_ascii(cmark_renderer *renderer, const char *s); -void-cmark_render_code_point(cmark_renderer *renderer, uint32_t c);+void cmark_render_code_point(cmark_renderer *renderer, uint32_t c); -char*-cmark_render(cmark_node *root,-	     int options,-	     int width,-	     void (*outc)(cmark_renderer*,-			  cmark_escaping,-			  int32_t,-			  unsigned char),-	     int (*render_node)(cmark_renderer *renderer,-				cmark_node *node,-				cmark_event_type ev_type,-				int options));+char *cmark_render(cmark_node *root, int options, int width,+                   void (*outc)(cmark_renderer *, cmark_escaping, int32_t,+                                unsigned char),+                   int (*render_node)(cmark_renderer *renderer,+                                      cmark_node *node,+                                      cmark_event_type ev_type, int options));  #ifdef __cplusplus }
cbits/scanners.c view
@@ -3,21045 +3,27837 @@ #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;-	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 = *(marker = p);-	if (yych <= 'c') {-		if (yych <= 'M') {-			if (yych <= 'E') {-				if (yych <= 'A') {-					if (yych == '\n') goto yy2;-					if (yych <= '@') goto yy29;-					goto yy6;-				} else {-					if (yych <= 'B') goto yy24;-					if (yych <= 'C') goto yy3;-					if (yych <= 'D') goto yy4;-					goto yy25;-				}-			} else {-				if (yych <= 'I') {-					if (yych <= 'F') goto yy7;-					if (yych <= 'G') goto yy8;-					if (yych <= 'H') goto yy9;-					goto yy10;-				} else {-					if (yych <= 'J') goto yy5;-					if (yych <= 'K') goto yy26;-					if (yych <= 'L') goto yy11;-					goto yy12;-				}-			}-		} else {-			if (yych <= 'U') {-				if (yych <= 'Q') {-					if (yych <= 'N') goto yy13;-					if (yych <= 'O') goto yy14;-					if (yych <= 'P') goto yy15;-					goto yy27;-				} else {-					if (yych <= 'R') goto yy16;-					if (yych <= 'S') goto yy17;-					if (yych <= 'T') goto yy18;-					goto yy19;-				}-			} else {-				if (yych <= 'Y') {-					if (yych <= 'V') goto yy20;-					if (yych <= 'W') goto yy21;-					if (yych <= 'X') goto yy22;-					goto yy28;-				} else {-					if (yych <= '`') {-						if (yych <= 'Z') goto yy23;-						goto yy29;-					} else {-						if (yych <= 'a') goto yy6;-						if (yych <= 'b') goto yy24;-						goto yy3;-					}-				}-			}-		}-	} else {-		if (yych <= 't') {-			if (yych <= 'k') {-				if (yych <= 'g') {-					if (yych <= 'd') goto yy4;-					if (yych <= 'e') goto yy25;-					if (yych <= 'f') goto yy7;-					goto yy8;-				} else {-					if (yych <= 'h') goto yy9;-					if (yych <= 'i') goto yy10;-					if (yych <= 'j') goto yy5;-					goto yy26;-				}-			} else {-				if (yych <= 'o') {-					if (yych <= 'l') goto yy11;-					if (yych <= 'm') goto yy12;-					if (yych <= 'n') goto yy13;-					goto yy14;-				} else {-					if (yych <= 'q') {-						if (yych <= 'p') goto yy15;-						goto yy27;-					} else {-						if (yych <= 'r') goto yy16;-						if (yych <= 's') goto yy17;-						goto yy18;-					}-				}-			}-		} else {-			if (yych <= 0xC1) {-				if (yych <= 'x') {-					if (yych <= 'u') goto yy19;-					if (yych <= 'v') goto yy20;-					if (yych <= 'w') goto yy21;-					goto yy22;-				} else {-					if (yych <= 'y') goto yy28;-					if (yych <= 'z') goto yy23;-					if (yych <= 0x7F) goto yy29;-				}-			} else {-				if (yych <= 0xED) {-					if (yych <= 0xDF) goto yy30;-					if (yych <= 0xE0) goto yy32;-					if (yych <= 0xEC) goto yy33;-					goto yy37;-				} else {-					if (yych <= 0xF0) {-						if (yych <= 0xEF) goto yy33;-						goto yy34;-					} else {-						if (yych <= 0xF3) goto yy35;-						if (yych <= 0xF4) goto yy36;-					}-				}-			}-		}-	}-yy2:-	{ return 0; }-yy3:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy447;-	case 'H':-	case 'h':	goto yy446;-	case 'I':-	case 'i':	goto yy449;-	case 'O':-	case 'o':	goto yy445;-	case 'R':-	case 'r':	goto yy448;-	case 'V':-	case 'v':	goto yy444;-	default:	goto yy2;-	}-yy4:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy420;-	case 'I':-	case 'i':	goto yy419;-	case 'L':-	case 'l':	goto yy417;-	case 'N':-	case 'n':	goto yy418;-	case 'O':-	case 'o':	goto yy421;-	case 'T':-	case 't':	goto yy416;-	case 'V':-	case 'v':	goto yy415;-	default:	goto yy2;-	}-yy5:-	yych = *(marker = ++p);-	if (yych <= 'M') {-		if (yych == 'A') goto yy407;-		if (yych <= 'L') goto yy2;-		goto yy406;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy2;-			goto yy407;-		} else {-			if (yych == 'm') goto yy406;-			goto yy2;-		}-	}-yy6:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy388;-	case 'B':-	case 'b':	goto yy387;-	case 'C':-	case 'c':	goto yy386;-	case 'D':-	case 'd':	goto yy385;-	case 'F':-	case 'f':	goto yy384;-	case 'I':-	case 'i':	goto yy383;-	case 'P':-	case 'p':	goto yy382;-	case 'T':-	case 't':	goto yy381;-	case 'W':-	case 'w':	goto yy41;-	default:	goto yy2;-	}-yy7:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'E') {-			if (yych == 'A') goto yy368;-			if (yych <= 'D') goto yy2;-			goto yy367;-		} else {-			if (yych == 'I') goto yy366;-			if (yych <= 'S') goto yy2;-			goto yy369;-		}-	} else {-		if (yych <= 'e') {-			if (yych == 'a') goto yy368;-			if (yych <= 'd') goto yy2;-			goto yy367;-		} else {-			if (yych <= 'i') {-				if (yych <= 'h') goto yy2;-				goto yy366;-			} else {-				if (yych == 't') goto yy369;-				goto yy2;-			}-		}-	}-yy8:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy351;-	case 'G':-	case 'g':	goto yy41;-	case 'I':-	case 'i':	goto yy349;-	case 'O':-	case 'o':	goto yy350;-	case 'T':-	case 't':	goto yy348;-	default:	goto yy2;-	}-yy9:-	yych = *(marker = ++p);-	if (yych <= 'S') {-		if (yych <= '3') {-			if (yych <= '2') goto yy2;-			goto yy344;-		} else {-			if (yych == 'C') goto yy342;-			goto yy2;-		}-	} else {-		if (yych <= 'c') {-			if (yych <= 'T') goto yy343;-			if (yych <= 'b') goto yy2;-			goto yy342;-		} else {-			if (yych == 't') goto yy343;-			goto yy2;-		}-	}-yy10:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy324;-	case 'C':-	case 'c':	goto yy321;-	case 'M':-	case 'm':	goto yy323;-	case 'N':-	case 'n':	goto yy322;-	case 'P':-	case 'p':	goto yy320;-	case 'R':-	case 'r':	goto yy319;-	case 'T':-	case 't':	goto yy318;-	default:	goto yy2;-	}-yy11:-	yych = *(marker = ++p);-	if (yych <= 'D') {-		if (yych == 'A') goto yy312;-		if (yych <= 'C') goto yy2;-		goto yy311;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy2;-			goto yy312;-		} else {-			if (yych == 'd') goto yy311;-			goto yy2;-		}-	}-yy12:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy278;-	case 'E':-	case 'e':	goto yy277;-	case 'I':-	case 'i':	goto yy280;-	case 'M':-	case 'm':	goto yy276;-	case 'S':-	case 's':	goto yy275;-	case 'T':-	case 't':	goto yy279;-	case 'U':-	case 'u':	goto yy274;-	case 'V':-	case 'v':	goto yy273;-	default:	goto yy2;-	}-yy13:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy268;-	case 'F':-	case 'f':	goto yy267;-	case 'I':-	case 'i':	goto yy266;-	case 'N':-	case 'n':	goto yy265;-	case 'O':-	case 'o':	goto yy264;-	default:	goto yy2;-	}-yy14:-	yych = *(marker = ++p);-	if (yych <= 'P') {-		if (yych == 'I') goto yy250;-		if (yych <= 'O') goto yy2;-		goto yy251;-	} else {-		if (yych <= 'i') {-			if (yych <= 'h') goto yy2;-			goto yy250;-		} else {-			if (yych == 'p') goto yy251;-			goto yy2;-		}-	}-yy15:-	yych = *(marker = ++p);-	if (yych <= 'S') {-		if (yych <= 'L') {-			if (yych == 'A') goto yy232;-			if (yych <= 'K') goto yy2;-			goto yy231;-		} else {-			if (yych <= 'O') {-				if (yych <= 'N') goto yy2;-				goto yy233;-			} else {-				if (yych <= 'Q') goto yy2;-				if (yych <= 'R') goto yy230;-				goto yy229;-			}-		}-	} else {-		if (yych <= 'n') {-			if (yych <= 'a') {-				if (yych <= '`') goto yy2;-				goto yy232;-			} else {-				if (yych == 'l') goto yy231;-				goto yy2;-			}-		} else {-			if (yych <= 'q') {-				if (yych <= 'o') goto yy233;-				goto yy2;-			} else {-				if (yych <= 'r') goto yy230;-				if (yych <= 's') goto yy229;-				goto yy2;-			}-		}-	}-yy16:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'L') {-			if (yych == 'E') goto yy219;-			goto yy2;-		} else {-			if (yych <= 'M') goto yy218;-			if (yych <= 'R') goto yy2;-			if (yych <= 'S') goto yy217;-			goto yy216;-		}-	} else {-		if (yych <= 'm') {-			if (yych == 'e') goto yy219;-			if (yych <= 'l') goto yy2;-			goto yy218;-		} else {-			if (yych <= 'r') goto yy2;-			if (yych <= 's') goto yy217;-			if (yych <= 't') goto yy216;-			goto yy2;-		}-	}-yy17:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy172;-	case 'F':-	case 'f':	goto yy171;-	case 'G':-	case 'g':	goto yy170;-	case 'H':-	case 'h':	goto yy175;-	case 'I':-	case 'i':	goto yy174;-	case 'K':-	case 'k':	goto yy169;-	case 'M':-	case 'm':	goto yy168;-	case 'N':-	case 'n':	goto yy173;-	case 'O':-	case 'o':	goto yy167;-	case 'P':-	case 'p':	goto yy166;-	case 'S':-	case 's':	goto yy165;-	case 'T':-	case 't':	goto yy164;-	case 'V':-	case 'v':	goto yy163;-	default:	goto yy2;-	}-yy18:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy139;-	case 'E':-	case 'e':	goto yy135;-	case 'F':-	case 'f':	goto yy138;-	case 'H':-	case 'h':	goto yy134;-	case 'I':-	case 'i':	goto yy136;-	case 'N':-	case 'n':	goto yy137;-	case 'V':-	case 'v':	goto yy41;-	default:	goto yy2;-	}-yy19:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'N') {-			if (yych == 'D') goto yy126;-			if (yych <= 'M') goto yy2;-			goto yy125;-		} else {-			if (yych == 'R') goto yy127;-			if (yych <= 'S') goto yy2;-			goto yy124;-		}-	} else {-		if (yych <= 'n') {-			if (yych == 'd') goto yy126;-			if (yych <= 'm') goto yy2;-			goto yy125;-		} else {-			if (yych <= 'r') {-				if (yych <= 'q') goto yy2;-				goto yy127;-			} else {-				if (yych == 't') goto yy124;-				goto yy2;-			}-		}-	}-yy20:-	yych = *(marker = ++p);-	if (yych <= 'I') {-		if (yych == 'E') goto yy108;-		if (yych <= 'H') goto yy2;-		goto yy107;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy2;-			goto yy108;-		} else {-			if (yych == 'i') goto yy107;-			goto yy2;-		}-	}-yy21:-	yych = *(marker = ++p);-	if (yych <= 'Y') {-		if (yych <= 'R') {-			if (yych == 'E') goto yy97;-			goto yy2;-		} else {-			if (yych <= 'S') goto yy98;-			if (yych <= 'T') goto yy96;-			if (yych <= 'X') goto yy2;-			goto yy95;-		}-	} else {-		if (yych <= 's') {-			if (yych == 'e') goto yy97;-			if (yych <= 'r') goto yy2;-			goto yy98;-		} else {-			if (yych <= 't') goto yy96;-			if (yych == 'y') goto yy95;-			goto yy2;-		}-	}-yy22:-	yych = *(marker = ++p);-	if (yych <= 'R') {-		if (yych <= 'F') {-			if (yych == 'C') goto yy74;-			if (yych <= 'E') goto yy2;-			goto yy72;-		} else {-			if (yych == 'M') goto yy73;-			if (yych <= 'Q') goto yy2;-			goto yy71;-		}-	} else {-		if (yych <= 'f') {-			if (yych == 'c') goto yy74;-			if (yych <= 'e') goto yy2;-			goto yy72;-		} else {-			if (yych <= 'm') {-				if (yych <= 'l') goto yy2;-				goto yy73;-			} else {-				if (yych == 'r') goto yy71;-				goto yy2;-			}-		}-	}-yy23:-	yych = *(marker = ++p);-	if (yych == '3') goto yy66;-	goto yy2;-yy24:-	yych = *(marker = ++p);-	if (yych <= 'O') {-		if (yych <= 'H') {-			if (yych == 'E') goto yy56;-			goto yy2;-		} else {-			if (yych <= 'I') goto yy55;-			if (yych <= 'N') goto yy2;-			goto yy54;-		}-	} else {-		if (yych <= 'h') {-			if (yych == 'e') goto yy56;-			goto yy2;-		} else {-			if (yych <= 'i') goto yy55;-			if (yych == 'o') goto yy54;-			goto yy2;-		}-	}-yy25:-	yych = *(marker = ++p);-	if (yych == 'D') goto yy52;-	if (yych == 'd') goto yy52;-	goto yy2;-yy26:-	yych = *(marker = ++p);-	if (yych == 'E') goto yy47;-	if (yych == 'e') goto yy47;-	goto yy2;-yy27:-	yych = *(marker = ++p);-	if (yych == 'U') goto yy44;-	if (yych == 'u') goto yy44;-	goto yy2;-yy28:-	yych = *(marker = ++p);-	if (yych == 'M') goto yy38;-	if (yych == 'm') goto yy38;-	goto yy2;-yy29:-	yych = *++p;-	goto yy2;-yy30:-	yych = *++p;-	if (yych <= 0x7F) goto yy31;-	if (yych <= 0xBF) goto yy29;-yy31:-	p = marker;-	goto yy2;-yy32:-	yych = *++p;-	if (yych <= 0x9F) goto yy31;-	if (yych <= 0xBF) goto yy30;-	goto yy31;-yy33:-	yych = *++p;-	if (yych <= 0x7F) goto yy31;-	if (yych <= 0xBF) goto yy30;-	goto yy31;-yy34:-	yych = *++p;-	if (yych <= 0x8F) goto yy31;-	if (yych <= 0xBF) goto yy33;-	goto yy31;-yy35:-	yych = *++p;-	if (yych <= 0x7F) goto yy31;-	if (yych <= 0xBF) goto yy33;-	goto yy31;-yy36:-	yych = *++p;-	if (yych <= 0x7F) goto yy31;-	if (yych <= 0x8F) goto yy33;-	goto yy31;-yy37:-	yych = *++p;-	if (yych <= 0x7F) goto yy31;-	if (yych <= 0x9F) goto yy30;-	goto yy31;-yy38:-	yych = *++p;-	if (yych == 'S') goto yy39;-	if (yych != 's') goto yy31;-yy39:-	yych = *++p;-	if (yych == 'G') goto yy40;-	if (yych != 'g') goto yy31;-yy40:-	yych = *++p;-	if (yych == 'R') goto yy41;-	if (yych != 'r') goto yy31;-yy41:-	yych = *++p;-	if (yych != ':') goto yy31;-yy42:-	++p;-	{ return (bufsize_t)(p - start); }-yy44:-	yych = *++p;-	if (yych == 'E') goto yy45;-	if (yych != 'e') goto yy31;-yy45:-	yych = *++p;-	if (yych == 'R') goto yy46;-	if (yych != 'r') goto yy31;-yy46:-	yych = *++p;-	if (yych == 'Y') goto yy41;-	if (yych == 'y') goto yy41;-	goto yy31;-yy47:-	yych = *++p;-	if (yych == 'Y') goto yy48;-	if (yych != 'y') goto yy31;-yy48:-	yych = *++p;-	if (yych == 'P') goto yy49;-	if (yych != 'p') goto yy31;-yy49:-	yych = *++p;-	if (yych == 'A') goto yy50;-	if (yych != 'a') goto yy31;-yy50:-	yych = *++p;-	if (yych == 'R') goto yy51;-	if (yych != 'r') goto yy31;-yy51:-	yych = *++p;-	if (yych == 'C') goto yy41;-	if (yych == 'c') goto yy41;-	goto yy31;-yy52:-	yych = *++p;-	if (yych != '2') goto yy31;-	yych = *++p;-	if (yych == 'K') goto yy41;-	if (yych == 'k') goto yy41;-	goto yy31;-yy54:-	yych = *++p;-	if (yych == 'L') goto yy65;-	if (yych == 'l') goto yy65;-	goto yy31;-yy55:-	yych = *++p;-	if (yych == 'T') goto yy61;-	if (yych == 't') goto yy61;-	goto yy31;-yy56:-	yych = *++p;-	if (yych == 'S') goto yy57;-	if (yych != 's') goto yy31;-yy57:-	yych = *++p;-	if (yych == 'H') goto yy58;-	if (yych != 'h') goto yy31;-yy58:-	yych = *++p;-	if (yych == 'A') goto yy59;-	if (yych != 'a') goto yy31;-yy59:-	yych = *++p;-	if (yych == 'R') goto yy60;-	if (yych != 'r') goto yy31;-yy60:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy61:-	yych = *++p;-	if (yych == 'C') goto yy62;-	if (yych != 'c') goto yy31;-yy62:-	yych = *++p;-	if (yych == 'O') goto yy63;-	if (yych != 'o') goto yy31;-yy63:-	yych = *++p;-	if (yych == 'I') goto yy64;-	if (yych != 'i') goto yy31;-yy64:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy65:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy66:-	yych = *++p;-	if (yych != '9') goto yy31;-	yych = *++p;-	if (yych != '.') goto yy31;-	yych = *++p;-	if (yych != '5') goto yy31;-	yych = *++p;-	if (yych != '0') goto yy31;-	yych = *++p;-	if (yych <= 'Q') goto yy31;-	if (yych <= 'S') goto yy41;-	if (yych <= 'q') goto yy31;-	if (yych <= 's') goto yy41;-	goto yy31;-yy71:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy72:-	yych = *++p;-	if (yych == 'I') goto yy93;-	if (yych == 'i') goto yy93;-	goto yy31;-yy73:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy83;-		if (yych <= 'O') goto yy31;-		goto yy84;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy31;-			goto yy83;-		} else {-			if (yych == 'p') goto yy84;-			goto yy31;-		}-	}-yy74:-	yych = *++p;-	if (yych == 'O') goto yy75;-	if (yych != 'o') goto yy31;-yy75:-	yych = *++p;-	if (yych == 'N') goto yy76;-	if (yych != 'n') goto yy31;-yy76:-	yych = *++p;-	if (yych == '-') goto yy77;-	if (yych == ':') goto yy42;-	goto yy31;-yy77:-	yych = *++p;-	if (yych == 'U') goto yy78;-	if (yych != 'u') goto yy31;-yy78:-	yych = *++p;-	if (yych == 'S') goto yy79;-	if (yych != 's') goto yy31;-yy79:-	yych = *++p;-	if (yych == 'E') goto yy80;-	if (yych != 'e') goto yy31;-yy80:-	yych = *++p;-	if (yych == 'R') goto yy81;-	if (yych != 'r') goto yy31;-yy81:-	yych = *++p;-	if (yych == 'I') goto yy82;-	if (yych != 'i') goto yy31;-yy82:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy83:-	yych = *++p;-	if (yych == 'R') goto yy85;-	if (yych == 'r') goto yy85;-	goto yy31;-yy84:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy85:-	yych = *++p;-	if (yych == 'P') goto yy86;-	if (yych != 'p') goto yy31;-yy86:-	yych = *++p;-	if (yych == 'C') goto yy87;-	if (yych != 'c') goto yy31;-yy87:-	yych = *++p;-	if (yych != '.') goto yy31;-	yych = *++p;-	if (yych == 'B') goto yy89;-	if (yych != 'b') goto yy31;-yy89:-	yych = *++p;-	if (yych == 'E') goto yy90;-	if (yych != 'e') goto yy31;-yy90:-	yych = *++p;-	if (yych == 'E') goto yy91;-	if (yych != 'e') goto yy31;-yy91:-	yych = *++p;-	if (yych == 'P') goto yy92;-	if (yych != 'p') goto yy31;-yy92:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy93:-	yych = *++p;-	if (yych == 'R') goto yy94;-	if (yych != 'r') goto yy31;-yy94:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy95:-	yych = *++p;-	if (yych == 'C') goto yy103;-	if (yych == 'c') goto yy103;-	goto yy31;-yy96:-	yych = *++p;-	if (yych == 'A') goto yy102;-	if (yych == 'a') goto yy102;-	goto yy31;-yy97:-	yych = *++p;-	if (yych == 'B') goto yy99;-	if (yych == 'b') goto yy99;-	goto yy31;-yy98:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy99:-	yych = *++p;-	if (yych == 'C') goto yy100;-	if (yych != 'c') goto yy31;-yy100:-	yych = *++p;-	if (yych == 'A') goto yy101;-	if (yych != 'a') goto yy31;-yy101:-	yych = *++p;-	if (yych == 'L') goto yy41;-	if (yych == 'l') goto yy41;-	goto yy31;-yy102:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy103:-	yych = *++p;-	if (yych == 'I') goto yy104;-	if (yych != 'i') goto yy31;-yy104:-	yych = *++p;-	if (yych == 'W') goto yy105;-	if (yych != 'w') goto yy31;-yy105:-	yych = *++p;-	if (yych == 'Y') goto yy106;-	if (yych != 'y') goto yy31;-yy106:-	yych = *++p;-	if (yych == 'G') goto yy41;-	if (yych == 'g') goto yy41;-	goto yy31;-yy107:-	yych = *++p;-	if (yych == 'E') goto yy116;-	if (yych == 'e') goto yy116;-	goto yy31;-yy108:-	yych = *++p;-	if (yych <= 'N') {-		if (yych <= 'L') goto yy31;-		if (yych >= 'N') goto yy110;-	} else {-		if (yych <= 'l') goto yy31;-		if (yych <= 'm') goto yy109;-		if (yych <= 'n') goto yy110;-		goto yy31;-	}-yy109:-	yych = *++p;-	if (yych == 'M') goto yy115;-	if (yych == 'm') goto yy115;-	goto yy31;-yy110:-	yych = *++p;-	if (yych == 'T') goto yy111;-	if (yych != 't') goto yy31;-yy111:-	yych = *++p;-	if (yych == 'R') goto yy112;-	if (yych != 'r') goto yy31;-yy112:-	yych = *++p;-	if (yych == 'I') goto yy113;-	if (yych != 'i') goto yy31;-yy113:-	yych = *++p;-	if (yych == 'L') goto yy114;-	if (yych != 'l') goto yy31;-yy114:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy115:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy116:-	yych = *++p;-	if (yych == 'W') goto yy117;-	if (yych != 'w') goto yy31;-yy117:-	yych = *++p;-	if (yych != '-') goto yy31;-	yych = *++p;-	if (yych == 'S') goto yy119;-	if (yych != 's') goto yy31;-yy119:-	yych = *++p;-	if (yych == 'O') goto yy120;-	if (yych != 'o') goto yy31;-yy120:-	yych = *++p;-	if (yych == 'U') goto yy121;-	if (yych != 'u') goto yy31;-yy121:-	yych = *++p;-	if (yych == 'R') goto yy122;-	if (yych != 'r') goto yy31;-yy122:-	yych = *++p;-	if (yych == 'C') goto yy123;-	if (yych != 'c') goto yy31;-yy123:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy124:-	yych = *++p;-	if (yych == '2') goto yy131;-	goto yy31;-yy125:-	yych = *++p;-	if (yych == 'R') goto yy128;-	if (yych == 'r') goto yy128;-	goto yy31;-yy126:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy127:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy128:-	yych = *++p;-	if (yych == 'E') goto yy129;-	if (yych != 'e') goto yy31;-yy129:-	yych = *++p;-	if (yych == 'A') goto yy130;-	if (yych != 'a') goto yy31;-yy130:-	yych = *++p;-	if (yych == 'L') goto yy41;-	if (yych == 'l') goto yy41;-	goto yy31;-yy131:-	yych = *++p;-	if (yych != '0') goto yy31;-	yych = *++p;-	if (yych != '0') goto yy31;-	yych = *++p;-	if (yych == '4') goto yy41;-	goto yy31;-yy134:-	yych = *++p;-	if (yych == 'I') goto yy153;-	if (yych == 'i') goto yy153;-	goto yy31;-yy135:-	yych = *++p;-	if (yych <= 'L') {-		if (yych == 'A') goto yy145;-		if (yych <= 'K') goto yy31;-		goto yy144;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy31;-			goto yy145;-		} else {-			if (yych == 'l') goto yy144;-			goto yy31;-		}-	}-yy136:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy137:-	yych = *++p;-	if (yych == '3') goto yy141;-	goto yy31;-yy138:-	yych = *++p;-	if (yych == 'T') goto yy140;-	if (yych == 't') goto yy140;-	goto yy31;-yy139:-	yych = *++p;-	if (yych == 'G') goto yy41;-	if (yych == 'g') goto yy41;-	goto yy31;-yy140:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy141:-	yych = *++p;-	if (yych != '2') goto yy31;-	yych = *++p;-	if (yych != '7') goto yy31;-	yych = *++p;-	if (yych == '0') goto yy41;-	goto yy31;-yy144:-	yych = *++p;-	if (yych <= 'M') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'N') goto yy151;-		if (yych == 'n') goto yy151;-		goto yy31;-	}-yy145:-	yych = *++p;-	if (yych == 'M') goto yy146;-	if (yych != 'm') goto yy31;-yy146:-	yych = *++p;-	if (yych == 'S') goto yy147;-	if (yych != 's') goto yy31;-yy147:-	yych = *++p;-	if (yych == 'P') goto yy148;-	if (yych != 'p') goto yy31;-yy148:-	yych = *++p;-	if (yych == 'E') goto yy149;-	if (yych != 'e') goto yy31;-yy149:-	yych = *++p;-	if (yych == 'A') goto yy150;-	if (yych != 'a') goto yy31;-yy150:-	yych = *++p;-	if (yych == 'K') goto yy41;-	if (yych == 'k') goto yy41;-	goto yy31;-yy151:-	yych = *++p;-	if (yych == 'E') goto yy152;-	if (yych != 'e') goto yy31;-yy152:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy153:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'N') goto yy154;-		if (yych <= 'R') goto yy31;-		goto yy155;-	} else {-		if (yych <= 'n') {-			if (yych <= 'm') goto yy31;-		} else {-			if (yych == 's') goto yy155;-			goto yy31;-		}-	}-yy154:-	yych = *++p;-	if (yych == 'G') goto yy162;-	if (yych == 'g') goto yy162;-	goto yy31;-yy155:-	yych = *++p;-	if (yych == 'M') goto yy156;-	if (yych != 'm') goto yy31;-yy156:-	yych = *++p;-	if (yych == 'E') goto yy157;-	if (yych != 'e') goto yy31;-yy157:-	yych = *++p;-	if (yych == 'S') goto yy158;-	if (yych != 's') goto yy31;-yy158:-	yych = *++p;-	if (yych == 'S') goto yy159;-	if (yych != 's') goto yy31;-yy159:-	yych = *++p;-	if (yych == 'A') goto yy160;-	if (yych != 'a') goto yy31;-yy160:-	yych = *++p;-	if (yych == 'G') goto yy161;-	if (yych != 'g') goto yy31;-yy161:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy162:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy163:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy164:-	yych = *++p;-	if (yych == 'E') goto yy214;-	if (yych == 'e') goto yy214;-	goto yy31;-yy165:-	yych = *++p;-	if (yych == 'H') goto yy41;-	if (yych == 'h') goto yy41;-	goto yy31;-yy166:-	yych = *++p;-	if (yych == 'O') goto yy210;-	if (yych == 'o') goto yy210;-	goto yy31;-yy167:-	yych = *++p;-	if (yych <= 'L') {-		if (yych == 'A') goto yy200;-		if (yych <= 'K') goto yy31;-		goto yy201;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy31;-			goto yy200;-		} else {-			if (yych == 'l') goto yy201;-			goto yy31;-		}-	}-yy168:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'B') goto yy41;-		if (yych <= 'R') goto yy31;-		goto yy41;-	} else {-		if (yych <= 'b') {-			if (yych <= 'a') goto yy31;-			goto yy41;-		} else {-			if (yych == 's') goto yy41;-			goto yy31;-		}-	}-yy169:-	yych = *++p;-	if (yych == 'Y') goto yy198;-	if (yych == 'y') goto yy198;-	goto yy31;-yy170:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy171:-	yych = *++p;-	if (yych == 'T') goto yy197;-	if (yych == 't') goto yy197;-	goto yy31;-yy172:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'C') {-			if (yych <= 'B') goto yy31;-			goto yy184;-		} else {-			if (yych <= 'Q') goto yy31;-			if (yych <= 'R') goto yy182;-			goto yy183;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'c') goto yy184;-			goto yy31;-		} else {-			if (yych <= 'r') goto yy182;-			if (yych <= 's') goto yy183;-			goto yy31;-		}-	}-yy173:-	yych = *++p;-	if (yych == 'M') goto yy181;-	if (yych == 'm') goto yy181;-	goto yy31;-yy174:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'E') goto yy178;-		if (yych <= 'O') goto yy31;-		goto yy179;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy31;-			goto yy178;-		} else {-			if (yych == 'p') goto yy179;-			goto yy31;-		}-	}-yy175:-	yych = *++p;-	if (yych == 'T') goto yy176;-	if (yych != 't') goto yy31;-yy176:-	yych = *++p;-	if (yych == 'T') goto yy177;-	if (yych != 't') goto yy31;-yy177:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy178:-	yych = *++p;-	if (yych == 'V') goto yy180;-	if (yych == 'v') goto yy180;-	goto yy31;-yy179:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy180:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy181:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy182:-	yych = *++p;-	if (yych == 'V') goto yy194;-	if (yych == 'v') goto yy194;-	goto yy31;-yy183:-	yych = *++p;-	if (yych == 'S') goto yy191;-	if (yych == 's') goto yy191;-	goto yy31;-yy184:-	yych = *++p;-	if (yych == 'O') goto yy185;-	if (yych != 'o') goto yy31;-yy185:-	yych = *++p;-	if (yych == 'N') goto yy186;-	if (yych != 'n') goto yy31;-yy186:-	yych = *++p;-	if (yych == 'D') goto yy187;-	if (yych != 'd') goto yy31;-yy187:-	yych = *++p;-	if (yych == 'L') goto yy188;-	if (yych != 'l') goto yy31;-yy188:-	yych = *++p;-	if (yych == 'I') goto yy189;-	if (yych != 'i') goto yy31;-yy189:-	yych = *++p;-	if (yych == 'F') goto yy190;-	if (yych != 'f') goto yy31;-yy190:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy191:-	yych = *++p;-	if (yych == 'I') goto yy192;-	if (yych != 'i') goto yy31;-yy192:-	yych = *++p;-	if (yych == 'O') goto yy193;-	if (yych != 'o') goto yy31;-yy193:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy194:-	yych = *++p;-	if (yych == 'I') goto yy195;-	if (yych != 'i') goto yy31;-yy195:-	yych = *++p;-	if (yych == 'C') goto yy196;-	if (yych != 'c') goto yy31;-yy196:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy197:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy198:-	yych = *++p;-	if (yych == 'P') goto yy199;-	if (yych != 'p') goto yy31;-yy199:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy200:-	yych = *++p;-	if (yych == 'P') goto yy204;-	if (yych == 'p') goto yy204;-	goto yy31;-yy201:-	yych = *++p;-	if (yych == 'D') goto yy202;-	if (yych != 'd') goto yy31;-yy202:-	yych = *++p;-	if (yych == 'A') goto yy203;-	if (yych != 'a') goto yy31;-yy203:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy204:-	yych = *++p;-	if (yych != '.') goto yy31;-	yych = *++p;-	if (yych == 'B') goto yy206;-	if (yych != 'b') goto yy31;-yy206:-	yych = *++p;-	if (yych == 'E') goto yy207;-	if (yych != 'e') goto yy31;-yy207:-	yych = *++p;-	if (yych == 'E') goto yy208;-	if (yych != 'e') goto yy31;-yy208:-	yych = *++p;-	if (yych == 'P') goto yy209;-	if (yych != 'p') goto yy31;-yy209:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy210:-	yych = *++p;-	if (yych == 'T') goto yy211;-	if (yych != 't') goto yy31;-yy211:-	yych = *++p;-	if (yych == 'I') goto yy212;-	if (yych != 'i') goto yy31;-yy212:-	yych = *++p;-	if (yych == 'F') goto yy213;-	if (yych != 'f') goto yy31;-yy213:-	yych = *++p;-	if (yych == 'Y') goto yy41;-	if (yych == 'y') goto yy41;-	goto yy31;-yy214:-	yych = *++p;-	if (yych == 'A') goto yy215;-	if (yych != 'a') goto yy31;-yy215:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy216:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'M') goto yy228;-		if (yych <= 'R') goto yy31;-		goto yy227;-	} else {-		if (yych <= 'm') {-			if (yych <= 'l') goto yy31;-			goto yy228;-		} else {-			if (yych == 's') goto yy227;-			goto yy31;-		}-	}-yy217:-	yych = *++p;-	if (yych == 'Y') goto yy225;-	if (yych == 'y') goto yy225;-	goto yy31;-yy218:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy219:-	yych = *++p;-	if (yych == 'S') goto yy220;-	if (yych != 's') goto yy31;-yy220:-	yych = *++p;-	if (yych <= 'N') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'O') goto yy221;-		if (yych != 'o') goto yy31;-	}-yy221:-	yych = *++p;-	if (yych == 'U') goto yy222;-	if (yych != 'u') goto yy31;-yy222:-	yych = *++p;-	if (yych == 'R') goto yy223;-	if (yych != 'r') goto yy31;-yy223:-	yych = *++p;-	if (yych == 'C') goto yy224;-	if (yych != 'c') goto yy31;-yy224:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy225:-	yych = *++p;-	if (yych == 'N') goto yy226;-	if (yych != 'n') goto yy31;-yy226:-	yych = *++p;-	if (yych == 'C') goto yy41;-	if (yych == 'c') goto yy41;-	goto yy31;-yy227:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy228:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy229:-	yych = *++p;-	if (yych == 'Y') goto yy249;-	if (yych == 'y') goto yy249;-	goto yy31;-yy230:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'E') goto yy246;-		if (yych <= 'N') goto yy31;-		goto yy247;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy31;-			goto yy246;-		} else {-			if (yych == 'o') goto yy247;-			goto yy31;-		}-	}-yy231:-	yych = *++p;-	if (yych == 'A') goto yy241;-	if (yych == 'a') goto yy241;-	goto yy31;-yy232:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy234;-		if (yych <= 'O') goto yy31;-		goto yy235;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy31;-			goto yy234;-		} else {-			if (yych == 'p') goto yy235;-			goto yy31;-		}-	}-yy233:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy234:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy235:-	yych = *++p;-	if (yych == 'A') goto yy236;-	if (yych != 'a') goto yy31;-yy236:-	yych = *++p;-	if (yych == 'R') goto yy237;-	if (yych != 'r') goto yy31;-yy237:-	yych = *++p;-	if (yych == 'A') goto yy238;-	if (yych != 'a') goto yy31;-yy238:-	yych = *++p;-	if (yych == 'Z') goto yy239;-	if (yych != 'z') goto yy31;-yy239:-	yych = *++p;-	if (yych == 'Z') goto yy240;-	if (yych != 'z') goto yy31;-yy240:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy241:-	yych = *++p;-	if (yych == 'T') goto yy242;-	if (yych != 't') goto yy31;-yy242:-	yych = *++p;-	if (yych == 'F') goto yy243;-	if (yych != 'f') goto yy31;-yy243:-	yych = *++p;-	if (yych == 'O') goto yy244;-	if (yych != 'o') goto yy31;-yy244:-	yych = *++p;-	if (yych == 'R') goto yy245;-	if (yych != 'r') goto yy31;-yy245:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy246:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy247:-	yych = *++p;-	if (yych == 'X') goto yy248;-	if (yych != 'x') goto yy31;-yy248:-	yych = *++p;-	if (yych == 'Y') goto yy41;-	if (yych == 'y') goto yy41;-	goto yy31;-yy249:-	yych = *++p;-	if (yych == 'C') goto yy41;-	if (yych == 'c') goto yy41;-	goto yy31;-yy250:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy251:-	yych = *++p;-	if (yych == 'A') goto yy252;-	if (yych != 'a') goto yy31;-yy252:-	yych = *++p;-	if (yych == 'Q') goto yy253;-	if (yych != 'q') goto yy31;-yy253:-	yych = *++p;-	if (yych == 'U') goto yy254;-	if (yych != 'u') goto yy31;-yy254:-	yych = *++p;-	if (yych == 'E') goto yy255;-	if (yych != 'e') goto yy31;-yy255:-	yych = *++p;-	if (yych == 'L') goto yy256;-	if (yych != 'l') goto yy31;-yy256:-	yych = *++p;-	if (yych == 'O') goto yy257;-	if (yych != 'o') goto yy31;-yy257:-	yych = *++p;-	if (yych == 'C') goto yy258;-	if (yych != 'c') goto yy31;-yy258:-	yych = *++p;-	if (yych == 'K') goto yy259;-	if (yych != 'k') goto yy31;-yy259:-	yych = *++p;-	if (yych == 'T') goto yy260;-	if (yych != 't') goto yy31;-yy260:-	yych = *++p;-	if (yych == 'O') goto yy261;-	if (yych != 'o') goto yy31;-yy261:-	yych = *++p;-	if (yych == 'K') goto yy262;-	if (yych != 'k') goto yy31;-yy262:-	yych = *++p;-	if (yych == 'E') goto yy263;-	if (yych != 'e') goto yy31;-yy263:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy264:-	yych = *++p;-	if (yych == 'T') goto yy271;-	if (yych == 't') goto yy271;-	goto yy31;-yy265:-	yych = *++p;-	if (yych == 'T') goto yy270;-	if (yych == 't') goto yy270;-	goto yy31;-yy266:-	yych = *++p;-	if (yych <= 'G') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'H') goto yy41;-		if (yych == 'h') goto yy41;-		goto yy31;-	}-yy267:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy268:-	yych = *++p;-	if (yych == 'W') goto yy269;-	if (yych != 'w') goto yy31;-yy269:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy270:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy271:-	yych = *++p;-	if (yych == 'E') goto yy272;-	if (yych != 'e') goto yy31;-yy272:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy273:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy274:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'M') goto yy305;-		if (yych <= 'O') goto yy31;-		goto yy304;-	} else {-		if (yych <= 'm') {-			if (yych <= 'l') goto yy31;-			goto yy305;-		} else {-			if (yych == 'p') goto yy304;-			goto yy31;-		}-	}-yy275:-	yych = *++p;-	if (yych <= 'Q') {-		if (yych <= '-') {-			if (yych <= ',') goto yy31;-			goto yy297;-		} else {-			if (yych == 'N') goto yy298;-			goto yy31;-		}-	} else {-		if (yych <= 'n') {-			if (yych <= 'R') goto yy296;-			if (yych <= 'm') goto yy31;-			goto yy298;-		} else {-			if (yych == 'r') goto yy296;-			goto yy31;-		}-	}-yy276:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy277:-	yych = *++p;-	if (yych == 'S') goto yy292;-	if (yych == 's') goto yy292;-	goto yy31;-yy278:-	yych = *++p;-	switch (yych) {-	case 'G':-	case 'g':	goto yy283;-	case 'I':-	case 'i':	goto yy282;-	case 'P':-	case 'p':	goto yy284;-	case 'R':-	case 'r':	goto yy285;-	default:	goto yy31;-	}-yy279:-	yych = *++p;-	if (yych == 'Q') goto yy281;-	if (yych == 'q') goto yy281;-	goto yy31;-yy280:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy281:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy282:-	yych = *++p;-	if (yych == 'L') goto yy290;-	if (yych == 'l') goto yy290;-	goto yy31;-yy283:-	yych = *++p;-	if (yych == 'N') goto yy288;-	if (yych == 'n') goto yy288;-	goto yy31;-yy284:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy285:-	yych = *++p;-	if (yych == 'K') goto yy286;-	if (yych != 'k') goto yy31;-yy286:-	yych = *++p;-	if (yych == 'E') goto yy287;-	if (yych != 'e') goto yy31;-yy287:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy288:-	yych = *++p;-	if (yych == 'E') goto yy289;-	if (yych != 'e') goto yy31;-yy289:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy290:-	yych = *++p;-	if (yych == 'T') goto yy291;-	if (yych != 't') goto yy31;-yy291:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy292:-	yych = *++p;-	if (yych == 'S') goto yy293;-	if (yych != 's') goto yy31;-yy293:-	yych = *++p;-	if (yych == 'A') goto yy294;-	if (yych != 'a') goto yy31;-yy294:-	yych = *++p;-	if (yych == 'G') goto yy295;-	if (yych != 'g') goto yy31;-yy295:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy296:-	yych = *++p;-	if (yych == 'P') goto yy303;-	if (yych == 'p') goto yy303;-	goto yy31;-yy297:-	yych = *++p;-	if (yych == 'H') goto yy300;-	if (yych == 'h') goto yy300;-	goto yy31;-yy298:-	yych = *++p;-	if (yych == 'I') goto yy299;-	if (yych != 'i') goto yy31;-yy299:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy300:-	yych = *++p;-	if (yych == 'E') goto yy301;-	if (yych != 'e') goto yy31;-yy301:-	yych = *++p;-	if (yych == 'L') goto yy302;-	if (yych != 'l') goto yy31;-yy302:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy303:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy304:-	yych = *++p;-	if (yych == 'D') goto yy308;-	if (yych == 'd') goto yy308;-	goto yy31;-yy305:-	yych = *++p;-	if (yych == 'B') goto yy306;-	if (yych != 'b') goto yy31;-yy306:-	yych = *++p;-	if (yych == 'L') goto yy307;-	if (yych != 'l') goto yy31;-yy307:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy308:-	yych = *++p;-	if (yych == 'A') goto yy309;-	if (yych != 'a') goto yy31;-yy309:-	yych = *++p;-	if (yych == 'T') goto yy310;-	if (yych != 't') goto yy31;-yy310:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy311:-	yych = *++p;-	if (yych == 'A') goto yy316;-	if (yych == 'a') goto yy316;-	goto yy31;-yy312:-	yych = *++p;-	if (yych == 'S') goto yy313;-	if (yych != 's') goto yy31;-yy313:-	yych = *++p;-	if (yych == 'T') goto yy314;-	if (yych != 't') goto yy31;-yy314:-	yych = *++p;-	if (yych == 'F') goto yy315;-	if (yych != 'f') goto yy31;-yy315:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy316:-	yych = *++p;-	if (yych == 'P') goto yy317;-	if (yych != 'p') goto yy31;-yy317:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy318:-	yych = *++p;-	if (yych == 'M') goto yy341;-	if (yych == 'm') goto yy341;-	goto yy31;-yy319:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'C') goto yy330;-		if (yych <= 'H') goto yy31;-		goto yy329;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy31;-			goto yy330;-		} else {-			if (yych == 'i') goto yy329;-			goto yy31;-		}-	}-yy320:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'N') goto yy41;-		if (yych <= 'O') goto yy31;-		goto yy41;-	} else {-		if (yych <= 'n') {-			if (yych <= 'm') goto yy31;-			goto yy41;-		} else {-			if (yych == 'p') goto yy41;-			goto yy31;-		}-	}-yy321:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'A') goto yy327;-		if (yych <= 'N') goto yy31;-		goto yy328;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy31;-			goto yy327;-		} else {-			if (yych == 'o') goto yy328;-			goto yy31;-		}-	}-yy322:-	yych = *++p;-	if (yych == 'F') goto yy326;-	if (yych == 'f') goto yy326;-	goto yy31;-yy323:-	yych = *++p;-	if (yych <= '@') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'A') goto yy325;-		if (yych == 'a') goto yy325;-		goto yy31;-	}-yy324:-	yych = *++p;-	if (yych == 'X') goto yy41;-	if (yych == 'x') goto yy41;-	goto yy31;-yy325:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy326:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy327:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy328:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy329:-	yych = *++p;-	if (yych == 'S') goto yy331;-	if (yych == 's') goto yy331;-	goto yy31;-yy330:-	yych = *++p;-	if (yych <= ':') {-		if (yych == '6') goto yy41;-		if (yych <= '9') goto yy31;-		goto yy42;-	} else {-		if (yych <= 'S') {-			if (yych <= 'R') goto yy31;-			goto yy41;-		} else {-			if (yych == 's') goto yy41;-			goto yy31;-		}-	}-yy331:-	yych = *++p;-	if (yych == '.') goto yy332;-	if (yych == ':') goto yy42;-	goto yy31;-yy332:-	yych = *++p;-	if (yych <= 'X') {-		if (yych <= 'K') {-			if (yych == 'B') goto yy335;-			goto yy31;-		} else {-			if (yych <= 'L') goto yy333;-			if (yych <= 'W') goto yy31;-			goto yy334;-		}-	} else {-		if (yych <= 'k') {-			if (yych == 'b') goto yy335;-			goto yy31;-		} else {-			if (yych <= 'l') goto yy333;-			if (yych == 'x') goto yy334;-			goto yy31;-		}-	}-yy333:-	yych = *++p;-	if (yych == 'W') goto yy340;-	if (yych == 'w') goto yy340;-	goto yy31;-yy334:-	yych = *++p;-	if (yych == 'P') goto yy338;-	if (yych == 'p') goto yy338;-	goto yy31;-yy335:-	yych = *++p;-	if (yych == 'E') goto yy336;-	if (yych != 'e') goto yy31;-yy336:-	yych = *++p;-	if (yych == 'E') goto yy337;-	if (yych != 'e') goto yy31;-yy337:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy338:-	yych = *++p;-	if (yych == 'C') goto yy339;-	if (yych != 'c') goto yy31;-yy339:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy340:-	yych = *++p;-	if (yych == 'Z') goto yy41;-	if (yych == 'z') goto yy41;-	goto yy31;-yy341:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy342:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy343:-	yych = *++p;-	if (yych == 'T') goto yy346;-	if (yych == 't') goto yy346;-	goto yy31;-yy344:-	yych = *++p;-	if (yych != '2') goto yy31;-	yych = *++p;-	if (yych == '3') goto yy41;-	goto yy31;-yy346:-	yych = *++p;-	if (yych == 'P') goto yy347;-	if (yych != 'p') goto yy31;-yy347:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy348:-	yych = *++p;-	if (yych == 'A') goto yy364;-	if (yych == 'a') goto yy364;-	goto yy31;-yy349:-	yych = *++p;-	if (yych <= 'Z') {-		if (yych == 'T') goto yy41;-		if (yych <= 'Y') goto yy31;-		goto yy355;-	} else {-		if (yych <= 't') {-			if (yych <= 's') goto yy31;-			goto yy41;-		} else {-			if (yych == 'z') goto yy355;-			goto yy31;-		}-	}-yy350:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'P') goto yy352;-		if (yych == 'p') goto yy352;-		goto yy31;-	}-yy351:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy352:-	yych = *++p;-	if (yych == 'H') goto yy353;-	if (yych != 'h') goto yy31;-yy353:-	yych = *++p;-	if (yych == 'E') goto yy354;-	if (yych != 'e') goto yy31;-yy354:-	yych = *++p;-	if (yych == 'R') goto yy41;-	if (yych == 'r') goto yy41;-	goto yy31;-yy355:-	yych = *++p;-	if (yych == 'M') goto yy356;-	if (yych != 'm') goto yy31;-yy356:-	yych = *++p;-	if (yych == 'O') goto yy357;-	if (yych != 'o') goto yy31;-yy357:-	yych = *++p;-	if (yych == 'P') goto yy358;-	if (yych != 'p') goto yy31;-yy358:-	yych = *++p;-	if (yych == 'R') goto yy359;-	if (yych != 'r') goto yy31;-yy359:-	yych = *++p;-	if (yych == 'O') goto yy360;-	if (yych != 'o') goto yy31;-yy360:-	yych = *++p;-	if (yych == 'J') goto yy361;-	if (yych != 'j') goto yy31;-yy361:-	yych = *++p;-	if (yych == 'E') goto yy362;-	if (yych != 'e') goto yy31;-yy362:-	yych = *++p;-	if (yych == 'C') goto yy363;-	if (yych != 'c') goto yy31;-yy363:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy364:-	yych = *++p;-	if (yych == 'L') goto yy365;-	if (yych != 'l') goto yy31;-yy365:-	yych = *++p;-	if (yych == 'K') goto yy41;-	if (yych == 'k') goto yy41;-	goto yy31;-yy366:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'M') {-			if (yych == 'L') goto yy376;-			goto yy31;-		} else {-			if (yych <= 'N') goto yy377;-			if (yych <= 'R') goto yy31;-			goto yy378;-		}-	} else {-		if (yych <= 'm') {-			if (yych == 'l') goto yy376;-			goto yy31;-		} else {-			if (yych <= 'n') goto yy377;-			if (yych == 's') goto yy378;-			goto yy31;-		}-	}-yy367:-	yych = *++p;-	if (yych == 'E') goto yy375;-	if (yych == 'e') goto yy375;-	goto yy31;-yy368:-	yych = *++p;-	if (yych == 'C') goto yy370;-	if (yych == 'c') goto yy370;-	goto yy31;-yy369:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy370:-	yych = *++p;-	if (yych == 'E') goto yy371;-	if (yych != 'e') goto yy31;-yy371:-	yych = *++p;-	if (yych == 'T') goto yy372;-	if (yych != 't') goto yy31;-yy372:-	yych = *++p;-	if (yych == 'I') goto yy373;-	if (yych != 'i') goto yy31;-yy373:-	yych = *++p;-	if (yych == 'M') goto yy374;-	if (yych != 'm') goto yy31;-yy374:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy375:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy376:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy377:-	yych = *++p;-	if (yych == 'G') goto yy379;-	if (yych == 'g') goto yy379;-	goto yy31;-yy378:-	yych = *++p;-	if (yych == 'H') goto yy41;-	if (yych == 'h') goto yy41;-	goto yy31;-yy379:-	yych = *++p;-	if (yych == 'E') goto yy380;-	if (yych != 'e') goto yy31;-yy380:-	yych = *++p;-	if (yych == 'R') goto yy41;-	if (yych == 'r') goto yy41;-	goto yy31;-yy381:-	yych = *++p;-	if (yych == 'T') goto yy399;-	if (yych == 't') goto yy399;-	goto yy31;-yy382:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy383:-	yych = *++p;-	if (yych == 'M') goto yy41;-	if (yych == 'm') goto yy41;-	goto yy31;-yy384:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'P') goto yy41;-		if (yych <= 'R') goto yy31;-		goto yy41;-	} else {-		if (yych <= 'p') {-			if (yych <= 'o') goto yy31;-			goto yy41;-		} else {-			if (yych == 's') goto yy41;-			goto yy31;-		}-	}-yy385:-	yych = *++p;-	if (yych == 'I') goto yy393;-	if (yych == 'i') goto yy393;-	goto yy31;-yy386:-	yych = *++p;-	if (yych == 'A') goto yy392;-	if (yych == 'a') goto yy392;-	goto yy31;-yy387:-	yych = *++p;-	if (yych == 'O') goto yy390;-	if (yych == 'o') goto yy390;-	goto yy31;-yy388:-	yych = *++p;-	if (yych == 'A') goto yy389;-	if (yych != 'a') goto yy31;-yy389:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy42;-		goto yy31;-	} else {-		if (yych <= 'S') goto yy41;-		if (yych == 's') goto yy41;-		goto yy31;-	}-yy390:-	yych = *++p;-	if (yych == 'U') goto yy391;-	if (yych != 'u') goto yy31;-yy391:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy392:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy393:-	yych = *++p;-	if (yych == 'U') goto yy394;-	if (yych != 'u') goto yy31;-yy394:-	yych = *++p;-	if (yych == 'M') goto yy395;-	if (yych != 'm') goto yy31;-yy395:-	yych = *++p;-	if (yych == 'X') goto yy396;-	if (yych != 'x') goto yy31;-yy396:-	yych = *++p;-	if (yych == 'T') goto yy397;-	if (yych != 't') goto yy31;-yy397:-	yych = *++p;-	if (yych == 'R') goto yy398;-	if (yych != 'r') goto yy31;-yy398:-	yych = *++p;-	if (yych == 'A') goto yy41;-	if (yych == 'a') goto yy41;-	goto yy31;-yy399:-	yych = *++p;-	if (yych == 'A') goto yy400;-	if (yych != 'a') goto yy31;-yy400:-	yych = *++p;-	if (yych == 'C') goto yy401;-	if (yych != 'c') goto yy31;-yy401:-	yych = *++p;-	if (yych == 'H') goto yy402;-	if (yych != 'h') goto yy31;-yy402:-	yych = *++p;-	if (yych == 'M') goto yy403;-	if (yych != 'm') goto yy31;-yy403:-	yych = *++p;-	if (yych == 'E') goto yy404;-	if (yych != 'e') goto yy31;-yy404:-	yych = *++p;-	if (yych == 'N') goto yy405;-	if (yych != 'n') goto yy31;-yy405:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy406:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy407:-	yych = *++p;-	if (yych <= 'V') {-		if (yych == 'R') goto yy41;-		if (yych <= 'U') goto yy31;-	} else {-		if (yych <= 'r') {-			if (yych <= 'q') goto yy31;-			goto yy41;-		} else {-			if (yych != 'v') goto yy31;-		}-	}-	yych = *++p;-	if (yych == 'A') goto yy409;-	if (yych != 'a') goto yy31;-yy409:-	yych = *++p;-	if (yych == 'S') goto yy410;-	if (yych != 's') goto yy31;-yy410:-	yych = *++p;-	if (yych == 'C') goto yy411;-	if (yych != 'c') goto yy31;-yy411:-	yych = *++p;-	if (yych == 'R') goto yy412;-	if (yych != 'r') goto yy31;-yy412:-	yych = *++p;-	if (yych == 'I') goto yy413;-	if (yych != 'i') goto yy31;-yy413:-	yych = *++p;-	if (yych == 'P') goto yy414;-	if (yych != 'p') goto yy31;-yy414:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy415:-	yych = *++p;-	if (yych == 'B') goto yy41;-	if (yych == 'b') goto yy41;-	goto yy31;-yy416:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy417:-	yych = *++p;-	if (yych == 'N') goto yy424;-	if (yych == 'n') goto yy424;-	goto yy31;-yy418:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy419:-	yych = *++p;-	if (yych == 'C') goto yy423;-	if (yych == 'c') goto yy423;-	goto yy31;-yy420:-	yych = *++p;-	if (yych <= 'V') {-		if (yych == 'T') goto yy422;-		if (yych <= 'U') goto yy31;-		goto yy41;-	} else {-		if (yych <= 't') {-			if (yych <= 's') goto yy31;-			goto yy422;-		} else {-			if (yych == 'v') goto yy41;-			goto yy31;-		}-	}-yy421:-	yych = *++p;-	if (yych == 'I') goto yy41;-	if (yych == 'i') goto yy41;-	goto yy31;-yy422:-	yych = *++p;-	if (yych == 'A') goto yy41;-	if (yych == 'a') goto yy41;-	goto yy31;-yy423:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy424:-	yych = *++p;-	if (yych == 'A') goto yy425;-	if (yych != 'a') goto yy31;-yy425:-	yych = *++p;-	if (yych != '-') goto yy31;-	yych = *++p;-	if (yych == 'P') goto yy427;-	if (yych != 'p') goto yy31;-yy427:-	yych = *++p;-	if (yych == 'L') goto yy428;-	if (yych != 'l') goto yy31;-yy428:-	yych = *++p;-	if (yych == 'A') goto yy429;-	if (yych != 'a') goto yy31;-yy429:-	yych = *++p;-	if (yych == 'Y') goto yy430;-	if (yych != 'y') goto yy31;-yy430:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'C') goto yy431;-		if (yych <= 'R') goto yy31;-		goto yy432;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy31;-		} else {-			if (yych == 's') goto yy432;-			goto yy31;-		}-	}-yy431:-	yych = *++p;-	if (yych == 'O') goto yy437;-	if (yych == 'o') goto yy437;-	goto yy31;-yy432:-	yych = *++p;-	if (yych == 'I') goto yy433;-	if (yych != 'i') goto yy31;-yy433:-	yych = *++p;-	if (yych == 'N') goto yy434;-	if (yych != 'n') goto yy31;-yy434:-	yych = *++p;-	if (yych == 'G') goto yy435;-	if (yych != 'g') goto yy31;-yy435:-	yych = *++p;-	if (yych == 'L') goto yy436;-	if (yych != 'l') goto yy31;-yy436:-	yych = *++p;-	if (yych == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-yy437:-	yych = *++p;-	if (yych == 'N') goto yy438;-	if (yych != 'n') goto yy31;-yy438:-	yych = *++p;-	if (yych == 'T') goto yy439;-	if (yych != 't') goto yy31;-yy439:-	yych = *++p;-	if (yych == 'A') goto yy440;-	if (yych != 'a') goto yy31;-yy440:-	yych = *++p;-	if (yych == 'I') goto yy441;-	if (yych != 'i') goto yy31;-yy441:-	yych = *++p;-	if (yych == 'N') goto yy442;-	if (yych != 'n') goto yy31;-yy442:-	yych = *++p;-	if (yych == 'E') goto yy443;-	if (yych != 'e') goto yy31;-yy443:-	yych = *++p;-	if (yych == 'R') goto yy41;-	if (yych == 'r') goto yy41;-	goto yy31;-yy444:-	yych = *++p;-	if (yych == 'S') goto yy41;-	if (yych == 's') goto yy41;-	goto yy31;-yy445:-	yych = *++p;-	if (yych <= 'N') {-		if (yych <= 'A') {-			if (yych <= '@') goto yy31;-			goto yy467;-		} else {-			if (yych <= 'L') goto yy31;-			if (yych <= 'M') goto yy468;-			goto yy469;-		}-	} else {-		if (yych <= 'l') {-			if (yych == 'a') goto yy467;-			goto yy31;-		} else {-			if (yych <= 'm') goto yy468;-			if (yych <= 'n') goto yy469;-			goto yy31;-		}-	}-yy446:-	yych = *++p;-	if (yych == 'R') goto yy454;-	if (yych == 'r') goto yy454;-	goto yy31;-yy447:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy451;-		if (yych <= 'O') goto yy31;-		goto yy41;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy31;-			goto yy451;-		} else {-			if (yych == 'p') goto yy41;-			goto yy31;-		}-	}-yy448:-	yych = *++p;-	if (yych == 'I') goto yy450;-	if (yych == 'i') goto yy450;-	goto yy31;-yy449:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy450:-	yych = *++p;-	if (yych == 'D') goto yy41;-	if (yych == 'd') goto yy41;-	goto yy31;-yy451:-	yych = *++p;-	if (yych == 'L') goto yy452;-	if (yych != 'l') goto yy31;-yy452:-	yych = *++p;-	if (yych == 'T') goto yy453;-	if (yych != 't') goto yy31;-yy453:-	yych = *++p;-	if (yych == 'O') goto yy41;-	if (yych == 'o') goto yy41;-	goto yy31;-yy454:-	yych = *++p;-	if (yych == 'O') goto yy455;-	if (yych != 'o') goto yy31;-yy455:-	yych = *++p;-	if (yych == 'M') goto yy456;-	if (yych != 'm') goto yy31;-yy456:-	yych = *++p;-	if (yych == 'E') goto yy457;-	if (yych != 'e') goto yy31;-yy457:-	yych = *++p;-	if (yych == '-') goto yy458;-	if (yych == ':') goto yy42;-	goto yy31;-yy458:-	yych = *++p;-	if (yych == 'E') goto yy459;-	if (yych != 'e') goto yy31;-yy459:-	yych = *++p;-	if (yych == 'X') goto yy460;-	if (yych != 'x') goto yy31;-yy460:-	yych = *++p;-	if (yych == 'T') goto yy461;-	if (yych != 't') goto yy31;-yy461:-	yych = *++p;-	if (yych == 'E') goto yy462;-	if (yych != 'e') goto yy31;-yy462:-	yych = *++p;-	if (yych == 'N') goto yy463;-	if (yych != 'n') goto yy31;-yy463:-	yych = *++p;-	if (yych == 'S') goto yy464;-	if (yych != 's') goto yy31;-yy464:-	yych = *++p;-	if (yych == 'I') goto yy465;-	if (yych != 'i') goto yy31;-yy465:-	yych = *++p;-	if (yych == 'O') goto yy466;-	if (yych != 'o') goto yy31;-yy466:-	yych = *++p;-	if (yych == 'N') goto yy41;-	if (yych == 'n') goto yy41;-	goto yy31;-yy467:-	yych = *++p;-	if (yych == 'P') goto yy41;-	if (yych == 'p') goto yy41;-	goto yy31;-yy468:-	yych = *++p;-	if (yych == '-') goto yy473;-	goto yy31;-yy469:-	yych = *++p;-	if (yych == 'T') goto yy470;-	if (yych != 't') goto yy31;-yy470:-	yych = *++p;-	if (yych == 'E') goto yy471;-	if (yych != 'e') goto yy31;-yy471:-	yych = *++p;-	if (yych == 'N') goto yy472;-	if (yych != 'n') goto yy31;-yy472:-	yych = *++p;-	if (yych == 'T') goto yy41;-	if (yych == 't') goto yy41;-	goto yy31;-yy473:-	yych = *++p;-	if (yych == 'E') goto yy474;-	if (yych != 'e') goto yy31;-yy474:-	yych = *++p;-	if (yych == 'V') goto yy475;-	if (yych != 'v') goto yy31;-yy475:-	yych = *++p;-	if (yych == 'E') goto yy476;-	if (yych != 'e') goto yy31;-yy476:-	yych = *++p;-	if (yych == 'N') goto yy477;-	if (yych != 'n') goto yy31;-yy477:-	yych = *++p;-	if (yych == 'T') goto yy478;-	if (yych != 't') goto yy31;-yy478:-	yych = *++p;-	if (yych == 'B') goto yy479;-	if (yych != 'b') goto yy31;-yy479:-	yych = *++p;-	if (yych == 'R') goto yy480;-	if (yych != 'r') goto yy31;-yy480:-	yych = *++p;-	if (yych == 'I') goto yy481;-	if (yych != 'i') goto yy31;-yy481:-	yych = *++p;-	if (yych == 'T') goto yy482;-	if (yych != 't') goto yy31;-yy482:-	yych = *++p;-	if (yych == 'E') goto yy483;-	if (yych != 'e') goto yy31;-yy483:-	yych = *++p;-	if (yych != '-') goto yy31;-	yych = *++p;-	if (yych == 'A') goto yy485;-	if (yych != 'a') goto yy31;-yy485:-	yych = *++p;-	if (yych == 'T') goto yy486;-	if (yych != 't') goto yy31;-yy486:-	yych = *++p;-	if (yych == 'T') goto yy487;-	if (yych != 't') goto yy31;-yy487:-	yych = *++p;-	if (yych == 'E') goto yy488;-	if (yych != 'e') goto yy31;-yy488:-	yych = *++p;-	if (yych == 'N') goto yy489;-	if (yych != 'n') goto yy31;-yy489:-	yych = *++p;-	if (yych == 'D') goto yy490;-	if (yych != 'd') goto yy31;-yy490:-	yych = *++p;-	if (yych == 'E') goto yy491;-	if (yych != 'e') goto yy31;-yy491:-	++p;-	if ((yych = *p) == 'E') goto yy41;-	if (yych == 'e') goto yy41;-	goto yy31;-}--}--// 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 = *(marker = p);-	if (yych <= 'c') {-		if (yych <= 'M') {-			if (yych <= 'E') {-				if (yych <= 'A') {-					if (yych == '\n') goto yy494;-					if (yych <= '@') goto yy521;-					goto yy498;-				} else {-					if (yych <= 'B') goto yy516;-					if (yych <= 'C') goto yy495;-					if (yych <= 'D') goto yy496;-					goto yy517;-				}-			} else {-				if (yych <= 'I') {-					if (yych <= 'F') goto yy499;-					if (yych <= 'G') goto yy500;-					if (yych <= 'H') goto yy501;-					goto yy502;-				} else {-					if (yych <= 'J') goto yy497;-					if (yych <= 'K') goto yy518;-					if (yych <= 'L') goto yy503;-					goto yy504;-				}-			}-		} else {-			if (yych <= 'U') {-				if (yych <= 'Q') {-					if (yych <= 'N') goto yy505;-					if (yych <= 'O') goto yy506;-					if (yych <= 'P') goto yy507;-					goto yy519;-				} else {-					if (yych <= 'R') goto yy508;-					if (yych <= 'S') goto yy509;-					if (yych <= 'T') goto yy510;-					goto yy511;-				}-			} else {-				if (yych <= 'Y') {-					if (yych <= 'V') goto yy512;-					if (yych <= 'W') goto yy513;-					if (yych <= 'X') goto yy514;-					goto yy520;-				} else {-					if (yych <= '`') {-						if (yych <= 'Z') goto yy515;-						goto yy521;-					} else {-						if (yych <= 'a') goto yy498;-						if (yych <= 'b') goto yy516;-						goto yy495;-					}-				}-			}-		}-	} else {-		if (yych <= 't') {-			if (yych <= 'k') {-				if (yych <= 'g') {-					if (yych <= 'd') goto yy496;-					if (yych <= 'e') goto yy517;-					if (yych <= 'f') goto yy499;-					goto yy500;-				} else {-					if (yych <= 'h') goto yy501;-					if (yych <= 'i') goto yy502;-					if (yych <= 'j') goto yy497;-					goto yy518;-				}-			} else {-				if (yych <= 'o') {-					if (yych <= 'l') goto yy503;-					if (yych <= 'm') goto yy504;-					if (yych <= 'n') goto yy505;-					goto yy506;-				} else {-					if (yych <= 'q') {-						if (yych <= 'p') goto yy507;-						goto yy519;-					} else {-						if (yych <= 'r') goto yy508;-						if (yych <= 's') goto yy509;-						goto yy510;-					}-				}-			}-		} else {-			if (yych <= 0xC1) {-				if (yych <= 'x') {-					if (yych <= 'u') goto yy511;-					if (yych <= 'v') goto yy512;-					if (yych <= 'w') goto yy513;-					goto yy514;-				} else {-					if (yych <= 'y') goto yy520;-					if (yych <= 'z') goto yy515;-					if (yych <= 0x7F) goto yy521;-				}-			} else {-				if (yych <= 0xED) {-					if (yych <= 0xDF) goto yy522;-					if (yych <= 0xE0) goto yy524;-					if (yych <= 0xEC) goto yy525;-					goto yy529;-				} else {-					if (yych <= 0xF0) {-						if (yych <= 0xEF) goto yy525;-						goto yy526;-					} else {-						if (yych <= 0xF3) goto yy527;-						if (yych <= 0xF4) goto yy528;-					}-				}-			}-		}-	}-yy494:-	{ return 0; }-yy495:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy948;-	case 'H':-	case 'h':	goto yy947;-	case 'I':-	case 'i':	goto yy950;-	case 'O':-	case 'o':	goto yy946;-	case 'R':-	case 'r':	goto yy949;-	case 'V':-	case 'v':	goto yy945;-	default:	goto yy494;-	}-yy496:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy921;-	case 'I':-	case 'i':	goto yy920;-	case 'L':-	case 'l':	goto yy918;-	case 'N':-	case 'n':	goto yy919;-	case 'O':-	case 'o':	goto yy922;-	case 'T':-	case 't':	goto yy917;-	case 'V':-	case 'v':	goto yy916;-	default:	goto yy494;-	}-yy497:-	yych = *(marker = ++p);-	if (yych <= 'M') {-		if (yych == 'A') goto yy908;-		if (yych <= 'L') goto yy494;-		goto yy907;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy494;-			goto yy908;-		} else {-			if (yych == 'm') goto yy907;-			goto yy494;-		}-	}-yy498:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy889;-	case 'B':-	case 'b':	goto yy888;-	case 'C':-	case 'c':	goto yy887;-	case 'D':-	case 'd':	goto yy886;-	case 'F':-	case 'f':	goto yy885;-	case 'I':-	case 'i':	goto yy884;-	case 'P':-	case 'p':	goto yy883;-	case 'T':-	case 't':	goto yy882;-	case 'W':-	case 'w':	goto yy533;-	default:	goto yy494;-	}-yy499:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'E') {-			if (yych == 'A') goto yy869;-			if (yych <= 'D') goto yy494;-			goto yy868;-		} else {-			if (yych == 'I') goto yy867;-			if (yych <= 'S') goto yy494;-			goto yy870;-		}-	} else {-		if (yych <= 'e') {-			if (yych == 'a') goto yy869;-			if (yych <= 'd') goto yy494;-			goto yy868;-		} else {-			if (yych <= 'i') {-				if (yych <= 'h') goto yy494;-				goto yy867;-			} else {-				if (yych == 't') goto yy870;-				goto yy494;-			}-		}-	}-yy500:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy852;-	case 'G':-	case 'g':	goto yy533;-	case 'I':-	case 'i':	goto yy850;-	case 'O':-	case 'o':	goto yy851;-	case 'T':-	case 't':	goto yy849;-	default:	goto yy494;-	}-yy501:-	yych = *(marker = ++p);-	if (yych <= 'S') {-		if (yych <= '3') {-			if (yych <= '2') goto yy494;-			goto yy845;-		} else {-			if (yych == 'C') goto yy843;-			goto yy494;-		}-	} else {-		if (yych <= 'c') {-			if (yych <= 'T') goto yy844;-			if (yych <= 'b') goto yy494;-			goto yy843;-		} else {-			if (yych == 't') goto yy844;-			goto yy494;-		}-	}-yy502:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy825;-	case 'C':-	case 'c':	goto yy822;-	case 'M':-	case 'm':	goto yy824;-	case 'N':-	case 'n':	goto yy823;-	case 'P':-	case 'p':	goto yy821;-	case 'R':-	case 'r':	goto yy820;-	case 'T':-	case 't':	goto yy819;-	default:	goto yy494;-	}-yy503:-	yych = *(marker = ++p);-	if (yych <= 'D') {-		if (yych == 'A') goto yy813;-		if (yych <= 'C') goto yy494;-		goto yy812;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy494;-			goto yy813;-		} else {-			if (yych == 'd') goto yy812;-			goto yy494;-		}-	}-yy504:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy779;-	case 'E':-	case 'e':	goto yy778;-	case 'I':-	case 'i':	goto yy781;-	case 'M':-	case 'm':	goto yy777;-	case 'S':-	case 's':	goto yy776;-	case 'T':-	case 't':	goto yy780;-	case 'U':-	case 'u':	goto yy775;-	case 'V':-	case 'v':	goto yy774;-	default:	goto yy494;-	}-yy505:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy769;-	case 'F':-	case 'f':	goto yy768;-	case 'I':-	case 'i':	goto yy767;-	case 'N':-	case 'n':	goto yy766;-	case 'O':-	case 'o':	goto yy765;-	default:	goto yy494;-	}-yy506:-	yych = *(marker = ++p);-	if (yych <= 'P') {-		if (yych == 'I') goto yy751;-		if (yych <= 'O') goto yy494;-		goto yy752;-	} else {-		if (yych <= 'i') {-			if (yych <= 'h') goto yy494;-			goto yy751;-		} else {-			if (yych == 'p') goto yy752;-			goto yy494;-		}-	}-yy507:-	yych = *(marker = ++p);-	if (yych <= 'S') {-		if (yych <= 'L') {-			if (yych == 'A') goto yy733;-			if (yych <= 'K') goto yy494;-			goto yy732;-		} else {-			if (yych <= 'O') {-				if (yych <= 'N') goto yy494;-				goto yy734;-			} else {-				if (yych <= 'Q') goto yy494;-				if (yych <= 'R') goto yy731;-				goto yy730;-			}-		}-	} else {-		if (yych <= 'n') {-			if (yych <= 'a') {-				if (yych <= '`') goto yy494;-				goto yy733;-			} else {-				if (yych == 'l') goto yy732;-				goto yy494;-			}-		} else {-			if (yych <= 'q') {-				if (yych <= 'o') goto yy734;-				goto yy494;-			} else {-				if (yych <= 'r') goto yy731;-				if (yych <= 's') goto yy730;-				goto yy494;-			}-		}-	}-yy508:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'L') {-			if (yych == 'E') goto yy720;-			goto yy494;-		} else {-			if (yych <= 'M') goto yy719;-			if (yych <= 'R') goto yy494;-			if (yych <= 'S') goto yy718;-			goto yy717;-		}-	} else {-		if (yych <= 'm') {-			if (yych == 'e') goto yy720;-			if (yych <= 'l') goto yy494;-			goto yy719;-		} else {-			if (yych <= 'r') goto yy494;-			if (yych <= 's') goto yy718;-			if (yych <= 't') goto yy717;-			goto yy494;-		}-	}-yy509:-	yych = *(marker = ++p);-	switch (yych) {-	case 'E':-	case 'e':	goto yy673;-	case 'F':-	case 'f':	goto yy672;-	case 'G':-	case 'g':	goto yy671;-	case 'H':-	case 'h':	goto yy676;-	case 'I':-	case 'i':	goto yy675;-	case 'K':-	case 'k':	goto yy670;-	case 'M':-	case 'm':	goto yy669;-	case 'N':-	case 'n':	goto yy674;-	case 'O':-	case 'o':	goto yy668;-	case 'P':-	case 'p':	goto yy667;-	case 'S':-	case 's':	goto yy666;-	case 'T':-	case 't':	goto yy665;-	case 'V':-	case 'v':	goto yy664;-	default:	goto yy494;-	}-yy510:-	yych = *(marker = ++p);-	switch (yych) {-	case 'A':-	case 'a':	goto yy640;-	case 'E':-	case 'e':	goto yy636;-	case 'F':-	case 'f':	goto yy639;-	case 'H':-	case 'h':	goto yy635;-	case 'I':-	case 'i':	goto yy637;-	case 'N':-	case 'n':	goto yy638;-	case 'V':-	case 'v':	goto yy533;-	default:	goto yy494;-	}-yy511:-	yych = *(marker = ++p);-	if (yych <= 'T') {-		if (yych <= 'N') {-			if (yych == 'D') goto yy627;-			if (yych <= 'M') goto yy494;-			goto yy626;-		} else {-			if (yych == 'R') goto yy628;-			if (yych <= 'S') goto yy494;-			goto yy625;-		}-	} else {-		if (yych <= 'n') {-			if (yych == 'd') goto yy627;-			if (yych <= 'm') goto yy494;-			goto yy626;-		} else {-			if (yych <= 'r') {-				if (yych <= 'q') goto yy494;-				goto yy628;-			} else {-				if (yych == 't') goto yy625;-				goto yy494;-			}-		}-	}-yy512:-	yych = *(marker = ++p);-	if (yych <= 'I') {-		if (yych == 'E') goto yy609;-		if (yych <= 'H') goto yy494;-		goto yy608;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy494;-			goto yy609;-		} else {-			if (yych == 'i') goto yy608;-			goto yy494;-		}-	}-yy513:-	yych = *(marker = ++p);-	if (yych <= 'Y') {-		if (yych <= 'R') {-			if (yych == 'E') goto yy598;-			goto yy494;-		} else {-			if (yych <= 'S') goto yy599;-			if (yych <= 'T') goto yy597;-			if (yych <= 'X') goto yy494;-			goto yy596;-		}-	} else {-		if (yych <= 's') {-			if (yych == 'e') goto yy598;-			if (yych <= 'r') goto yy494;-			goto yy599;-		} else {-			if (yych <= 't') goto yy597;-			if (yych == 'y') goto yy596;-			goto yy494;-		}-	}-yy514:-	yych = *(marker = ++p);-	if (yych <= 'R') {-		if (yych <= 'F') {-			if (yych == 'C') goto yy575;-			if (yych <= 'E') goto yy494;-			goto yy573;-		} else {-			if (yych == 'M') goto yy574;-			if (yych <= 'Q') goto yy494;-			goto yy572;-		}-	} else {-		if (yych <= 'f') {-			if (yych == 'c') goto yy575;-			if (yych <= 'e') goto yy494;-			goto yy573;-		} else {-			if (yych <= 'm') {-				if (yych <= 'l') goto yy494;-				goto yy574;-			} else {-				if (yych == 'r') goto yy572;-				goto yy494;-			}-		}-	}-yy515:-	yych = *(marker = ++p);-	if (yych == '3') goto yy567;-	goto yy494;-yy516:-	yych = *(marker = ++p);-	if (yych <= 'O') {-		if (yych <= 'H') {-			if (yych == 'E') goto yy557;-			goto yy494;-		} else {-			if (yych <= 'I') goto yy556;-			if (yych <= 'N') goto yy494;-			goto yy555;-		}-	} else {-		if (yych <= 'h') {-			if (yych == 'e') goto yy557;-			goto yy494;-		} else {-			if (yych <= 'i') goto yy556;-			if (yych == 'o') goto yy555;-			goto yy494;-		}-	}-yy517:-	yych = *(marker = ++p);-	if (yych == 'D') goto yy553;-	if (yych == 'd') goto yy553;-	goto yy494;-yy518:-	yych = *(marker = ++p);-	if (yych == 'E') goto yy548;-	if (yych == 'e') goto yy548;-	goto yy494;-yy519:-	yych = *(marker = ++p);-	if (yych == 'U') goto yy545;-	if (yych == 'u') goto yy545;-	goto yy494;-yy520:-	yych = *(marker = ++p);-	if (yych == 'M') goto yy530;-	if (yych == 'm') goto yy530;-	goto yy494;-yy521:-	yych = *++p;-	goto yy494;-yy522:-	yych = *++p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy521;-yy523:-	p = marker;-	goto yy494;-yy524:-	yych = *++p;-	if (yych <= 0x9F) goto yy523;-	if (yych <= 0xBF) goto yy522;-	goto yy523;-yy525:-	yych = *++p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy522;-	goto yy523;-yy526:-	yych = *++p;-	if (yych <= 0x8F) goto yy523;-	if (yych <= 0xBF) goto yy525;-	goto yy523;-yy527:-	yych = *++p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy525;-	goto yy523;-yy528:-	yych = *++p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0x8F) goto yy525;-	goto yy523;-yy529:-	yych = *++p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0x9F) goto yy522;-	goto yy523;-yy530:-	yych = *++p;-	if (yych == 'S') goto yy531;-	if (yych != 's') goto yy523;-yy531:-	yych = *++p;-	if (yych == 'G') goto yy532;-	if (yych != 'g') goto yy523;-yy532:-	yych = *++p;-	if (yych == 'R') goto yy533;-	if (yych != 'r') goto yy523;-yy533:-	yych = *++p;-	if (yych != ':') goto yy523;-yy534:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy534;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '<') goto yy523;-			if (yych <= '>') goto yy543;-			goto yy523;-		} else {-			if (yych <= 0xDF) goto yy536;-			if (yych <= 0xE0) goto yy537;-			goto yy538;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy542;-			if (yych <= 0xEF) goto yy538;-			goto yy539;-		} else {-			if (yych <= 0xF3) goto yy540;-			if (yych <= 0xF4) goto yy541;-			goto yy523;-		}-	}-yy536:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy534;-	goto yy523;-yy537:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy523;-	if (yych <= 0xBF) goto yy536;-	goto yy523;-yy538:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy536;-	goto yy523;-yy539:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy523;-	if (yych <= 0xBF) goto yy538;-	goto yy523;-yy540:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0xBF) goto yy538;-	goto yy523;-yy541:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0x8F) goto yy538;-	goto yy523;-yy542:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy523;-	if (yych <= 0x9F) goto yy536;-	goto yy523;-yy543:-	++p;-	{ return (bufsize_t)(p - start); }-yy545:-	yych = *++p;-	if (yych == 'E') goto yy546;-	if (yych != 'e') goto yy523;-yy546:-	yych = *++p;-	if (yych == 'R') goto yy547;-	if (yych != 'r') goto yy523;-yy547:-	yych = *++p;-	if (yych == 'Y') goto yy533;-	if (yych == 'y') goto yy533;-	goto yy523;-yy548:-	yych = *++p;-	if (yych == 'Y') goto yy549;-	if (yych != 'y') goto yy523;-yy549:-	yych = *++p;-	if (yych == 'P') goto yy550;-	if (yych != 'p') goto yy523;-yy550:-	yych = *++p;-	if (yych == 'A') goto yy551;-	if (yych != 'a') goto yy523;-yy551:-	yych = *++p;-	if (yych == 'R') goto yy552;-	if (yych != 'r') goto yy523;-yy552:-	yych = *++p;-	if (yych == 'C') goto yy533;-	if (yych == 'c') goto yy533;-	goto yy523;-yy553:-	yych = *++p;-	if (yych != '2') goto yy523;-	yych = *++p;-	if (yych == 'K') goto yy533;-	if (yych == 'k') goto yy533;-	goto yy523;-yy555:-	yych = *++p;-	if (yych == 'L') goto yy566;-	if (yych == 'l') goto yy566;-	goto yy523;-yy556:-	yych = *++p;-	if (yych == 'T') goto yy562;-	if (yych == 't') goto yy562;-	goto yy523;-yy557:-	yych = *++p;-	if (yych == 'S') goto yy558;-	if (yych != 's') goto yy523;-yy558:-	yych = *++p;-	if (yych == 'H') goto yy559;-	if (yych != 'h') goto yy523;-yy559:-	yych = *++p;-	if (yych == 'A') goto yy560;-	if (yych != 'a') goto yy523;-yy560:-	yych = *++p;-	if (yych == 'R') goto yy561;-	if (yych != 'r') goto yy523;-yy561:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy562:-	yych = *++p;-	if (yych == 'C') goto yy563;-	if (yych != 'c') goto yy523;-yy563:-	yych = *++p;-	if (yych == 'O') goto yy564;-	if (yych != 'o') goto yy523;-yy564:-	yych = *++p;-	if (yych == 'I') goto yy565;-	if (yych != 'i') goto yy523;-yy565:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy566:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy567:-	yych = *++p;-	if (yych != '9') goto yy523;-	yych = *++p;-	if (yych != '.') goto yy523;-	yych = *++p;-	if (yych != '5') goto yy523;-	yych = *++p;-	if (yych != '0') goto yy523;-	yych = *++p;-	if (yych <= 'Q') goto yy523;-	if (yych <= 'S') goto yy533;-	if (yych <= 'q') goto yy523;-	if (yych <= 's') goto yy533;-	goto yy523;-yy572:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy573:-	yych = *++p;-	if (yych == 'I') goto yy594;-	if (yych == 'i') goto yy594;-	goto yy523;-yy574:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy584;-		if (yych <= 'O') goto yy523;-		goto yy585;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy523;-			goto yy584;-		} else {-			if (yych == 'p') goto yy585;-			goto yy523;-		}-	}-yy575:-	yych = *++p;-	if (yych == 'O') goto yy576;-	if (yych != 'o') goto yy523;-yy576:-	yych = *++p;-	if (yych == 'N') goto yy577;-	if (yych != 'n') goto yy523;-yy577:-	yych = *++p;-	if (yych == '-') goto yy578;-	if (yych == ':') goto yy534;-	goto yy523;-yy578:-	yych = *++p;-	if (yych == 'U') goto yy579;-	if (yych != 'u') goto yy523;-yy579:-	yych = *++p;-	if (yych == 'S') goto yy580;-	if (yych != 's') goto yy523;-yy580:-	yych = *++p;-	if (yych == 'E') goto yy581;-	if (yych != 'e') goto yy523;-yy581:-	yych = *++p;-	if (yych == 'R') goto yy582;-	if (yych != 'r') goto yy523;-yy582:-	yych = *++p;-	if (yych == 'I') goto yy583;-	if (yych != 'i') goto yy523;-yy583:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy584:-	yych = *++p;-	if (yych == 'R') goto yy586;-	if (yych == 'r') goto yy586;-	goto yy523;-yy585:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy586:-	yych = *++p;-	if (yych == 'P') goto yy587;-	if (yych != 'p') goto yy523;-yy587:-	yych = *++p;-	if (yych == 'C') goto yy588;-	if (yych != 'c') goto yy523;-yy588:-	yych = *++p;-	if (yych != '.') goto yy523;-	yych = *++p;-	if (yych == 'B') goto yy590;-	if (yych != 'b') goto yy523;-yy590:-	yych = *++p;-	if (yych == 'E') goto yy591;-	if (yych != 'e') goto yy523;-yy591:-	yych = *++p;-	if (yych == 'E') goto yy592;-	if (yych != 'e') goto yy523;-yy592:-	yych = *++p;-	if (yych == 'P') goto yy593;-	if (yych != 'p') goto yy523;-yy593:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy594:-	yych = *++p;-	if (yych == 'R') goto yy595;-	if (yych != 'r') goto yy523;-yy595:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy596:-	yych = *++p;-	if (yych == 'C') goto yy604;-	if (yych == 'c') goto yy604;-	goto yy523;-yy597:-	yych = *++p;-	if (yych == 'A') goto yy603;-	if (yych == 'a') goto yy603;-	goto yy523;-yy598:-	yych = *++p;-	if (yych == 'B') goto yy600;-	if (yych == 'b') goto yy600;-	goto yy523;-yy599:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy600:-	yych = *++p;-	if (yych == 'C') goto yy601;-	if (yych != 'c') goto yy523;-yy601:-	yych = *++p;-	if (yych == 'A') goto yy602;-	if (yych != 'a') goto yy523;-yy602:-	yych = *++p;-	if (yych == 'L') goto yy533;-	if (yych == 'l') goto yy533;-	goto yy523;-yy603:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy604:-	yych = *++p;-	if (yych == 'I') goto yy605;-	if (yych != 'i') goto yy523;-yy605:-	yych = *++p;-	if (yych == 'W') goto yy606;-	if (yych != 'w') goto yy523;-yy606:-	yych = *++p;-	if (yych == 'Y') goto yy607;-	if (yych != 'y') goto yy523;-yy607:-	yych = *++p;-	if (yych == 'G') goto yy533;-	if (yych == 'g') goto yy533;-	goto yy523;-yy608:-	yych = *++p;-	if (yych == 'E') goto yy617;-	if (yych == 'e') goto yy617;-	goto yy523;-yy609:-	yych = *++p;-	if (yych <= 'N') {-		if (yych <= 'L') goto yy523;-		if (yych >= 'N') goto yy611;-	} else {-		if (yych <= 'l') goto yy523;-		if (yych <= 'm') goto yy610;-		if (yych <= 'n') goto yy611;-		goto yy523;-	}-yy610:-	yych = *++p;-	if (yych == 'M') goto yy616;-	if (yych == 'm') goto yy616;-	goto yy523;-yy611:-	yych = *++p;-	if (yych == 'T') goto yy612;-	if (yych != 't') goto yy523;-yy612:-	yych = *++p;-	if (yych == 'R') goto yy613;-	if (yych != 'r') goto yy523;-yy613:-	yych = *++p;-	if (yych == 'I') goto yy614;-	if (yych != 'i') goto yy523;-yy614:-	yych = *++p;-	if (yych == 'L') goto yy615;-	if (yych != 'l') goto yy523;-yy615:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy616:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy617:-	yych = *++p;-	if (yych == 'W') goto yy618;-	if (yych != 'w') goto yy523;-yy618:-	yych = *++p;-	if (yych != '-') goto yy523;-	yych = *++p;-	if (yych == 'S') goto yy620;-	if (yych != 's') goto yy523;-yy620:-	yych = *++p;-	if (yych == 'O') goto yy621;-	if (yych != 'o') goto yy523;-yy621:-	yych = *++p;-	if (yych == 'U') goto yy622;-	if (yych != 'u') goto yy523;-yy622:-	yych = *++p;-	if (yych == 'R') goto yy623;-	if (yych != 'r') goto yy523;-yy623:-	yych = *++p;-	if (yych == 'C') goto yy624;-	if (yych != 'c') goto yy523;-yy624:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy625:-	yych = *++p;-	if (yych == '2') goto yy632;-	goto yy523;-yy626:-	yych = *++p;-	if (yych == 'R') goto yy629;-	if (yych == 'r') goto yy629;-	goto yy523;-yy627:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy628:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy629:-	yych = *++p;-	if (yych == 'E') goto yy630;-	if (yych != 'e') goto yy523;-yy630:-	yych = *++p;-	if (yych == 'A') goto yy631;-	if (yych != 'a') goto yy523;-yy631:-	yych = *++p;-	if (yych == 'L') goto yy533;-	if (yych == 'l') goto yy533;-	goto yy523;-yy632:-	yych = *++p;-	if (yych != '0') goto yy523;-	yych = *++p;-	if (yych != '0') goto yy523;-	yych = *++p;-	if (yych == '4') goto yy533;-	goto yy523;-yy635:-	yych = *++p;-	if (yych == 'I') goto yy654;-	if (yych == 'i') goto yy654;-	goto yy523;-yy636:-	yych = *++p;-	if (yych <= 'L') {-		if (yych == 'A') goto yy646;-		if (yych <= 'K') goto yy523;-		goto yy645;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy523;-			goto yy646;-		} else {-			if (yych == 'l') goto yy645;-			goto yy523;-		}-	}-yy637:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy638:-	yych = *++p;-	if (yych == '3') goto yy642;-	goto yy523;-yy639:-	yych = *++p;-	if (yych == 'T') goto yy641;-	if (yych == 't') goto yy641;-	goto yy523;-yy640:-	yych = *++p;-	if (yych == 'G') goto yy533;-	if (yych == 'g') goto yy533;-	goto yy523;-yy641:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy642:-	yych = *++p;-	if (yych != '2') goto yy523;-	yych = *++p;-	if (yych != '7') goto yy523;-	yych = *++p;-	if (yych == '0') goto yy533;-	goto yy523;-yy645:-	yych = *++p;-	if (yych <= 'M') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'N') goto yy652;-		if (yych == 'n') goto yy652;-		goto yy523;-	}-yy646:-	yych = *++p;-	if (yych == 'M') goto yy647;-	if (yych != 'm') goto yy523;-yy647:-	yych = *++p;-	if (yych == 'S') goto yy648;-	if (yych != 's') goto yy523;-yy648:-	yych = *++p;-	if (yych == 'P') goto yy649;-	if (yych != 'p') goto yy523;-yy649:-	yych = *++p;-	if (yych == 'E') goto yy650;-	if (yych != 'e') goto yy523;-yy650:-	yych = *++p;-	if (yych == 'A') goto yy651;-	if (yych != 'a') goto yy523;-yy651:-	yych = *++p;-	if (yych == 'K') goto yy533;-	if (yych == 'k') goto yy533;-	goto yy523;-yy652:-	yych = *++p;-	if (yych == 'E') goto yy653;-	if (yych != 'e') goto yy523;-yy653:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy654:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'N') goto yy655;-		if (yych <= 'R') goto yy523;-		goto yy656;-	} else {-		if (yych <= 'n') {-			if (yych <= 'm') goto yy523;-		} else {-			if (yych == 's') goto yy656;-			goto yy523;-		}-	}-yy655:-	yych = *++p;-	if (yych == 'G') goto yy663;-	if (yych == 'g') goto yy663;-	goto yy523;-yy656:-	yych = *++p;-	if (yych == 'M') goto yy657;-	if (yych != 'm') goto yy523;-yy657:-	yych = *++p;-	if (yych == 'E') goto yy658;-	if (yych != 'e') goto yy523;-yy658:-	yych = *++p;-	if (yych == 'S') goto yy659;-	if (yych != 's') goto yy523;-yy659:-	yych = *++p;-	if (yych == 'S') goto yy660;-	if (yych != 's') goto yy523;-yy660:-	yych = *++p;-	if (yych == 'A') goto yy661;-	if (yych != 'a') goto yy523;-yy661:-	yych = *++p;-	if (yych == 'G') goto yy662;-	if (yych != 'g') goto yy523;-yy662:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy663:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy664:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy665:-	yych = *++p;-	if (yych == 'E') goto yy715;-	if (yych == 'e') goto yy715;-	goto yy523;-yy666:-	yych = *++p;-	if (yych == 'H') goto yy533;-	if (yych == 'h') goto yy533;-	goto yy523;-yy667:-	yych = *++p;-	if (yych == 'O') goto yy711;-	if (yych == 'o') goto yy711;-	goto yy523;-yy668:-	yych = *++p;-	if (yych <= 'L') {-		if (yych == 'A') goto yy701;-		if (yych <= 'K') goto yy523;-		goto yy702;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy523;-			goto yy701;-		} else {-			if (yych == 'l') goto yy702;-			goto yy523;-		}-	}-yy669:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'B') goto yy533;-		if (yych <= 'R') goto yy523;-		goto yy533;-	} else {-		if (yych <= 'b') {-			if (yych <= 'a') goto yy523;-			goto yy533;-		} else {-			if (yych == 's') goto yy533;-			goto yy523;-		}-	}-yy670:-	yych = *++p;-	if (yych == 'Y') goto yy699;-	if (yych == 'y') goto yy699;-	goto yy523;-yy671:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy672:-	yych = *++p;-	if (yych == 'T') goto yy698;-	if (yych == 't') goto yy698;-	goto yy523;-yy673:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'C') {-			if (yych <= 'B') goto yy523;-			goto yy685;-		} else {-			if (yych <= 'Q') goto yy523;-			if (yych <= 'R') goto yy683;-			goto yy684;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'c') goto yy685;-			goto yy523;-		} else {-			if (yych <= 'r') goto yy683;-			if (yych <= 's') goto yy684;-			goto yy523;-		}-	}-yy674:-	yych = *++p;-	if (yych == 'M') goto yy682;-	if (yych == 'm') goto yy682;-	goto yy523;-yy675:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'E') goto yy679;-		if (yych <= 'O') goto yy523;-		goto yy680;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy523;-			goto yy679;-		} else {-			if (yych == 'p') goto yy680;-			goto yy523;-		}-	}-yy676:-	yych = *++p;-	if (yych == 'T') goto yy677;-	if (yych != 't') goto yy523;-yy677:-	yych = *++p;-	if (yych == 'T') goto yy678;-	if (yych != 't') goto yy523;-yy678:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy679:-	yych = *++p;-	if (yych == 'V') goto yy681;-	if (yych == 'v') goto yy681;-	goto yy523;-yy680:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy681:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy682:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy683:-	yych = *++p;-	if (yych == 'V') goto yy695;-	if (yych == 'v') goto yy695;-	goto yy523;-yy684:-	yych = *++p;-	if (yych == 'S') goto yy692;-	if (yych == 's') goto yy692;-	goto yy523;-yy685:-	yych = *++p;-	if (yych == 'O') goto yy686;-	if (yych != 'o') goto yy523;-yy686:-	yych = *++p;-	if (yych == 'N') goto yy687;-	if (yych != 'n') goto yy523;-yy687:-	yych = *++p;-	if (yych == 'D') goto yy688;-	if (yych != 'd') goto yy523;-yy688:-	yych = *++p;-	if (yych == 'L') goto yy689;-	if (yych != 'l') goto yy523;-yy689:-	yych = *++p;-	if (yych == 'I') goto yy690;-	if (yych != 'i') goto yy523;-yy690:-	yych = *++p;-	if (yych == 'F') goto yy691;-	if (yych != 'f') goto yy523;-yy691:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy692:-	yych = *++p;-	if (yych == 'I') goto yy693;-	if (yych != 'i') goto yy523;-yy693:-	yych = *++p;-	if (yych == 'O') goto yy694;-	if (yych != 'o') goto yy523;-yy694:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy695:-	yych = *++p;-	if (yych == 'I') goto yy696;-	if (yych != 'i') goto yy523;-yy696:-	yych = *++p;-	if (yych == 'C') goto yy697;-	if (yych != 'c') goto yy523;-yy697:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy698:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy699:-	yych = *++p;-	if (yych == 'P') goto yy700;-	if (yych != 'p') goto yy523;-yy700:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy701:-	yych = *++p;-	if (yych == 'P') goto yy705;-	if (yych == 'p') goto yy705;-	goto yy523;-yy702:-	yych = *++p;-	if (yych == 'D') goto yy703;-	if (yych != 'd') goto yy523;-yy703:-	yych = *++p;-	if (yych == 'A') goto yy704;-	if (yych != 'a') goto yy523;-yy704:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy705:-	yych = *++p;-	if (yych != '.') goto yy523;-	yych = *++p;-	if (yych == 'B') goto yy707;-	if (yych != 'b') goto yy523;-yy707:-	yych = *++p;-	if (yych == 'E') goto yy708;-	if (yych != 'e') goto yy523;-yy708:-	yych = *++p;-	if (yych == 'E') goto yy709;-	if (yych != 'e') goto yy523;-yy709:-	yych = *++p;-	if (yych == 'P') goto yy710;-	if (yych != 'p') goto yy523;-yy710:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy711:-	yych = *++p;-	if (yych == 'T') goto yy712;-	if (yych != 't') goto yy523;-yy712:-	yych = *++p;-	if (yych == 'I') goto yy713;-	if (yych != 'i') goto yy523;-yy713:-	yych = *++p;-	if (yych == 'F') goto yy714;-	if (yych != 'f') goto yy523;-yy714:-	yych = *++p;-	if (yych == 'Y') goto yy533;-	if (yych == 'y') goto yy533;-	goto yy523;-yy715:-	yych = *++p;-	if (yych == 'A') goto yy716;-	if (yych != 'a') goto yy523;-yy716:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy717:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'M') goto yy729;-		if (yych <= 'R') goto yy523;-		goto yy728;-	} else {-		if (yych <= 'm') {-			if (yych <= 'l') goto yy523;-			goto yy729;-		} else {-			if (yych == 's') goto yy728;-			goto yy523;-		}-	}-yy718:-	yych = *++p;-	if (yych == 'Y') goto yy726;-	if (yych == 'y') goto yy726;-	goto yy523;-yy719:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy720:-	yych = *++p;-	if (yych == 'S') goto yy721;-	if (yych != 's') goto yy523;-yy721:-	yych = *++p;-	if (yych <= 'N') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'O') goto yy722;-		if (yych != 'o') goto yy523;-	}-yy722:-	yych = *++p;-	if (yych == 'U') goto yy723;-	if (yych != 'u') goto yy523;-yy723:-	yych = *++p;-	if (yych == 'R') goto yy724;-	if (yych != 'r') goto yy523;-yy724:-	yych = *++p;-	if (yych == 'C') goto yy725;-	if (yych != 'c') goto yy523;-yy725:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy726:-	yych = *++p;-	if (yych == 'N') goto yy727;-	if (yych != 'n') goto yy523;-yy727:-	yych = *++p;-	if (yych == 'C') goto yy533;-	if (yych == 'c') goto yy533;-	goto yy523;-yy728:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy729:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy730:-	yych = *++p;-	if (yych == 'Y') goto yy750;-	if (yych == 'y') goto yy750;-	goto yy523;-yy731:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'E') goto yy747;-		if (yych <= 'N') goto yy523;-		goto yy748;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy523;-			goto yy747;-		} else {-			if (yych == 'o') goto yy748;-			goto yy523;-		}-	}-yy732:-	yych = *++p;-	if (yych == 'A') goto yy742;-	if (yych == 'a') goto yy742;-	goto yy523;-yy733:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy735;-		if (yych <= 'O') goto yy523;-		goto yy736;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy523;-			goto yy735;-		} else {-			if (yych == 'p') goto yy736;-			goto yy523;-		}-	}-yy734:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy735:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy736:-	yych = *++p;-	if (yych == 'A') goto yy737;-	if (yych != 'a') goto yy523;-yy737:-	yych = *++p;-	if (yych == 'R') goto yy738;-	if (yych != 'r') goto yy523;-yy738:-	yych = *++p;-	if (yych == 'A') goto yy739;-	if (yych != 'a') goto yy523;-yy739:-	yych = *++p;-	if (yych == 'Z') goto yy740;-	if (yych != 'z') goto yy523;-yy740:-	yych = *++p;-	if (yych == 'Z') goto yy741;-	if (yych != 'z') goto yy523;-yy741:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy742:-	yych = *++p;-	if (yych == 'T') goto yy743;-	if (yych != 't') goto yy523;-yy743:-	yych = *++p;-	if (yych == 'F') goto yy744;-	if (yych != 'f') goto yy523;-yy744:-	yych = *++p;-	if (yych == 'O') goto yy745;-	if (yych != 'o') goto yy523;-yy745:-	yych = *++p;-	if (yych == 'R') goto yy746;-	if (yych != 'r') goto yy523;-yy746:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy747:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy748:-	yych = *++p;-	if (yych == 'X') goto yy749;-	if (yych != 'x') goto yy523;-yy749:-	yych = *++p;-	if (yych == 'Y') goto yy533;-	if (yych == 'y') goto yy533;-	goto yy523;-yy750:-	yych = *++p;-	if (yych == 'C') goto yy533;-	if (yych == 'c') goto yy533;-	goto yy523;-yy751:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy752:-	yych = *++p;-	if (yych == 'A') goto yy753;-	if (yych != 'a') goto yy523;-yy753:-	yych = *++p;-	if (yych == 'Q') goto yy754;-	if (yych != 'q') goto yy523;-yy754:-	yych = *++p;-	if (yych == 'U') goto yy755;-	if (yych != 'u') goto yy523;-yy755:-	yych = *++p;-	if (yych == 'E') goto yy756;-	if (yych != 'e') goto yy523;-yy756:-	yych = *++p;-	if (yych == 'L') goto yy757;-	if (yych != 'l') goto yy523;-yy757:-	yych = *++p;-	if (yych == 'O') goto yy758;-	if (yych != 'o') goto yy523;-yy758:-	yych = *++p;-	if (yych == 'C') goto yy759;-	if (yych != 'c') goto yy523;-yy759:-	yych = *++p;-	if (yych == 'K') goto yy760;-	if (yych != 'k') goto yy523;-yy760:-	yych = *++p;-	if (yych == 'T') goto yy761;-	if (yych != 't') goto yy523;-yy761:-	yych = *++p;-	if (yych == 'O') goto yy762;-	if (yych != 'o') goto yy523;-yy762:-	yych = *++p;-	if (yych == 'K') goto yy763;-	if (yych != 'k') goto yy523;-yy763:-	yych = *++p;-	if (yych == 'E') goto yy764;-	if (yych != 'e') goto yy523;-yy764:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy765:-	yych = *++p;-	if (yych == 'T') goto yy772;-	if (yych == 't') goto yy772;-	goto yy523;-yy766:-	yych = *++p;-	if (yych == 'T') goto yy771;-	if (yych == 't') goto yy771;-	goto yy523;-yy767:-	yych = *++p;-	if (yych <= 'G') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'H') goto yy533;-		if (yych == 'h') goto yy533;-		goto yy523;-	}-yy768:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy769:-	yych = *++p;-	if (yych == 'W') goto yy770;-	if (yych != 'w') goto yy523;-yy770:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy771:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy772:-	yych = *++p;-	if (yych == 'E') goto yy773;-	if (yych != 'e') goto yy523;-yy773:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy774:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy775:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'M') goto yy806;-		if (yych <= 'O') goto yy523;-		goto yy805;-	} else {-		if (yych <= 'm') {-			if (yych <= 'l') goto yy523;-			goto yy806;-		} else {-			if (yych == 'p') goto yy805;-			goto yy523;-		}-	}-yy776:-	yych = *++p;-	if (yych <= 'Q') {-		if (yych <= '-') {-			if (yych <= ',') goto yy523;-			goto yy798;-		} else {-			if (yych == 'N') goto yy799;-			goto yy523;-		}-	} else {-		if (yych <= 'n') {-			if (yych <= 'R') goto yy797;-			if (yych <= 'm') goto yy523;-			goto yy799;-		} else {-			if (yych == 'r') goto yy797;-			goto yy523;-		}-	}-yy777:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy778:-	yych = *++p;-	if (yych == 'S') goto yy793;-	if (yych == 's') goto yy793;-	goto yy523;-yy779:-	yych = *++p;-	switch (yych) {-	case 'G':-	case 'g':	goto yy784;-	case 'I':-	case 'i':	goto yy783;-	case 'P':-	case 'p':	goto yy785;-	case 'R':-	case 'r':	goto yy786;-	default:	goto yy523;-	}-yy780:-	yych = *++p;-	if (yych == 'Q') goto yy782;-	if (yych == 'q') goto yy782;-	goto yy523;-yy781:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy782:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy783:-	yych = *++p;-	if (yych == 'L') goto yy791;-	if (yych == 'l') goto yy791;-	goto yy523;-yy784:-	yych = *++p;-	if (yych == 'N') goto yy789;-	if (yych == 'n') goto yy789;-	goto yy523;-yy785:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy786:-	yych = *++p;-	if (yych == 'K') goto yy787;-	if (yych != 'k') goto yy523;-yy787:-	yych = *++p;-	if (yych == 'E') goto yy788;-	if (yych != 'e') goto yy523;-yy788:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy789:-	yych = *++p;-	if (yych == 'E') goto yy790;-	if (yych != 'e') goto yy523;-yy790:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy791:-	yych = *++p;-	if (yych == 'T') goto yy792;-	if (yych != 't') goto yy523;-yy792:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy793:-	yych = *++p;-	if (yych == 'S') goto yy794;-	if (yych != 's') goto yy523;-yy794:-	yych = *++p;-	if (yych == 'A') goto yy795;-	if (yych != 'a') goto yy523;-yy795:-	yych = *++p;-	if (yych == 'G') goto yy796;-	if (yych != 'g') goto yy523;-yy796:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy797:-	yych = *++p;-	if (yych == 'P') goto yy804;-	if (yych == 'p') goto yy804;-	goto yy523;-yy798:-	yych = *++p;-	if (yych == 'H') goto yy801;-	if (yych == 'h') goto yy801;-	goto yy523;-yy799:-	yych = *++p;-	if (yych == 'I') goto yy800;-	if (yych != 'i') goto yy523;-yy800:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy801:-	yych = *++p;-	if (yych == 'E') goto yy802;-	if (yych != 'e') goto yy523;-yy802:-	yych = *++p;-	if (yych == 'L') goto yy803;-	if (yych != 'l') goto yy523;-yy803:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy804:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy805:-	yych = *++p;-	if (yych == 'D') goto yy809;-	if (yych == 'd') goto yy809;-	goto yy523;-yy806:-	yych = *++p;-	if (yych == 'B') goto yy807;-	if (yych != 'b') goto yy523;-yy807:-	yych = *++p;-	if (yych == 'L') goto yy808;-	if (yych != 'l') goto yy523;-yy808:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy809:-	yych = *++p;-	if (yych == 'A') goto yy810;-	if (yych != 'a') goto yy523;-yy810:-	yych = *++p;-	if (yych == 'T') goto yy811;-	if (yych != 't') goto yy523;-yy811:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy812:-	yych = *++p;-	if (yych == 'A') goto yy817;-	if (yych == 'a') goto yy817;-	goto yy523;-yy813:-	yych = *++p;-	if (yych == 'S') goto yy814;-	if (yych != 's') goto yy523;-yy814:-	yych = *++p;-	if (yych == 'T') goto yy815;-	if (yych != 't') goto yy523;-yy815:-	yych = *++p;-	if (yych == 'F') goto yy816;-	if (yych != 'f') goto yy523;-yy816:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy817:-	yych = *++p;-	if (yych == 'P') goto yy818;-	if (yych != 'p') goto yy523;-yy818:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy819:-	yych = *++p;-	if (yych == 'M') goto yy842;-	if (yych == 'm') goto yy842;-	goto yy523;-yy820:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'C') goto yy831;-		if (yych <= 'H') goto yy523;-		goto yy830;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy523;-			goto yy831;-		} else {-			if (yych == 'i') goto yy830;-			goto yy523;-		}-	}-yy821:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'N') goto yy533;-		if (yych <= 'O') goto yy523;-		goto yy533;-	} else {-		if (yych <= 'n') {-			if (yych <= 'm') goto yy523;-			goto yy533;-		} else {-			if (yych == 'p') goto yy533;-			goto yy523;-		}-	}-yy822:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'A') goto yy828;-		if (yych <= 'N') goto yy523;-		goto yy829;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy523;-			goto yy828;-		} else {-			if (yych == 'o') goto yy829;-			goto yy523;-		}-	}-yy823:-	yych = *++p;-	if (yych == 'F') goto yy827;-	if (yych == 'f') goto yy827;-	goto yy523;-yy824:-	yych = *++p;-	if (yych <= '@') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'A') goto yy826;-		if (yych == 'a') goto yy826;-		goto yy523;-	}-yy825:-	yych = *++p;-	if (yych == 'X') goto yy533;-	if (yych == 'x') goto yy533;-	goto yy523;-yy826:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy827:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy828:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy829:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy830:-	yych = *++p;-	if (yych == 'S') goto yy832;-	if (yych == 's') goto yy832;-	goto yy523;-yy831:-	yych = *++p;-	if (yych <= ':') {-		if (yych == '6') goto yy533;-		if (yych <= '9') goto yy523;-		goto yy534;-	} else {-		if (yych <= 'S') {-			if (yych <= 'R') goto yy523;-			goto yy533;-		} else {-			if (yych == 's') goto yy533;-			goto yy523;-		}-	}-yy832:-	yych = *++p;-	if (yych == '.') goto yy833;-	if (yych == ':') goto yy534;-	goto yy523;-yy833:-	yych = *++p;-	if (yych <= 'X') {-		if (yych <= 'K') {-			if (yych == 'B') goto yy836;-			goto yy523;-		} else {-			if (yych <= 'L') goto yy834;-			if (yych <= 'W') goto yy523;-			goto yy835;-		}-	} else {-		if (yych <= 'k') {-			if (yych == 'b') goto yy836;-			goto yy523;-		} else {-			if (yych <= 'l') goto yy834;-			if (yych == 'x') goto yy835;-			goto yy523;-		}-	}-yy834:-	yych = *++p;-	if (yych == 'W') goto yy841;-	if (yych == 'w') goto yy841;-	goto yy523;-yy835:-	yych = *++p;-	if (yych == 'P') goto yy839;-	if (yych == 'p') goto yy839;-	goto yy523;-yy836:-	yych = *++p;-	if (yych == 'E') goto yy837;-	if (yych != 'e') goto yy523;-yy837:-	yych = *++p;-	if (yych == 'E') goto yy838;-	if (yych != 'e') goto yy523;-yy838:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy839:-	yych = *++p;-	if (yych == 'C') goto yy840;-	if (yych != 'c') goto yy523;-yy840:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy841:-	yych = *++p;-	if (yych == 'Z') goto yy533;-	if (yych == 'z') goto yy533;-	goto yy523;-yy842:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy843:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy844:-	yych = *++p;-	if (yych == 'T') goto yy847;-	if (yych == 't') goto yy847;-	goto yy523;-yy845:-	yych = *++p;-	if (yych != '2') goto yy523;-	yych = *++p;-	if (yych == '3') goto yy533;-	goto yy523;-yy847:-	yych = *++p;-	if (yych == 'P') goto yy848;-	if (yych != 'p') goto yy523;-yy848:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy849:-	yych = *++p;-	if (yych == 'A') goto yy865;-	if (yych == 'a') goto yy865;-	goto yy523;-yy850:-	yych = *++p;-	if (yych <= 'Z') {-		if (yych == 'T') goto yy533;-		if (yych <= 'Y') goto yy523;-		goto yy856;-	} else {-		if (yych <= 't') {-			if (yych <= 's') goto yy523;-			goto yy533;-		} else {-			if (yych == 'z') goto yy856;-			goto yy523;-		}-	}-yy851:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'P') goto yy853;-		if (yych == 'p') goto yy853;-		goto yy523;-	}-yy852:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy853:-	yych = *++p;-	if (yych == 'H') goto yy854;-	if (yych != 'h') goto yy523;-yy854:-	yych = *++p;-	if (yych == 'E') goto yy855;-	if (yych != 'e') goto yy523;-yy855:-	yych = *++p;-	if (yych == 'R') goto yy533;-	if (yych == 'r') goto yy533;-	goto yy523;-yy856:-	yych = *++p;-	if (yych == 'M') goto yy857;-	if (yych != 'm') goto yy523;-yy857:-	yych = *++p;-	if (yych == 'O') goto yy858;-	if (yych != 'o') goto yy523;-yy858:-	yych = *++p;-	if (yych == 'P') goto yy859;-	if (yych != 'p') goto yy523;-yy859:-	yych = *++p;-	if (yych == 'R') goto yy860;-	if (yych != 'r') goto yy523;-yy860:-	yych = *++p;-	if (yych == 'O') goto yy861;-	if (yych != 'o') goto yy523;-yy861:-	yych = *++p;-	if (yych == 'J') goto yy862;-	if (yych != 'j') goto yy523;-yy862:-	yych = *++p;-	if (yych == 'E') goto yy863;-	if (yych != 'e') goto yy523;-yy863:-	yych = *++p;-	if (yych == 'C') goto yy864;-	if (yych != 'c') goto yy523;-yy864:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy865:-	yych = *++p;-	if (yych == 'L') goto yy866;-	if (yych != 'l') goto yy523;-yy866:-	yych = *++p;-	if (yych == 'K') goto yy533;-	if (yych == 'k') goto yy533;-	goto yy523;-yy867:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'M') {-			if (yych == 'L') goto yy877;-			goto yy523;-		} else {-			if (yych <= 'N') goto yy878;-			if (yych <= 'R') goto yy523;-			goto yy879;-		}-	} else {-		if (yych <= 'm') {-			if (yych == 'l') goto yy877;-			goto yy523;-		} else {-			if (yych <= 'n') goto yy878;-			if (yych == 's') goto yy879;-			goto yy523;-		}-	}-yy868:-	yych = *++p;-	if (yych == 'E') goto yy876;-	if (yych == 'e') goto yy876;-	goto yy523;-yy869:-	yych = *++p;-	if (yych == 'C') goto yy871;-	if (yych == 'c') goto yy871;-	goto yy523;-yy870:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy871:-	yych = *++p;-	if (yych == 'E') goto yy872;-	if (yych != 'e') goto yy523;-yy872:-	yych = *++p;-	if (yych == 'T') goto yy873;-	if (yych != 't') goto yy523;-yy873:-	yych = *++p;-	if (yych == 'I') goto yy874;-	if (yych != 'i') goto yy523;-yy874:-	yych = *++p;-	if (yych == 'M') goto yy875;-	if (yych != 'm') goto yy523;-yy875:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy876:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy877:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy878:-	yych = *++p;-	if (yych == 'G') goto yy880;-	if (yych == 'g') goto yy880;-	goto yy523;-yy879:-	yych = *++p;-	if (yych == 'H') goto yy533;-	if (yych == 'h') goto yy533;-	goto yy523;-yy880:-	yych = *++p;-	if (yych == 'E') goto yy881;-	if (yych != 'e') goto yy523;-yy881:-	yych = *++p;-	if (yych == 'R') goto yy533;-	if (yych == 'r') goto yy533;-	goto yy523;-yy882:-	yych = *++p;-	if (yych == 'T') goto yy900;-	if (yych == 't') goto yy900;-	goto yy523;-yy883:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy884:-	yych = *++p;-	if (yych == 'M') goto yy533;-	if (yych == 'm') goto yy533;-	goto yy523;-yy885:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'P') goto yy533;-		if (yych <= 'R') goto yy523;-		goto yy533;-	} else {-		if (yych <= 'p') {-			if (yych <= 'o') goto yy523;-			goto yy533;-		} else {-			if (yych == 's') goto yy533;-			goto yy523;-		}-	}-yy886:-	yych = *++p;-	if (yych == 'I') goto yy894;-	if (yych == 'i') goto yy894;-	goto yy523;-yy887:-	yych = *++p;-	if (yych == 'A') goto yy893;-	if (yych == 'a') goto yy893;-	goto yy523;-yy888:-	yych = *++p;-	if (yych == 'O') goto yy891;-	if (yych == 'o') goto yy891;-	goto yy523;-yy889:-	yych = *++p;-	if (yych == 'A') goto yy890;-	if (yych != 'a') goto yy523;-yy890:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == ':') goto yy534;-		goto yy523;-	} else {-		if (yych <= 'S') goto yy533;-		if (yych == 's') goto yy533;-		goto yy523;-	}-yy891:-	yych = *++p;-	if (yych == 'U') goto yy892;-	if (yych != 'u') goto yy523;-yy892:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy893:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy894:-	yych = *++p;-	if (yych == 'U') goto yy895;-	if (yych != 'u') goto yy523;-yy895:-	yych = *++p;-	if (yych == 'M') goto yy896;-	if (yych != 'm') goto yy523;-yy896:-	yych = *++p;-	if (yych == 'X') goto yy897;-	if (yych != 'x') goto yy523;-yy897:-	yych = *++p;-	if (yych == 'T') goto yy898;-	if (yych != 't') goto yy523;-yy898:-	yych = *++p;-	if (yych == 'R') goto yy899;-	if (yych != 'r') goto yy523;-yy899:-	yych = *++p;-	if (yych == 'A') goto yy533;-	if (yych == 'a') goto yy533;-	goto yy523;-yy900:-	yych = *++p;-	if (yych == 'A') goto yy901;-	if (yych != 'a') goto yy523;-yy901:-	yych = *++p;-	if (yych == 'C') goto yy902;-	if (yych != 'c') goto yy523;-yy902:-	yych = *++p;-	if (yych == 'H') goto yy903;-	if (yych != 'h') goto yy523;-yy903:-	yych = *++p;-	if (yych == 'M') goto yy904;-	if (yych != 'm') goto yy523;-yy904:-	yych = *++p;-	if (yych == 'E') goto yy905;-	if (yych != 'e') goto yy523;-yy905:-	yych = *++p;-	if (yych == 'N') goto yy906;-	if (yych != 'n') goto yy523;-yy906:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy907:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy908:-	yych = *++p;-	if (yych <= 'V') {-		if (yych == 'R') goto yy533;-		if (yych <= 'U') goto yy523;-	} else {-		if (yych <= 'r') {-			if (yych <= 'q') goto yy523;-			goto yy533;-		} else {-			if (yych != 'v') goto yy523;-		}-	}-	yych = *++p;-	if (yych == 'A') goto yy910;-	if (yych != 'a') goto yy523;-yy910:-	yych = *++p;-	if (yych == 'S') goto yy911;-	if (yych != 's') goto yy523;-yy911:-	yych = *++p;-	if (yych == 'C') goto yy912;-	if (yych != 'c') goto yy523;-yy912:-	yych = *++p;-	if (yych == 'R') goto yy913;-	if (yych != 'r') goto yy523;-yy913:-	yych = *++p;-	if (yych == 'I') goto yy914;-	if (yych != 'i') goto yy523;-yy914:-	yych = *++p;-	if (yych == 'P') goto yy915;-	if (yych != 'p') goto yy523;-yy915:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy916:-	yych = *++p;-	if (yych == 'B') goto yy533;-	if (yych == 'b') goto yy533;-	goto yy523;-yy917:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy918:-	yych = *++p;-	if (yych == 'N') goto yy925;-	if (yych == 'n') goto yy925;-	goto yy523;-yy919:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy920:-	yych = *++p;-	if (yych == 'C') goto yy924;-	if (yych == 'c') goto yy924;-	goto yy523;-yy921:-	yych = *++p;-	if (yych <= 'V') {-		if (yych == 'T') goto yy923;-		if (yych <= 'U') goto yy523;-		goto yy533;-	} else {-		if (yych <= 't') {-			if (yych <= 's') goto yy523;-			goto yy923;-		} else {-			if (yych == 'v') goto yy533;-			goto yy523;-		}-	}-yy922:-	yych = *++p;-	if (yych == 'I') goto yy533;-	if (yych == 'i') goto yy533;-	goto yy523;-yy923:-	yych = *++p;-	if (yych == 'A') goto yy533;-	if (yych == 'a') goto yy533;-	goto yy523;-yy924:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy925:-	yych = *++p;-	if (yych == 'A') goto yy926;-	if (yych != 'a') goto yy523;-yy926:-	yych = *++p;-	if (yych != '-') goto yy523;-	yych = *++p;-	if (yych == 'P') goto yy928;-	if (yych != 'p') goto yy523;-yy928:-	yych = *++p;-	if (yych == 'L') goto yy929;-	if (yych != 'l') goto yy523;-yy929:-	yych = *++p;-	if (yych == 'A') goto yy930;-	if (yych != 'a') goto yy523;-yy930:-	yych = *++p;-	if (yych == 'Y') goto yy931;-	if (yych != 'y') goto yy523;-yy931:-	yych = *++p;-	if (yych <= 'S') {-		if (yych == 'C') goto yy932;-		if (yych <= 'R') goto yy523;-		goto yy933;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy523;-		} else {-			if (yych == 's') goto yy933;-			goto yy523;-		}-	}-yy932:-	yych = *++p;-	if (yych == 'O') goto yy938;-	if (yych == 'o') goto yy938;-	goto yy523;-yy933:-	yych = *++p;-	if (yych == 'I') goto yy934;-	if (yych != 'i') goto yy523;-yy934:-	yych = *++p;-	if (yych == 'N') goto yy935;-	if (yych != 'n') goto yy523;-yy935:-	yych = *++p;-	if (yych == 'G') goto yy936;-	if (yych != 'g') goto yy523;-yy936:-	yych = *++p;-	if (yych == 'L') goto yy937;-	if (yych != 'l') goto yy523;-yy937:-	yych = *++p;-	if (yych == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-yy938:-	yych = *++p;-	if (yych == 'N') goto yy939;-	if (yych != 'n') goto yy523;-yy939:-	yych = *++p;-	if (yych == 'T') goto yy940;-	if (yych != 't') goto yy523;-yy940:-	yych = *++p;-	if (yych == 'A') goto yy941;-	if (yych != 'a') goto yy523;-yy941:-	yych = *++p;-	if (yych == 'I') goto yy942;-	if (yych != 'i') goto yy523;-yy942:-	yych = *++p;-	if (yych == 'N') goto yy943;-	if (yych != 'n') goto yy523;-yy943:-	yych = *++p;-	if (yych == 'E') goto yy944;-	if (yych != 'e') goto yy523;-yy944:-	yych = *++p;-	if (yych == 'R') goto yy533;-	if (yych == 'r') goto yy533;-	goto yy523;-yy945:-	yych = *++p;-	if (yych == 'S') goto yy533;-	if (yych == 's') goto yy533;-	goto yy523;-yy946:-	yych = *++p;-	if (yych <= 'N') {-		if (yych <= 'A') {-			if (yych <= '@') goto yy523;-			goto yy968;-		} else {-			if (yych <= 'L') goto yy523;-			if (yych <= 'M') goto yy969;-			goto yy970;-		}-	} else {-		if (yych <= 'l') {-			if (yych == 'a') goto yy968;-			goto yy523;-		} else {-			if (yych <= 'm') goto yy969;-			if (yych <= 'n') goto yy970;-			goto yy523;-		}-	}-yy947:-	yych = *++p;-	if (yych == 'R') goto yy955;-	if (yych == 'r') goto yy955;-	goto yy523;-yy948:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy952;-		if (yych <= 'O') goto yy523;-		goto yy533;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy523;-			goto yy952;-		} else {-			if (yych == 'p') goto yy533;-			goto yy523;-		}-	}-yy949:-	yych = *++p;-	if (yych == 'I') goto yy951;-	if (yych == 'i') goto yy951;-	goto yy523;-yy950:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy951:-	yych = *++p;-	if (yych == 'D') goto yy533;-	if (yych == 'd') goto yy533;-	goto yy523;-yy952:-	yych = *++p;-	if (yych == 'L') goto yy953;-	if (yych != 'l') goto yy523;-yy953:-	yych = *++p;-	if (yych == 'T') goto yy954;-	if (yych != 't') goto yy523;-yy954:-	yych = *++p;-	if (yych == 'O') goto yy533;-	if (yych == 'o') goto yy533;-	goto yy523;-yy955:-	yych = *++p;-	if (yych == 'O') goto yy956;-	if (yych != 'o') goto yy523;-yy956:-	yych = *++p;-	if (yych == 'M') goto yy957;-	if (yych != 'm') goto yy523;-yy957:-	yych = *++p;-	if (yych == 'E') goto yy958;-	if (yych != 'e') goto yy523;-yy958:-	yych = *++p;-	if (yych == '-') goto yy959;-	if (yych == ':') goto yy534;-	goto yy523;-yy959:-	yych = *++p;-	if (yych == 'E') goto yy960;-	if (yych != 'e') goto yy523;-yy960:-	yych = *++p;-	if (yych == 'X') goto yy961;-	if (yych != 'x') goto yy523;-yy961:-	yych = *++p;-	if (yych == 'T') goto yy962;-	if (yych != 't') goto yy523;-yy962:-	yych = *++p;-	if (yych == 'E') goto yy963;-	if (yych != 'e') goto yy523;-yy963:-	yych = *++p;-	if (yych == 'N') goto yy964;-	if (yych != 'n') goto yy523;-yy964:-	yych = *++p;-	if (yych == 'S') goto yy965;-	if (yych != 's') goto yy523;-yy965:-	yych = *++p;-	if (yych == 'I') goto yy966;-	if (yych != 'i') goto yy523;-yy966:-	yych = *++p;-	if (yych == 'O') goto yy967;-	if (yych != 'o') goto yy523;-yy967:-	yych = *++p;-	if (yych == 'N') goto yy533;-	if (yych == 'n') goto yy533;-	goto yy523;-yy968:-	yych = *++p;-	if (yych == 'P') goto yy533;-	if (yych == 'p') goto yy533;-	goto yy523;-yy969:-	yych = *++p;-	if (yych == '-') goto yy974;-	goto yy523;-yy970:-	yych = *++p;-	if (yych == 'T') goto yy971;-	if (yych != 't') goto yy523;-yy971:-	yych = *++p;-	if (yych == 'E') goto yy972;-	if (yych != 'e') goto yy523;-yy972:-	yych = *++p;-	if (yych == 'N') goto yy973;-	if (yych != 'n') goto yy523;-yy973:-	yych = *++p;-	if (yych == 'T') goto yy533;-	if (yych == 't') goto yy533;-	goto yy523;-yy974:-	yych = *++p;-	if (yych == 'E') goto yy975;-	if (yych != 'e') goto yy523;-yy975:-	yych = *++p;-	if (yych == 'V') goto yy976;-	if (yych != 'v') goto yy523;-yy976:-	yych = *++p;-	if (yych == 'E') goto yy977;-	if (yych != 'e') goto yy523;-yy977:-	yych = *++p;-	if (yych == 'N') goto yy978;-	if (yych != 'n') goto yy523;-yy978:-	yych = *++p;-	if (yych == 'T') goto yy979;-	if (yych != 't') goto yy523;-yy979:-	yych = *++p;-	if (yych == 'B') goto yy980;-	if (yych != 'b') goto yy523;-yy980:-	yych = *++p;-	if (yych == 'R') goto yy981;-	if (yych != 'r') goto yy523;-yy981:-	yych = *++p;-	if (yych == 'I') goto yy982;-	if (yych != 'i') goto yy523;-yy982:-	yych = *++p;-	if (yych == 'T') goto yy983;-	if (yych != 't') goto yy523;-yy983:-	yych = *++p;-	if (yych == 'E') goto yy984;-	if (yych != 'e') goto yy523;-yy984:-	yych = *++p;-	if (yych != '-') goto yy523;-	yych = *++p;-	if (yych == 'A') goto yy986;-	if (yych != 'a') goto yy523;-yy986:-	yych = *++p;-	if (yych == 'T') goto yy987;-	if (yych != 't') goto yy523;-yy987:-	yych = *++p;-	if (yych == 'T') goto yy988;-	if (yych != 't') goto yy523;-yy988:-	yych = *++p;-	if (yych == 'E') goto yy989;-	if (yych != 'e') goto yy523;-yy989:-	yych = *++p;-	if (yych == 'N') goto yy990;-	if (yych != 'n') goto yy523;-yy990:-	yych = *++p;-	if (yych == 'D') goto yy991;-	if (yych != 'd') goto yy523;-yy991:-	yych = *++p;-	if (yych == 'E') goto yy992;-	if (yych != 'e') goto yy523;-yy992:-	++p;-	if ((yych = *p) == 'E') goto yy533;-	if (yych == 'e') goto yy533;-	goto yy523;-}--}--// 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 = *(marker = p);-	if (yych <= '?') {-		if (yych <= ')') {-			if (yych <= ' ') {-				if (yych != '\n') goto yy997;-			} else {-				if (yych == '"') goto yy997;-				if (yych <= '\'') goto yy996;-				goto yy997;-			}-		} else {-			if (yych <= '9') {-				if (yych == ',') goto yy997;-				goto yy996;-			} else {-				if (yych == '=') goto yy996;-				if (yych <= '>') goto yy997;-				goto yy996;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= ']') {-				if (yych <= '@') goto yy997;-				if (yych <= 'Z') goto yy996;-				goto yy997;-			} else {-				if (yych <= '~') goto yy996;-				if (yych <= 0x7F) goto yy997;-				if (yych >= 0xC2) goto yy998;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1000;-				if (yych == 0xED) goto yy1005;-				goto yy1001;-			} else {-				if (yych <= 0xF0) goto yy1002;-				if (yych <= 0xF3) goto yy1003;-				if (yych <= 0xF4) goto yy1004;-			}-		}-	}-yy995:-	{ return 0; }-yy996:-	yych = *(marker = ++p);-	if (yych <= ',') {-		if (yych <= '"') {-			if (yych == '!') goto yy1008;-			goto yy995;-		} else {-			if (yych <= '\'') goto yy1008;-			if (yych <= ')') goto yy995;-			if (yych <= '+') goto yy1008;-			goto yy995;-		}-	} else {-		if (yych <= '>') {-			if (yych <= '9') goto yy1008;-			if (yych == '=') goto yy1008;-			goto yy995;-		} else {-			if (yych <= 'Z') goto yy1008;-			if (yych <= ']') goto yy995;-			if (yych <= '~') goto yy1008;-			goto yy995;-		}-	}-yy997:-	yych = *++p;-	goto yy995;-yy998:-	yych = *++p;-	if (yych <= 0x7F) goto yy999;-	if (yych <= 0xBF) goto yy997;-yy999:-	p = marker;-	goto yy995;-yy1000:-	yych = *++p;-	if (yych <= 0x9F) goto yy999;-	if (yych <= 0xBF) goto yy998;-	goto yy999;-yy1001:-	yych = *++p;-	if (yych <= 0x7F) goto yy999;-	if (yych <= 0xBF) goto yy998;-	goto yy999;-yy1002:-	yych = *++p;-	if (yych <= 0x8F) goto yy999;-	if (yych <= 0xBF) goto yy1001;-	goto yy999;-yy1003:-	yych = *++p;-	if (yych <= 0x7F) goto yy999;-	if (yych <= 0xBF) goto yy1001;-	goto yy999;-yy1004:-	yych = *++p;-	if (yych <= 0x7F) goto yy999;-	if (yych <= 0x8F) goto yy1001;-	goto yy999;-yy1005:-	yych = *++p;-	if (yych <= 0x7F) goto yy999;-	if (yych <= 0x9F) goto yy998;-	goto yy999;-yy1006:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy999;-		if (yych <= '9') goto yy1009;-		goto yy999;-	} else {-		if (yych <= 'Z') goto yy1009;-		if (yych <= '`') goto yy999;-		if (yych <= 'z') goto yy1009;-		goto yy999;-	}-yy1007:-	++p;-	yych = *p;-yy1008:-	if (yybm[0+yych] & 128) {-		goto yy1007;-	}-	if (yych <= '>') goto yy999;-	if (yych <= '@') goto yy1006;-	goto yy999;-yy1009:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1011;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1011;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1011;-			goto yy999;-		}-	}-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1139;-		if (yych <= '/') goto yy999;-		goto yy1140;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1140;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1140;-			goto yy999;-		}-	}-yy1011:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych <= '-') goto yy1139;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1140;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1140;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1140;-			goto yy999;-		}-	}-yy1012:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '/') goto yy999;-		if (yych <= '9') goto yy1015;-		goto yy999;-	} else {-		if (yych <= 'Z') goto yy1015;-		if (yych <= '`') goto yy999;-		if (yych <= 'z') goto yy1015;-		goto yy999;-	}-yy1013:-	++p;-	{ return (bufsize_t)(p - start); }-yy1015:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1017;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1017;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1017;-			goto yy999;-		}-	}-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1018;-		if (yych <= '/') goto yy999;-		goto yy1019;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1019;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1019;-			goto yy999;-		}-	}-yy1017:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1019;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1019;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1019;-			goto yy999;-		}-	}-yy1018:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1020;-		if (yych <= '/') goto yy999;-		goto yy1021;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1021;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1021;-			goto yy999;-		}-	}-yy1019:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1021;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1021;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1021;-			goto yy999;-		}-	}-yy1020:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1022;-		if (yych <= '/') goto yy999;-		goto yy1023;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1023;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1023;-			goto yy999;-		}-	}-yy1021:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1023;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1023;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1023;-			goto yy999;-		}-	}-yy1022:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1024;-		if (yych <= '/') goto yy999;-		goto yy1025;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1025;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1025;-			goto yy999;-		}-	}-yy1023:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1025;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1025;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1025;-			goto yy999;-		}-	}-yy1024:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1026;-		if (yych <= '/') goto yy999;-		goto yy1027;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1027;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1027;-			goto yy999;-		}-	}-yy1025:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1027;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1027;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1027;-			goto yy999;-		}-	}-yy1026:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1028;-		if (yych <= '/') goto yy999;-		goto yy1029;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1029;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1029;-			goto yy999;-		}-	}-yy1027:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1029;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1029;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1029;-			goto yy999;-		}-	}-yy1028:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1030;-		if (yych <= '/') goto yy999;-		goto yy1031;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1031;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1031;-			goto yy999;-		}-	}-yy1029:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1031;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1031;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1031;-			goto yy999;-		}-	}-yy1030:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1032;-		if (yych <= '/') goto yy999;-		goto yy1033;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1033;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1033;-			goto yy999;-		}-	}-yy1031:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1033;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1033;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1033;-			goto yy999;-		}-	}-yy1032:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1034;-		if (yych <= '/') goto yy999;-		goto yy1035;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1035;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1035;-			goto yy999;-		}-	}-yy1033:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1035;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1035;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1035;-			goto yy999;-		}-	}-yy1034:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1036;-		if (yych <= '/') goto yy999;-		goto yy1037;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1037;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1037;-			goto yy999;-		}-	}-yy1035:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1037;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1037;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1037;-			goto yy999;-		}-	}-yy1036:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1038;-		if (yych <= '/') goto yy999;-		goto yy1039;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1039;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1039;-			goto yy999;-		}-	}-yy1037:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1039;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1039;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1039;-			goto yy999;-		}-	}-yy1038:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1040;-		if (yych <= '/') goto yy999;-		goto yy1041;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1041;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1041;-			goto yy999;-		}-	}-yy1039:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1041;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1041;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1041;-			goto yy999;-		}-	}-yy1040:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1042;-		if (yych <= '/') goto yy999;-		goto yy1043;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1043;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1043;-			goto yy999;-		}-	}-yy1041:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1043;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1043;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1043;-			goto yy999;-		}-	}-yy1042:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1044;-		if (yych <= '/') goto yy999;-		goto yy1045;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1045;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1045;-			goto yy999;-		}-	}-yy1043:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1045;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1045;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1045;-			goto yy999;-		}-	}-yy1044:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1046;-		if (yych <= '/') goto yy999;-		goto yy1047;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1047;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1047;-			goto yy999;-		}-	}-yy1045:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1047;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1047;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1047;-			goto yy999;-		}-	}-yy1046:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1048;-		if (yych <= '/') goto yy999;-		goto yy1049;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1049;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1049;-			goto yy999;-		}-	}-yy1047:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1049;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1049;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1049;-			goto yy999;-		}-	}-yy1048:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1050;-		if (yych <= '/') goto yy999;-		goto yy1051;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1051;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1051;-			goto yy999;-		}-	}-yy1049:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1051;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1051;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1051;-			goto yy999;-		}-	}-yy1050:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1052;-		if (yych <= '/') goto yy999;-		goto yy1053;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1053;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1053;-			goto yy999;-		}-	}-yy1051:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1053;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1053;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1053;-			goto yy999;-		}-	}-yy1052:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1054;-		if (yych <= '/') goto yy999;-		goto yy1055;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1055;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1055;-			goto yy999;-		}-	}-yy1053:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1055;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1055;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1055;-			goto yy999;-		}-	}-yy1054:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1056;-		if (yych <= '/') goto yy999;-		goto yy1057;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1057;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1057;-			goto yy999;-		}-	}-yy1055:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1057;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1057;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1057;-			goto yy999;-		}-	}-yy1056:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1058;-		if (yych <= '/') goto yy999;-		goto yy1059;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1059;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1059;-			goto yy999;-		}-	}-yy1057:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1059;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1059;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1059;-			goto yy999;-		}-	}-yy1058:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1060;-		if (yych <= '/') goto yy999;-		goto yy1061;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1061;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1061;-			goto yy999;-		}-	}-yy1059:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1061;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1061;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1061;-			goto yy999;-		}-	}-yy1060:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1062;-		if (yych <= '/') goto yy999;-		goto yy1063;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1063;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1063;-			goto yy999;-		}-	}-yy1061:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1063;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1063;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1063;-			goto yy999;-		}-	}-yy1062:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1064;-		if (yych <= '/') goto yy999;-		goto yy1065;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1065;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1065;-			goto yy999;-		}-	}-yy1063:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1065;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1065;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1065;-			goto yy999;-		}-	}-yy1064:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1066;-		if (yych <= '/') goto yy999;-		goto yy1067;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1067;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1067;-			goto yy999;-		}-	}-yy1065:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1067;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1067;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1067;-			goto yy999;-		}-	}-yy1066:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1068;-		if (yych <= '/') goto yy999;-		goto yy1069;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1069;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1069;-			goto yy999;-		}-	}-yy1067:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1069;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1069;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1069;-			goto yy999;-		}-	}-yy1068:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1070;-		if (yych <= '/') goto yy999;-		goto yy1071;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1071;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1071;-			goto yy999;-		}-	}-yy1069:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1071;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1071;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1071;-			goto yy999;-		}-	}-yy1070:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1072;-		if (yych <= '/') goto yy999;-		goto yy1073;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1073;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1073;-			goto yy999;-		}-	}-yy1071:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1073;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1073;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1073;-			goto yy999;-		}-	}-yy1072:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1074;-		if (yych <= '/') goto yy999;-		goto yy1075;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1075;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1075;-			goto yy999;-		}-	}-yy1073:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1075;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1075;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1075;-			goto yy999;-		}-	}-yy1074:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1076;-		if (yych <= '/') goto yy999;-		goto yy1077;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1077;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1077;-			goto yy999;-		}-	}-yy1075:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1077;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1077;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1077;-			goto yy999;-		}-	}-yy1076:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1078;-		if (yych <= '/') goto yy999;-		goto yy1079;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1079;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1079;-			goto yy999;-		}-	}-yy1077:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1079;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1079;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1079;-			goto yy999;-		}-	}-yy1078:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1080;-		if (yych <= '/') goto yy999;-		goto yy1081;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1081;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1081;-			goto yy999;-		}-	}-yy1079:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1081;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1081;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1081;-			goto yy999;-		}-	}-yy1080:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1082;-		if (yych <= '/') goto yy999;-		goto yy1083;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1083;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1083;-			goto yy999;-		}-	}-yy1081:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1083;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1083;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1083;-			goto yy999;-		}-	}-yy1082:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1084;-		if (yych <= '/') goto yy999;-		goto yy1085;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1085;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1085;-			goto yy999;-		}-	}-yy1083:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1085;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1085;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1085;-			goto yy999;-		}-	}-yy1084:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1086;-		if (yych <= '/') goto yy999;-		goto yy1087;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1087;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1087;-			goto yy999;-		}-	}-yy1085:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1087;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1087;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1087;-			goto yy999;-		}-	}-yy1086:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1088;-		if (yych <= '/') goto yy999;-		goto yy1089;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1089;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1089;-			goto yy999;-		}-	}-yy1087:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1089;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1089;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1089;-			goto yy999;-		}-	}-yy1088:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1090;-		if (yych <= '/') goto yy999;-		goto yy1091;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1091;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1091;-			goto yy999;-		}-	}-yy1089:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1091;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1091;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1091;-			goto yy999;-		}-	}-yy1090:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1092;-		if (yych <= '/') goto yy999;-		goto yy1093;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1093;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1093;-			goto yy999;-		}-	}-yy1091:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1093;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1093;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1093;-			goto yy999;-		}-	}-yy1092:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1094;-		if (yych <= '/') goto yy999;-		goto yy1095;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1095;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1095;-			goto yy999;-		}-	}-yy1093:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1095;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1095;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1095;-			goto yy999;-		}-	}-yy1094:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1096;-		if (yych <= '/') goto yy999;-		goto yy1097;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1097;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1097;-			goto yy999;-		}-	}-yy1095:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1097;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1097;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1097;-			goto yy999;-		}-	}-yy1096:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1098;-		if (yych <= '/') goto yy999;-		goto yy1099;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1099;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1099;-			goto yy999;-		}-	}-yy1097:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1099;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1099;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1099;-			goto yy999;-		}-	}-yy1098:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1100;-		if (yych <= '/') goto yy999;-		goto yy1101;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1101;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1101;-			goto yy999;-		}-	}-yy1099:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1101;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1101;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1101;-			goto yy999;-		}-	}-yy1100:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1102;-		if (yych <= '/') goto yy999;-		goto yy1103;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1103;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1103;-			goto yy999;-		}-	}-yy1101:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1103;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1103;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1103;-			goto yy999;-		}-	}-yy1102:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1104;-		if (yych <= '/') goto yy999;-		goto yy1105;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1105;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1105;-			goto yy999;-		}-	}-yy1103:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1105;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1105;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1105;-			goto yy999;-		}-	}-yy1104:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1106;-		if (yych <= '/') goto yy999;-		goto yy1107;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1107;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1107;-			goto yy999;-		}-	}-yy1105:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1107;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1107;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1107;-			goto yy999;-		}-	}-yy1106:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1108;-		if (yych <= '/') goto yy999;-		goto yy1109;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1109;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1109;-			goto yy999;-		}-	}-yy1107:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1109;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1109;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1109;-			goto yy999;-		}-	}-yy1108:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1110;-		if (yych <= '/') goto yy999;-		goto yy1111;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1111;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1111;-			goto yy999;-		}-	}-yy1109:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1111;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1111;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1111;-			goto yy999;-		}-	}-yy1110:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1112;-		if (yych <= '/') goto yy999;-		goto yy1113;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1113;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1113;-			goto yy999;-		}-	}-yy1111:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1113;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1113;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1113;-			goto yy999;-		}-	}-yy1112:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1114;-		if (yych <= '/') goto yy999;-		goto yy1115;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1115;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1115;-			goto yy999;-		}-	}-yy1113:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1115;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1115;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1115;-			goto yy999;-		}-	}-yy1114:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1116;-		if (yych <= '/') goto yy999;-		goto yy1117;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1117;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1117;-			goto yy999;-		}-	}-yy1115:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1117;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1117;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1117;-			goto yy999;-		}-	}-yy1116:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1118;-		if (yych <= '/') goto yy999;-		goto yy1119;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1119;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1119;-			goto yy999;-		}-	}-yy1117:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1119;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1119;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1119;-			goto yy999;-		}-	}-yy1118:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1120;-		if (yych <= '/') goto yy999;-		goto yy1121;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1121;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1121;-			goto yy999;-		}-	}-yy1119:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1121;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1121;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1121;-			goto yy999;-		}-	}-yy1120:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1122;-		if (yych <= '/') goto yy999;-		goto yy1123;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1123;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1123;-			goto yy999;-		}-	}-yy1121:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1123;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1123;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1123;-			goto yy999;-		}-	}-yy1122:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1124;-		if (yych <= '/') goto yy999;-		goto yy1125;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1125;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1125;-			goto yy999;-		}-	}-yy1123:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1125;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1125;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1125;-			goto yy999;-		}-	}-yy1124:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1126;-		if (yych <= '/') goto yy999;-		goto yy1127;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1127;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1127;-			goto yy999;-		}-	}-yy1125:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1127;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1127;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1127;-			goto yy999;-		}-	}-yy1126:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1128;-		if (yych <= '/') goto yy999;-		goto yy1129;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1129;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1129;-			goto yy999;-		}-	}-yy1127:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1129;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1129;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1129;-			goto yy999;-		}-	}-yy1128:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1130;-		if (yych <= '/') goto yy999;-		goto yy1131;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1131;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1131;-			goto yy999;-		}-	}-yy1129:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1131;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1131;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1131;-			goto yy999;-		}-	}-yy1130:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1132;-		if (yych <= '/') goto yy999;-		goto yy1133;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1133;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1133;-			goto yy999;-		}-	}-yy1131:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1133;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1133;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1133;-			goto yy999;-		}-	}-yy1132:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1134;-		if (yych <= '/') goto yy999;-		goto yy1135;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1135;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1135;-			goto yy999;-		}-	}-yy1133:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1135;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1135;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1135;-			goto yy999;-		}-	}-yy1134:-	++p;-	yych = *p;-	if (yych <= '9') {-		if (yych == '-') goto yy1136;-		if (yych <= '/') goto yy999;-		goto yy1137;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1137;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1137;-			goto yy999;-		}-	}-yy1135:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1137;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1137;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1137;-			goto yy999;-		}-	}-yy1136:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '/') goto yy999;-		if (yych <= '9') goto yy1138;-		goto yy999;-	} else {-		if (yych <= 'Z') goto yy1138;-		if (yych <= '`') goto yy999;-		if (yych <= 'z') goto yy1138;-		goto yy999;-	}-yy1137:-	++p;-	yych = *p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= '-') goto yy999;-			goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych >= ':') goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-		} else {-			if (yych <= '`') goto yy999;-			if (yych >= '{') goto yy999;-		}-	}-yy1138:-	++p;-	yych = *p;-	if (yych == '.') goto yy1012;-	if (yych == '>') goto yy1013;-	goto yy999;-yy1139:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1141;-		if (yych <= '/') goto yy999;-		goto yy1142;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1142;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1142;-			goto yy999;-		}-	}-yy1140:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1142;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1142;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1142;-			goto yy999;-		}-	}-yy1141:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1143;-		if (yych <= '/') goto yy999;-		goto yy1144;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1144;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1144;-			goto yy999;-		}-	}-yy1142:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1144;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1144;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1144;-			goto yy999;-		}-	}-yy1143:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1145;-		if (yych <= '/') goto yy999;-		goto yy1146;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1146;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1146;-			goto yy999;-		}-	}-yy1144:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1146;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1146;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1146;-			goto yy999;-		}-	}-yy1145:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1147;-		if (yych <= '/') goto yy999;-		goto yy1148;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1148;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1148;-			goto yy999;-		}-	}-yy1146:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1148;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1148;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1148;-			goto yy999;-		}-	}-yy1147:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1149;-		if (yych <= '/') goto yy999;-		goto yy1150;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1150;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1150;-			goto yy999;-		}-	}-yy1148:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1150;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1150;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1150;-			goto yy999;-		}-	}-yy1149:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1151;-		if (yych <= '/') goto yy999;-		goto yy1152;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1152;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1152;-			goto yy999;-		}-	}-yy1150:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1152;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1152;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1152;-			goto yy999;-		}-	}-yy1151:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1153;-		if (yych <= '/') goto yy999;-		goto yy1154;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1154;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1154;-			goto yy999;-		}-	}-yy1152:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1154;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1154;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1154;-			goto yy999;-		}-	}-yy1153:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1155;-		if (yych <= '/') goto yy999;-		goto yy1156;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1156;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1156;-			goto yy999;-		}-	}-yy1154:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1156;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1156;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1156;-			goto yy999;-		}-	}-yy1155:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1157;-		if (yych <= '/') goto yy999;-		goto yy1158;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1158;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1158;-			goto yy999;-		}-	}-yy1156:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1158;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1158;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1158;-			goto yy999;-		}-	}-yy1157:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1159;-		if (yych <= '/') goto yy999;-		goto yy1160;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1160;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1160;-			goto yy999;-		}-	}-yy1158:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1160;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1160;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1160;-			goto yy999;-		}-	}-yy1159:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1161;-		if (yych <= '/') goto yy999;-		goto yy1162;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1162;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1162;-			goto yy999;-		}-	}-yy1160:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1162;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1162;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1162;-			goto yy999;-		}-	}-yy1161:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1163;-		if (yych <= '/') goto yy999;-		goto yy1164;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1164;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1164;-			goto yy999;-		}-	}-yy1162:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1164;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1164;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1164;-			goto yy999;-		}-	}-yy1163:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1165;-		if (yych <= '/') goto yy999;-		goto yy1166;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1166;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1166;-			goto yy999;-		}-	}-yy1164:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1166;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1166;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1166;-			goto yy999;-		}-	}-yy1165:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1167;-		if (yych <= '/') goto yy999;-		goto yy1168;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1168;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1168;-			goto yy999;-		}-	}-yy1166:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1168;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1168;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1168;-			goto yy999;-		}-	}-yy1167:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1169;-		if (yych <= '/') goto yy999;-		goto yy1170;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1170;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1170;-			goto yy999;-		}-	}-yy1168:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1170;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1170;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1170;-			goto yy999;-		}-	}-yy1169:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1171;-		if (yych <= '/') goto yy999;-		goto yy1172;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1172;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1172;-			goto yy999;-		}-	}-yy1170:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1172;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1172;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1172;-			goto yy999;-		}-	}-yy1171:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1173;-		if (yych <= '/') goto yy999;-		goto yy1174;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1174;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1174;-			goto yy999;-		}-	}-yy1172:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1174;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1174;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1174;-			goto yy999;-		}-	}-yy1173:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1175;-		if (yych <= '/') goto yy999;-		goto yy1176;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1176;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1176;-			goto yy999;-		}-	}-yy1174:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1176;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1176;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1176;-			goto yy999;-		}-	}-yy1175:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1177;-		if (yych <= '/') goto yy999;-		goto yy1178;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1178;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1178;-			goto yy999;-		}-	}-yy1176:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1178;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1178;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1178;-			goto yy999;-		}-	}-yy1177:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1179;-		if (yych <= '/') goto yy999;-		goto yy1180;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1180;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1180;-			goto yy999;-		}-	}-yy1178:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1180;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1180;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1180;-			goto yy999;-		}-	}-yy1179:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1181;-		if (yych <= '/') goto yy999;-		goto yy1182;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1182;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1182;-			goto yy999;-		}-	}-yy1180:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1182;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1182;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1182;-			goto yy999;-		}-	}-yy1181:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1183;-		if (yych <= '/') goto yy999;-		goto yy1184;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1184;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1184;-			goto yy999;-		}-	}-yy1182:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1184;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1184;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1184;-			goto yy999;-		}-	}-yy1183:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1185;-		if (yych <= '/') goto yy999;-		goto yy1186;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1186;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1186;-			goto yy999;-		}-	}-yy1184:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1186;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1186;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1186;-			goto yy999;-		}-	}-yy1185:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1187;-		if (yych <= '/') goto yy999;-		goto yy1188;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1188;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1188;-			goto yy999;-		}-	}-yy1186:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1188;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1188;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1188;-			goto yy999;-		}-	}-yy1187:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1189;-		if (yych <= '/') goto yy999;-		goto yy1190;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1190;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1190;-			goto yy999;-		}-	}-yy1188:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1190;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1190;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1190;-			goto yy999;-		}-	}-yy1189:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1191;-		if (yych <= '/') goto yy999;-		goto yy1192;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1192;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1192;-			goto yy999;-		}-	}-yy1190:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1192;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1192;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1192;-			goto yy999;-		}-	}-yy1191:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1193;-		if (yych <= '/') goto yy999;-		goto yy1194;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1194;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1194;-			goto yy999;-		}-	}-yy1192:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1194;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1194;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1194;-			goto yy999;-		}-	}-yy1193:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1195;-		if (yych <= '/') goto yy999;-		goto yy1196;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1196;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1196;-			goto yy999;-		}-	}-yy1194:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1196;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1196;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1196;-			goto yy999;-		}-	}-yy1195:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1197;-		if (yych <= '/') goto yy999;-		goto yy1198;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1198;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1198;-			goto yy999;-		}-	}-yy1196:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1198;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1198;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1198;-			goto yy999;-		}-	}-yy1197:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1199;-		if (yych <= '/') goto yy999;-		goto yy1200;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1200;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1200;-			goto yy999;-		}-	}-yy1198:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1200;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1200;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1200;-			goto yy999;-		}-	}-yy1199:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1201;-		if (yych <= '/') goto yy999;-		goto yy1202;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1202;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1202;-			goto yy999;-		}-	}-yy1200:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1202;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1202;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1202;-			goto yy999;-		}-	}-yy1201:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1203;-		if (yych <= '/') goto yy999;-		goto yy1204;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1204;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1204;-			goto yy999;-		}-	}-yy1202:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1204;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1204;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1204;-			goto yy999;-		}-	}-yy1203:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1205;-		if (yych <= '/') goto yy999;-		goto yy1206;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1206;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1206;-			goto yy999;-		}-	}-yy1204:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1206;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1206;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1206;-			goto yy999;-		}-	}-yy1205:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1207;-		if (yych <= '/') goto yy999;-		goto yy1208;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1208;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1208;-			goto yy999;-		}-	}-yy1206:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1208;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1208;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1208;-			goto yy999;-		}-	}-yy1207:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1209;-		if (yych <= '/') goto yy999;-		goto yy1210;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1210;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1210;-			goto yy999;-		}-	}-yy1208:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1210;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1210;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1210;-			goto yy999;-		}-	}-yy1209:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1211;-		if (yych <= '/') goto yy999;-		goto yy1212;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1212;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1212;-			goto yy999;-		}-	}-yy1210:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1212;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1212;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1212;-			goto yy999;-		}-	}-yy1211:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1213;-		if (yych <= '/') goto yy999;-		goto yy1214;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1214;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1214;-			goto yy999;-		}-	}-yy1212:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1214;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1214;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1214;-			goto yy999;-		}-	}-yy1213:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1215;-		if (yych <= '/') goto yy999;-		goto yy1216;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1216;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1216;-			goto yy999;-		}-	}-yy1214:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1216;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1216;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1216;-			goto yy999;-		}-	}-yy1215:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1217;-		if (yych <= '/') goto yy999;-		goto yy1218;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1218;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1218;-			goto yy999;-		}-	}-yy1216:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1218;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1218;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1218;-			goto yy999;-		}-	}-yy1217:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1219;-		if (yych <= '/') goto yy999;-		goto yy1220;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1220;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1220;-			goto yy999;-		}-	}-yy1218:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1220;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1220;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1220;-			goto yy999;-		}-	}-yy1219:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1221;-		if (yych <= '/') goto yy999;-		goto yy1222;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1222;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1222;-			goto yy999;-		}-	}-yy1220:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1222;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1222;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1222;-			goto yy999;-		}-	}-yy1221:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1223;-		if (yych <= '/') goto yy999;-		goto yy1224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1224;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1224;-			goto yy999;-		}-	}-yy1222:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1224;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1224;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1224;-			goto yy999;-		}-	}-yy1223:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1225;-		if (yych <= '/') goto yy999;-		goto yy1226;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1226;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1226;-			goto yy999;-		}-	}-yy1224:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1226;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1226;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1226;-			goto yy999;-		}-	}-yy1225:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1227;-		if (yych <= '/') goto yy999;-		goto yy1228;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1228;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1228;-			goto yy999;-		}-	}-yy1226:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1228;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1228;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1228;-			goto yy999;-		}-	}-yy1227:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1229;-		if (yych <= '/') goto yy999;-		goto yy1230;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1230;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1230;-			goto yy999;-		}-	}-yy1228:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1230;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1230;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1230;-			goto yy999;-		}-	}-yy1229:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1231;-		if (yych <= '/') goto yy999;-		goto yy1232;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1232;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1232;-			goto yy999;-		}-	}-yy1230:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1232;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1232;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1232;-			goto yy999;-		}-	}-yy1231:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1233;-		if (yych <= '/') goto yy999;-		goto yy1234;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1234;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1234;-			goto yy999;-		}-	}-yy1232:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1234;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1234;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1234;-			goto yy999;-		}-	}-yy1233:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1235;-		if (yych <= '/') goto yy999;-		goto yy1236;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1236;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1236;-			goto yy999;-		}-	}-yy1234:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1236;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1236;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1236;-			goto yy999;-		}-	}-yy1235:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1237;-		if (yych <= '/') goto yy999;-		goto yy1238;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1238;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1238;-			goto yy999;-		}-	}-yy1236:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1238;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1238;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1238;-			goto yy999;-		}-	}-yy1237:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1239;-		if (yych <= '/') goto yy999;-		goto yy1240;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1240;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1240;-			goto yy999;-		}-	}-yy1238:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1240;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1240;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1240;-			goto yy999;-		}-	}-yy1239:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1241;-		if (yych <= '/') goto yy999;-		goto yy1242;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1242;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1242;-			goto yy999;-		}-	}-yy1240:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1242;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1242;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1242;-			goto yy999;-		}-	}-yy1241:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1243;-		if (yych <= '/') goto yy999;-		goto yy1244;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1244;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1244;-			goto yy999;-		}-	}-yy1242:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1244;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1244;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1244;-			goto yy999;-		}-	}-yy1243:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1245;-		if (yych <= '/') goto yy999;-		goto yy1246;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1246;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1246;-			goto yy999;-		}-	}-yy1244:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1246;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1246;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1246;-			goto yy999;-		}-	}-yy1245:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1247;-		if (yych <= '/') goto yy999;-		goto yy1248;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1248;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1248;-			goto yy999;-		}-	}-yy1246:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1248;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1248;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1248;-			goto yy999;-		}-	}-yy1247:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1249;-		if (yych <= '/') goto yy999;-		goto yy1250;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1250;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1250;-			goto yy999;-		}-	}-yy1248:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1250;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1250;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1250;-			goto yy999;-		}-	}-yy1249:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1251;-		if (yych <= '/') goto yy999;-		goto yy1252;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1252;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1252;-			goto yy999;-		}-	}-yy1250:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1252;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1252;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1252;-			goto yy999;-		}-	}-yy1251:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1253;-		if (yych <= '/') goto yy999;-		goto yy1254;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1254;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1254;-			goto yy999;-		}-	}-yy1252:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1254;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1254;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1254;-			goto yy999;-		}-	}-yy1253:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1255;-		if (yych <= '/') goto yy999;-		goto yy1256;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1256;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1256;-			goto yy999;-		}-	}-yy1254:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1256;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1256;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1256;-			goto yy999;-		}-	}-yy1255:-	yych = *++p;-	if (yych <= '9') {-		if (yych == '-') goto yy1257;-		if (yych <= '/') goto yy999;-		goto yy1258;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy999;-			goto yy1258;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1258;-			goto yy999;-		}-	}-yy1256:-	yych = *++p;-	if (yych <= '=') {-		if (yych <= '.') {-			if (yych <= ',') goto yy999;-			if (yych >= '.') goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1258;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1258;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1258;-			goto yy999;-		}-	}-yy1257:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy999;-		if (yych <= '9') goto yy1138;-		goto yy999;-	} else {-		if (yych <= 'Z') goto yy1138;-		if (yych <= '`') goto yy999;-		if (yych <= 'z') goto yy1138;-		goto yy999;-	}-yy1258:-	++p;-	if ((yych = *p) <= '=') {-		if (yych <= '.') {-			if (yych <= '-') goto yy999;-			goto yy1012;-		} else {-			if (yych <= '/') goto yy999;-			if (yych <= '9') goto yy1138;-			goto yy999;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1013;-			if (yych <= '@') goto yy999;-			goto yy1138;-		} else {-			if (yych <= '`') goto yy999;-			if (yych <= 'z') goto yy1138;-			goto yy999;-		}-	}-}--}--// 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, 230, 230, 230, 230, 230, 230, 230, -		230, 199, 199, 199, 199, 199, 230, 230, -		230, 230, 230, 230, 230, 230, 230, 230, -		230, 230, 230, 230, 230, 230, 230, 230, -		199, 230,  70, 230, 230, 230, 230, 134, -		230, 230, 230, 230, 230, 254, 246, 230, -		254, 254, 254, 254, 254, 254, 254, 254, -		254, 254, 246, 230, 198, 198, 196, 230, -		230, 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, 230, 230, 226, 230, 246, -		198, 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, 230, 230, 230, 230, 230, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160,  32, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 128, -		160, 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, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= '`') {-		if (yych <= '.') {-			if (yych <= '\n') {-				if (yych <= '\t') goto yy1266;-			} else {-				if (yych == '!') goto yy1264;-				goto yy1266;-			}-		} else {-			if (yych <= '?') {-				if (yych <= '/') goto yy1263;-				if (yych <= '>') goto yy1266;-				goto yy1265;-			} else {-				if (yych <= '@') goto yy1266;-				if (yych <= 'Z') goto yy1262;-				goto yy1266;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 'z') goto yy1262;-				if (yych <= 0x7F) goto yy1266;-			} else {-				if (yych <= 0xDF) goto yy1267;-				if (yych <= 0xE0) goto yy1269;-				goto yy1270;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1274;-				if (yych <= 0xEF) goto yy1270;-				goto yy1271;-			} else {-				if (yych <= 0xF3) goto yy1272;-				if (yych <= 0xF4) goto yy1273;-			}-		}-	}-yy1261:-	{ return 0; }-yy1262:-	yych = *(marker = ++p);-	if (yych <= '/') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1261;-			if (yych <= '\r') goto yy1366;-			if (yych <= 0x1F) goto yy1261;-			goto yy1366;-		} else {-			if (yych == '-') goto yy1364;-			if (yych <= '.') goto yy1261;-			goto yy1368;-		}-	} else {-		if (yych <= '@') {-			if (yych <= '9') goto yy1364;-			if (yych == '>') goto yy1285;-			goto yy1261;-		} else {-			if (yych <= 'Z') goto yy1364;-			if (yych <= '`') goto yy1261;-			if (yych <= 'z') goto yy1364;-			goto yy1261;-		}-	}-yy1263:-	yych = *(marker = ++p);-	if (yych <= '@') goto yy1261;-	if (yych <= 'Z') goto yy1360;-	if (yych <= '`') goto yy1261;-	if (yych <= 'z') goto yy1360;-	goto yy1261;-yy1264:-	yych = *(marker = ++p);-	if (yybm[256+yych] & 64) {-		goto yy1295;-	}-	if (yych == '-') goto yy1297;-	if (yych <= '@') goto yy1261;-	if (yych <= '[') goto yy1294;-	goto yy1261;-yy1265:-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy1261;-	if (yych <= 0x7F) goto yy1276;-	if (yych <= 0xC1) goto yy1261;-	if (yych <= 0xF4) goto yy1276;-	goto yy1261;-yy1266:-	yych = *++p;-	goto yy1261;-yy1267:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1266;-yy1268:-	p = marker;-	goto yy1261;-yy1269:-	yych = *++p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1267;-	goto yy1268;-yy1270:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1267;-	goto yy1268;-yy1271:-	yych = *++p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1270;-	goto yy1268;-yy1272:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1270;-	goto yy1268;-yy1273:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1270;-	goto yy1268;-yy1274:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1267;-	goto yy1268;-yy1275:-	++p;-	yych = *p;-yy1276:-	if (yybm[256+yych] & 32) {-		goto yy1275;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '?') goto yy1284;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1277;-			if (yych <= 0xE0) goto yy1278;-			goto yy1279;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1283;-			if (yych <= 0xEF) goto yy1279;-			goto yy1280;-		} else {-			if (yych <= 0xF3) goto yy1281;-			if (yych <= 0xF4) goto yy1282;-			goto yy1268;-		}-	}-yy1277:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1275;-	goto yy1268;-yy1278:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1277;-	goto yy1268;-yy1279:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1277;-	goto yy1268;-yy1280:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1279;-	goto yy1268;-yy1281:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1279;-	goto yy1268;-yy1282:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1279;-	goto yy1268;-yy1283:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1277;-	goto yy1268;-yy1284:-	++p;-	yych = *p;-	if (yych <= 0xE0) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '=') goto yy1275;-		} else {-			if (yych <= 0x7F) goto yy1275;-			if (yych <= 0xC1) goto yy1268;-			if (yych <= 0xDF) goto yy1287;-			goto yy1288;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1293;-			goto yy1289;-		} else {-			if (yych <= 0xF0) goto yy1290;-			if (yych <= 0xF3) goto yy1291;-			if (yych <= 0xF4) goto yy1292;-			goto yy1268;-		}-	}-yy1285:-	++p;-	{ return (bufsize_t)(p - start); }-yy1287:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1275;-	goto yy1268;-yy1288:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1287;-	goto yy1268;-yy1289:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1287;-	goto yy1268;-yy1290:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1289;-	goto yy1268;-yy1291:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1289;-	goto yy1268;-yy1292:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1289;-	goto yy1268;-yy1293:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1287;-	goto yy1268;-yy1294:-	yych = *++p;-	if (yych == 'C') goto yy1330;-	if (yych == 'c') goto yy1330;-	goto yy1268;-yy1295:-	++p;-	yych = *p;-	if (yybm[0+yych] & 1) {-		goto yy1319;-	}-	if (yych <= '@') goto yy1268;-	if (yych <= 'Z') goto yy1295;-	goto yy1268;-yy1297:-	yych = *++p;-	if (yych != '-') goto yy1268;-	yych = *++p;-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych != '-') goto yy1301;-		} else {-			if (yych <= '>') goto yy1268;-			if (yych <= 0xC1) goto yy1301;-			if (yych <= 0xDF) goto yy1302;-			goto yy1303;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1308;-			goto yy1304;-		} else {-			if (yych <= 0xF0) goto yy1305;-			if (yych <= 0xF3) goto yy1306;-			if (yych <= 0xF4) goto yy1307;-			goto yy1301;-		}-	}-	yych = *++p;-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych == '-') goto yy1318;-			goto yy1301;-		} else {-			if (yych <= '>') goto yy1268;-			if (yych <= 0xC1) goto yy1301;-			if (yych <= 0xDF) goto yy1302;-			goto yy1303;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1308;-			goto yy1304;-		} else {-			if (yych <= 0xF0) goto yy1305;-			if (yych <= 0xF3) goto yy1306;-			if (yych <= 0xF4) goto yy1307;-			goto yy1301;-		}-	}-yy1300:-	++p;-	yych = *p;-yy1301:-	if (yybm[256+yych] & 128) {-		goto yy1300;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '-') goto yy1309;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1310;-			if (yych <= 0xE0) goto yy1311;-			goto yy1312;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1316;-			if (yych <= 0xEF) goto yy1312;-			goto yy1313;-		} else {-			if (yych <= 0xF3) goto yy1314;-			if (yych <= 0xF4) goto yy1315;-			goto yy1268;-		}-	}-yy1302:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1300;-	goto yy1268;-yy1303:-	yych = *++p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1302;-	goto yy1268;-yy1304:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1302;-	goto yy1268;-yy1305:-	yych = *++p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1304;-	goto yy1268;-yy1306:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1304;-	goto yy1268;-yy1307:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1304;-	goto yy1268;-yy1308:-	yych = *++p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1302;-	goto yy1268;-yy1309:-	++p;-	yych = *p;-	if (yybm[256+yych] & 128) {-		goto yy1300;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '-') goto yy1317;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1310;-			if (yych <= 0xE0) goto yy1311;-			goto yy1312;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1316;-			if (yych <= 0xEF) goto yy1312;-			goto yy1313;-		} else {-			if (yych <= 0xF3) goto yy1314;-			if (yych <= 0xF4) goto yy1315;-			goto yy1268;-		}-	}-yy1310:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1300;-	goto yy1268;-yy1311:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1310;-	goto yy1268;-yy1312:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1310;-	goto yy1268;-yy1313:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1312;-	goto yy1268;-yy1314:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1312;-	goto yy1268;-yy1315:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1312;-	goto yy1268;-yy1316:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1310;-	goto yy1268;-yy1317:-	yych = *++p;-	if (yych == '>') goto yy1285;-	goto yy1268;-yy1318:-	yych = *++p;-	if (yych == '>') goto yy1285;-	goto yy1268;-yy1319:-	++p;-	yych = *p;-	if (yybm[0+yych] & 1) {-		goto yy1319;-	}-	if (yych <= 0xE0) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy1268;-			if (yych >= '>') goto yy1285;-		} else {-			if (yych <= 0x7F) goto yy1321;-			if (yych <= 0xC1) goto yy1268;-			if (yych <= 0xDF) goto yy1323;-			goto yy1324;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1329;-			goto yy1325;-		} else {-			if (yych <= 0xF0) goto yy1326;-			if (yych <= 0xF3) goto yy1327;-			if (yych <= 0xF4) goto yy1328;-			goto yy1268;-		}-	}-yy1321:-	++p;-	yych = *p;-	if (yybm[0+yych] & 2) {-		goto yy1321;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '>') goto yy1285;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1323;-			if (yych <= 0xE0) goto yy1324;-			goto yy1325;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1329;-			if (yych <= 0xEF) goto yy1325;-			goto yy1326;-		} else {-			if (yych <= 0xF3) goto yy1327;-			if (yych <= 0xF4) goto yy1328;-			goto yy1268;-		}-	}-yy1323:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1321;-	goto yy1268;-yy1324:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1323;-	goto yy1268;-yy1325:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1323;-	goto yy1268;-yy1326:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1325;-	goto yy1268;-yy1327:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1325;-	goto yy1268;-yy1328:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1325;-	goto yy1268;-yy1329:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1323;-	goto yy1268;-yy1330:-	yych = *++p;-	if (yych == 'D') goto yy1331;-	if (yych != 'd') goto yy1268;-yy1331:-	yych = *++p;-	if (yych == 'A') goto yy1332;-	if (yych != 'a') goto yy1268;-yy1332:-	yych = *++p;-	if (yych == 'T') goto yy1333;-	if (yych != 't') goto yy1268;-yy1333:-	yych = *++p;-	if (yych == 'A') goto yy1334;-	if (yych != 'a') goto yy1268;-yy1334:-	yych = *++p;-	if (yych != '[') goto yy1268;-yy1335:-	++p;-	yych = *p;-	if (yybm[0+yych] & 4) {-		goto yy1335;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= ']') goto yy1344;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1337;-			if (yych <= 0xE0) goto yy1338;-			goto yy1339;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1343;-			if (yych <= 0xEF) goto yy1339;-			goto yy1340;-		} else {-			if (yych <= 0xF3) goto yy1341;-			if (yych <= 0xF4) goto yy1342;-			goto yy1268;-		}-	}-yy1337:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1335;-	goto yy1268;-yy1338:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1337;-	goto yy1268;-yy1339:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1337;-	goto yy1268;-yy1340:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1339;-	goto yy1268;-yy1341:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1339;-	goto yy1268;-yy1342:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1339;-	goto yy1268;-yy1343:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1337;-	goto yy1268;-yy1344:-	++p;-	yych = *p;-	if (yybm[0+yych] & 4) {-		goto yy1335;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych >= '^') goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1346;-			if (yych <= 0xE0) goto yy1347;-			goto yy1348;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1352;-			if (yych <= 0xEF) goto yy1348;-			goto yy1349;-		} else {-			if (yych <= 0xF3) goto yy1350;-			if (yych <= 0xF4) goto yy1351;-			goto yy1268;-		}-	}-	++p;-	yych = *p;-	if (yych <= 0xE0) {-		if (yych <= '>') {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '=') goto yy1335;-			goto yy1285;-		} else {-			if (yych <= 0x7F) goto yy1335;-			if (yych <= 0xC1) goto yy1268;-			if (yych <= 0xDF) goto yy1353;-			goto yy1354;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1359;-			goto yy1355;-		} else {-			if (yych <= 0xF0) goto yy1356;-			if (yych <= 0xF3) goto yy1357;-			if (yych <= 0xF4) goto yy1358;-			goto yy1268;-		}-	}-yy1346:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1335;-	goto yy1268;-yy1347:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1346;-	goto yy1268;-yy1348:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1346;-	goto yy1268;-yy1349:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1348;-	goto yy1268;-yy1350:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1348;-	goto yy1268;-yy1351:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1348;-	goto yy1268;-yy1352:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1346;-	goto yy1268;-yy1353:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1335;-	goto yy1268;-yy1354:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1353;-	goto yy1268;-yy1355:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1353;-	goto yy1268;-yy1356:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1355;-	goto yy1268;-yy1357:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1355;-	goto yy1268;-yy1358:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1355;-	goto yy1268;-yy1359:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1353;-	goto yy1268;-yy1360:-	++p;-	yych = *p;-	if (yybm[0+yych] & 8) {-		goto yy1360;-	}-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy1268;-		if (yych >= 0x0E) goto yy1268;-	} else {-		if (yych <= ' ') goto yy1362;-		if (yych == '>') goto yy1285;-		goto yy1268;-	}-yy1362:-	++p;-	yych = *p;-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy1268;-		if (yych <= '\r') goto yy1362;-		goto yy1268;-	} else {-		if (yych <= ' ') goto yy1362;-		if (yych == '>') goto yy1285;-		goto yy1268;-	}-yy1364:-	++p;-	yych = *p;-	if (yych <= '/') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1268;-			if (yych <= '\r') goto yy1366;-			if (yych <= 0x1F) goto yy1268;-		} else {-			if (yych == '-') goto yy1364;-			if (yych <= '.') goto yy1268;-			goto yy1368;-		}-	} else {-		if (yych <= '@') {-			if (yych <= '9') goto yy1364;-			if (yych == '>') goto yy1285;-			goto yy1268;-		} else {-			if (yych <= 'Z') goto yy1364;-			if (yych <= '`') goto yy1268;-			if (yych <= 'z') goto yy1364;-			goto yy1268;-		}-	}-yy1366:-	++p;-	yych = *p;-	if (yych <= ':') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1268;-			if (yych <= '\r') goto yy1366;-			if (yych <= 0x1F) goto yy1268;-			goto yy1366;-		} else {-			if (yych == '/') goto yy1368;-			if (yych <= '9') goto yy1268;-			goto yy1369;-		}-	} else {-		if (yych <= 'Z') {-			if (yych == '>') goto yy1285;-			if (yych <= '@') goto yy1268;-			goto yy1369;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy1268;-				goto yy1369;-			} else {-				if (yych <= '`') goto yy1268;-				if (yych <= 'z') goto yy1369;-				goto yy1268;-			}-		}-	}-yy1368:-	yych = *++p;-	if (yych == '>') goto yy1285;-	goto yy1268;-yy1369:-	++p;-	yych = *p;-	if (yybm[0+yych] & 16) {-		goto yy1369;-	}-	if (yych <= ',') {-		if (yych <= '\r') {-			if (yych <= 0x08) goto yy1268;-		} else {-			if (yych != ' ') goto yy1268;-		}-	} else {-		if (yych <= '<') {-			if (yych <= '/') goto yy1368;-			goto yy1268;-		} else {-			if (yych <= '=') goto yy1373;-			if (yych <= '>') goto yy1285;-			goto yy1268;-		}-	}-yy1371:-	++p;-	yych = *p;-	if (yych <= '<') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1268;-			if (yych <= '\r') goto yy1371;-			if (yych <= 0x1F) goto yy1268;-			goto yy1371;-		} else {-			if (yych <= '/') {-				if (yych <= '.') goto yy1268;-				goto yy1368;-			} else {-				if (yych == ':') goto yy1369;-				goto yy1268;-			}-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '=') goto yy1373;-			if (yych <= '>') goto yy1285;-			if (yych <= '@') goto yy1268;-			goto yy1369;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy1268;-				goto yy1369;-			} else {-				if (yych <= '`') goto yy1268;-				if (yych <= 'z') goto yy1369;-				goto yy1268;-			}-		}-	}-yy1373:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1375;-	}-	if (yych <= 0xE0) {-		if (yych <= '"') {-			if (yych <= 0x00) goto yy1268;-			if (yych >= '!') goto yy1386;-		} else {-			if (yych <= '\'') goto yy1384;-			if (yych <= 0xC1) goto yy1268;-			if (yych <= 0xDF) goto yy1377;-			goto yy1378;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1383;-			goto yy1379;-		} else {-			if (yych <= 0xF0) goto yy1380;-			if (yych <= 0xF3) goto yy1381;-			if (yych <= 0xF4) goto yy1382;-			goto yy1268;-		}-	}-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1375;-	}-	if (yych <= 0xDF) {-		if (yych <= '\'') {-			if (yych <= 0x00) goto yy1268;-			if (yych <= ' ') goto yy1409;-			if (yych <= '"') goto yy1386;-			goto yy1384;-		} else {-			if (yych == '>') goto yy1285;-			if (yych <= 0xC1) goto yy1268;-			goto yy1377;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1378;-			if (yych == 0xED) goto yy1383;-			goto yy1379;-		} else {-			if (yych <= 0xF0) goto yy1380;-			if (yych <= 0xF3) goto yy1381;-			if (yych <= 0xF4) goto yy1382;-			goto yy1268;-		}-	}-yy1375:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1375;-	}-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy1268;-			if (yych <= ' ') goto yy1403;-			goto yy1268;-		} else {-			if (yych <= '>') goto yy1285;-			if (yych <= 0xC1) goto yy1268;-			if (yych >= 0xE0) goto yy1378;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1383;-			goto yy1379;-		} else {-			if (yych <= 0xF0) goto yy1380;-			if (yych <= 0xF3) goto yy1381;-			if (yych <= 0xF4) goto yy1382;-			goto yy1268;-		}-	}-yy1377:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1375;-	goto yy1268;-yy1378:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1377;-	goto yy1268;-yy1379:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1377;-	goto yy1268;-yy1380:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1379;-	goto yy1268;-yy1381:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1379;-	goto yy1268;-yy1382:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1379;-	goto yy1268;-yy1383:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1377;-	goto yy1268;-yy1384:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1384;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '\'') goto yy1395;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1396;-			if (yych <= 0xE0) goto yy1397;-			goto yy1398;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1402;-			if (yych <= 0xEF) goto yy1398;-			goto yy1399;-		} else {-			if (yych <= 0xF3) goto yy1400;-			if (yych <= 0xF4) goto yy1401;-			goto yy1268;-		}-	}-yy1386:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1386;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1268;-			if (yych <= '"') goto yy1395;-			goto yy1268;-		} else {-			if (yych <= 0xDF) goto yy1388;-			if (yych <= 0xE0) goto yy1389;-			goto yy1390;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1394;-			if (yych <= 0xEF) goto yy1390;-			goto yy1391;-		} else {-			if (yych <= 0xF3) goto yy1392;-			if (yych <= 0xF4) goto yy1393;-			goto yy1268;-		}-	}-yy1388:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1386;-	goto yy1268;-yy1389:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1388;-	goto yy1268;-yy1390:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1388;-	goto yy1268;-yy1391:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1390;-	goto yy1268;-yy1392:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1390;-	goto yy1268;-yy1393:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1390;-	goto yy1268;-yy1394:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1388;-	goto yy1268;-yy1395:-	++p;-	yych = *p;-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy1268;-		if (yych <= '\r') goto yy1366;-		if (yych <= 0x1F) goto yy1268;-		goto yy1366;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy1268;-			goto yy1368;-		} else {-			if (yych == '>') goto yy1285;-			goto yy1268;-		}-	}-yy1396:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1384;-	goto yy1268;-yy1397:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1268;-	if (yych <= 0xBF) goto yy1396;-	goto yy1268;-yy1398:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1396;-	goto yy1268;-yy1399:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1268;-	if (yych <= 0xBF) goto yy1398;-	goto yy1268;-yy1400:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0xBF) goto yy1398;-	goto yy1268;-yy1401:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x8F) goto yy1398;-	goto yy1268;-yy1402:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1268;-	if (yych <= 0x9F) goto yy1396;-	goto yy1268;-yy1403:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '"') {-			if (yych <= '\r') {-				if (yych <= 0x00) goto yy1268;-				if (yych <= 0x08) goto yy1375;-				goto yy1403;-			} else {-				if (yych == ' ') goto yy1403;-				if (yych <= '!') goto yy1375;-				goto yy1268;-			}-		} else {-			if (yych <= ':') {-				if (yych == '\'') goto yy1268;-				if (yych <= '9') goto yy1375;-			} else {-				if (yych <= ';') goto yy1375;-				if (yych <= '=') goto yy1268;-				if (yych <= '>') goto yy1285;-				goto yy1375;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1405;-				if (yych <= '^') goto yy1375;-				if (yych >= '`') goto yy1268;-			} else {-				if (yych <= 'z') goto yy1405;-				if (yych <= 0x7F) goto yy1375;-				if (yych <= 0xC1) goto yy1268;-				goto yy1377;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1378;-				if (yych == 0xED) goto yy1383;-				goto yy1379;-			} else {-				if (yych <= 0xF0) goto yy1380;-				if (yych <= 0xF3) goto yy1381;-				if (yych <= 0xF4) goto yy1382;-				goto yy1268;-			}-		}-	}-yy1405:-	++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= '&') {-			if (yych <= 0x1F) {-				if (yych <= 0x00) goto yy1268;-				if (yych <= 0x08) goto yy1375;-				if (yych >= 0x0E) goto yy1375;-			} else {-				if (yych <= ' ') goto yy1407;-				if (yych == '"') goto yy1268;-				goto yy1375;-			}-		} else {-			if (yych <= '/') {-				if (yych <= '\'') goto yy1268;-				if (yych <= ',') goto yy1375;-				if (yych <= '.') goto yy1405;-				goto yy1375;-			} else {-				if (yych <= ';') {-					if (yych <= ':') goto yy1405;-					goto yy1375;-				} else {-					if (yych <= '<') goto yy1268;-					if (yych <= '=') goto yy1373;-					goto yy1285;-				}-			}-		}-	} else {-		if (yych <= 0xC1) {-			if (yych <= '_') {-				if (yych <= '@') goto yy1375;-				if (yych <= 'Z') goto yy1405;-				if (yych <= '^') goto yy1375;-				goto yy1405;-			} else {-				if (yych <= '`') goto yy1268;-				if (yych <= 'z') goto yy1405;-				if (yych <= 0x7F) goto yy1375;-				goto yy1268;-			}-		} else {-			if (yych <= 0xED) {-				if (yych <= 0xDF) goto yy1377;-				if (yych <= 0xE0) goto yy1378;-				if (yych <= 0xEC) goto yy1379;-				goto yy1383;-			} else {-				if (yych <= 0xF0) {-					if (yych <= 0xEF) goto yy1379;-					goto yy1380;-				} else {-					if (yych <= 0xF3) goto yy1381;-					if (yych <= 0xF4) goto yy1382;-					goto yy1268;-				}-			}-		}-	}-yy1407:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '&') {-			if (yych <= 0x1F) {-				if (yych <= 0x00) goto yy1268;-				if (yych <= 0x08) goto yy1375;-				if (yych <= '\r') goto yy1407;-				goto yy1375;-			} else {-				if (yych <= ' ') goto yy1407;-				if (yych == '"') goto yy1268;-				goto yy1375;-			}-		} else {-			if (yych <= ';') {-				if (yych <= '\'') goto yy1268;-				if (yych == ':') goto yy1405;-				goto yy1375;-			} else {-				if (yych <= '<') goto yy1268;-				if (yych <= '=') goto yy1373;-				if (yych <= '>') goto yy1285;-				goto yy1375;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1405;-				if (yych <= '^') goto yy1375;-				if (yych <= '_') goto yy1405;-				goto yy1268;-			} else {-				if (yych <= 'z') goto yy1405;-				if (yych <= 0x7F) goto yy1375;-				if (yych <= 0xC1) goto yy1268;-				goto yy1377;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1378;-				if (yych == 0xED) goto yy1383;-				goto yy1379;-			} else {-				if (yych <= 0xF0) goto yy1380;-				if (yych <= 0xF3) goto yy1381;-				if (yych <= 0xF4) goto yy1382;-				goto yy1268;-			}-		}-	}-yy1409:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '"') {-			if (yych <= '\r') {-				if (yych <= 0x00) goto yy1268;-				if (yych <= 0x08) goto yy1375;-				goto yy1409;-			} else {-				if (yych == ' ') goto yy1409;-				if (yych <= '!') goto yy1375;-				goto yy1386;-			}-		} else {-			if (yych <= ':') {-				if (yych == '\'') goto yy1384;-				if (yych <= '9') goto yy1375;-				goto yy1405;-			} else {-				if (yych <= ';') goto yy1375;-				if (yych <= '=') goto yy1268;-				if (yych <= '>') goto yy1285;-				goto yy1375;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1405;-				if (yych <= '^') goto yy1375;-				if (yych <= '_') goto yy1405;-				goto yy1268;-			} else {-				if (yych <= 'z') goto yy1405;-				if (yych <= 0x7F) goto yy1375;-				if (yych <= 0xC1) goto yy1268;-				goto yy1377;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1378;-				if (yych == 0xED) goto yy1383;-				goto yy1379;-			} else {-				if (yych <= 0xF0) goto yy1380;-				if (yych <= 0xF3) goto yy1381;-				if (yych <= 0xF4) goto yy1382;-				goto yy1268;-			}-		}-	}-}--}--// 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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= ';') {-			if (yych != '\n') goto yy1415;-		} else {-			if (yych <= '<') goto yy1414;-			if (yych <= 0x7F) goto yy1415;-			if (yych >= 0xC2) goto yy1416;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1418;-			if (yych == 0xED) goto yy1423;-			goto yy1419;-		} else {-			if (yych <= 0xF0) goto yy1420;-			if (yych <= 0xF3) goto yy1421;-			if (yych <= 0xF4) goto yy1422;-		}-	}-yy1413:-	{ return 0; }-yy1414:-	yych = *(marker = ++p);-	switch (yych) {-	case '!':	goto yy1439;-	case '/':	goto yy1424;-	case '?':	goto yy1440;-	case 'A':-	case 'a':	goto yy1426;-	case 'B':-	case 'b':	goto yy1427;-	case 'C':-	case 'c':	goto yy1428;-	case 'D':-	case 'd':	goto yy1429;-	case 'F':-	case 'f':	goto yy1430;-	case 'H':-	case 'h':	goto yy1431;-	case 'L':-	case 'l':	goto yy1432;-	case 'M':-	case 'm':	goto yy1433;-	case 'N':-	case 'n':	goto yy1434;-	case 'O':-	case 'o':	goto yy1435;-	case 'P':-	case 'p':	goto yy1425;-	case 'S':-	case 's':	goto yy1436;-	case 'T':-	case 't':	goto yy1437;-	case 'U':-	case 'u':	goto yy1438;-	default:	goto yy1413;-	}-yy1415:-	yych = *++p;-	goto yy1413;-yy1416:-	yych = *++p;-	if (yych <= 0x7F) goto yy1417;-	if (yych <= 0xBF) goto yy1415;-yy1417:-	p = marker;-	goto yy1413;-yy1418:-	yych = *++p;-	if (yych <= 0x9F) goto yy1417;-	if (yych <= 0xBF) goto yy1416;-	goto yy1417;-yy1419:-	yych = *++p;-	if (yych <= 0x7F) goto yy1417;-	if (yych <= 0xBF) goto yy1416;-	goto yy1417;-yy1420:-	yych = *++p;-	if (yych <= 0x8F) goto yy1417;-	if (yych <= 0xBF) goto yy1419;-	goto yy1417;-yy1421:-	yych = *++p;-	if (yych <= 0x7F) goto yy1417;-	if (yych <= 0xBF) goto yy1419;-	goto yy1417;-yy1422:-	yych = *++p;-	if (yych <= 0x7F) goto yy1417;-	if (yych <= 0x8F) goto yy1419;-	goto yy1417;-yy1423:-	yych = *++p;-	if (yych <= 0x7F) goto yy1417;-	if (yych <= 0x9F) goto yy1416;-	goto yy1417;-yy1424:-	yych = *++p;-	switch (yych) {-	case 'A':-	case 'a':	goto yy1426;-	case 'B':-	case 'b':	goto yy1427;-	case 'C':-	case 'c':	goto yy1428;-	case 'D':-	case 'd':	goto yy1429;-	case 'F':-	case 'f':	goto yy1430;-	case 'H':-	case 'h':	goto yy1431;-	case 'L':-	case 'l':	goto yy1432;-	case 'M':-	case 'm':	goto yy1433;-	case 'N':-	case 'n':	goto yy1434;-	case 'O':-	case 'o':	goto yy1435;-	case 'P':-	case 'p':	goto yy1622;-	case 'S':-	case 's':	goto yy1623;-	case 'T':-	case 't':	goto yy1437;-	case 'U':-	case 'u':	goto yy1438;-	default:	goto yy1417;-	}-yy1425:-	yych = *++p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			if (yych <= 0x1F) goto yy1417;-			goto yy1456;-		} else {-			if (yych == '/') goto yy1458;-			if (yych <= '=') goto yy1417;-			goto yy1456;-		}-	} else {-		if (yych <= 'R') {-			if (yych == 'A') goto yy1617;-			if (yych <= 'Q') goto yy1417;-			goto yy1616;-		} else {-			if (yych <= 'a') {-				if (yych <= '`') goto yy1417;-				goto yy1617;-			} else {-				if (yych == 'r') goto yy1616;-				goto yy1417;-			}-		}-	}-yy1426:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'D') {-			if (yych <= 'C') goto yy1417;-			goto yy1605;-		} else {-			if (yych <= 'Q') goto yy1417;-			if (yych <= 'R') goto yy1604;-			goto yy1603;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'd') goto yy1605;-			goto yy1417;-		} else {-			if (yych <= 'r') goto yy1604;-			if (yych <= 's') goto yy1603;-			goto yy1417;-		}-	}-yy1427:-	yych = *++p;-	if (yych <= 'O') {-		if (yych <= 'K') {-			if (yych == 'A') goto yy1589;-			goto yy1417;-		} else {-			if (yych <= 'L') goto yy1588;-			if (yych <= 'N') goto yy1417;-			goto yy1587;-		}-	} else {-		if (yych <= 'k') {-			if (yych == 'a') goto yy1589;-			goto yy1417;-		} else {-			if (yych <= 'l') goto yy1588;-			if (yych == 'o') goto yy1587;-			goto yy1417;-		}-	}-yy1428:-	yych = *++p;-	if (yych <= 'O') {-		if (yych <= 'D') {-			if (yych == 'A') goto yy1574;-			goto yy1417;-		} else {-			if (yych <= 'E') goto yy1573;-			if (yych <= 'N') goto yy1417;-			goto yy1572;-		}-	} else {-		if (yych <= 'd') {-			if (yych == 'a') goto yy1574;-			goto yy1417;-		} else {-			if (yych <= 'e') goto yy1573;-			if (yych == 'o') goto yy1572;-			goto yy1417;-		}-	}-yy1429:-	yych = *++p;-	switch (yych) {-	case 'D':-	case 'L':-	case 'T':-	case 'd':-	case 'l':-	case 't':	goto yy1455;-	case 'E':-	case 'e':	goto yy1564;-	case 'I':-	case 'i':	goto yy1563;-	default:	goto yy1417;-	}-yy1430:-	yych = *++p;-	if (yych <= 'R') {-		if (yych <= 'N') {-			if (yych == 'I') goto yy1539;-			goto yy1417;-		} else {-			if (yych <= 'O') goto yy1538;-			if (yych <= 'Q') goto yy1417;-			goto yy1537;-		}-	} else {-		if (yych <= 'n') {-			if (yych == 'i') goto yy1539;-			goto yy1417;-		} else {-			if (yych <= 'o') goto yy1538;-			if (yych == 'r') goto yy1537;-			goto yy1417;-		}-	}-yy1431:-	yych = *++p;-	if (yych <= 'S') {-		if (yych <= 'D') {-			if (yych == '1') goto yy1455;-			goto yy1417;-		} else {-			if (yych <= 'E') goto yy1532;-			if (yych == 'R') goto yy1455;-			goto yy1417;-		}-	} else {-		if (yych <= 'q') {-			if (yych <= 'T') goto yy1531;-			if (yych == 'e') goto yy1532;-			goto yy1417;-		} else {-			if (yych <= 'r') goto yy1455;-			if (yych == 't') goto yy1531;-			goto yy1417;-		}-	}-yy1432:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'E') goto yy1526;-		if (yych <= 'H') goto yy1417;-		goto yy1525;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy1417;-			goto yy1526;-		} else {-			if (yych == 'i') goto yy1525;-			goto yy1417;-		}-	}-yy1433:-	yych = *++p;-	if (yych <= 'E') {-		if (yych == 'A') goto yy1517;-		if (yych <= 'D') goto yy1417;-		goto yy1516;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy1417;-			goto yy1517;-		} else {-			if (yych == 'e') goto yy1516;-			goto yy1417;-		}-	}-yy1434:-	yych = *++p;-	if (yych <= 'O') {-		if (yych == 'A') goto yy1510;-		if (yych <= 'N') goto yy1417;-		goto yy1509;-	} else {-		if (yych <= 'a') {-			if (yych <= '`') goto yy1417;-			goto yy1510;-		} else {-			if (yych == 'o') goto yy1509;-			goto yy1417;-		}-	}-yy1435:-	yych = *++p;-	if (yych <= 'P') {-		if (yych == 'L') goto yy1455;-		if (yych <= 'O') goto yy1417;-		goto yy1501;-	} else {-		if (yych <= 'l') {-			if (yych <= 'k') goto yy1417;-			goto yy1455;-		} else {-			if (yych == 'p') goto yy1501;-			goto yy1417;-		}-	}-yy1436:-	yych = *++p;-	if (yych <= 'U') {-		if (yych <= 'E') {-			if (yych == 'C') goto yy1478;-			if (yych <= 'D') goto yy1417;-			goto yy1481;-		} else {-			if (yych <= 'O') {-				if (yych <= 'N') goto yy1417;-				goto yy1480;-			} else {-				if (yych <= 'S') goto yy1417;-				if (yych <= 'T') goto yy1477;-				goto yy1479;-			}-		}-	} else {-		if (yych <= 'n') {-			if (yych <= 'c') {-				if (yych <= 'b') goto yy1417;-				goto yy1478;-			} else {-				if (yych == 'e') goto yy1481;-				goto yy1417;-			}-		} else {-			if (yych <= 's') {-				if (yych <= 'o') goto yy1480;-				goto yy1417;-			} else {-				if (yych <= 't') goto yy1477;-				if (yych <= 'u') goto yy1479;-				goto yy1417;-			}-		}-	}-yy1437:-	yych = *++p;-	switch (yych) {-	case 'A':-	case 'a':	goto yy1464;-	case 'B':-	case 'b':	goto yy1463;-	case 'D':-	case 'd':	goto yy1455;-	case 'F':-	case 'f':	goto yy1462;-	case 'H':-	case 'h':	goto yy1461;-	case 'I':-	case 'i':	goto yy1460;-	case 'R':-	case 'r':	goto yy1459;-	default:	goto yy1417;-	}-yy1438:-	yych = *++p;-	if (yych == 'L') goto yy1455;-	if (yych == 'l') goto yy1455;-	goto yy1417;-yy1439:-	yych = *++p;-	if (yych <= '@') {-		if (yych == '-') goto yy1442;-		goto yy1417;-	} else {-		if (yych <= 'Z') goto yy1443;-		if (yych <= '[') goto yy1445;-		goto yy1417;-	}-yy1440:-	++p;-	{ return 3; }-yy1442:-	yych = *++p;-	if (yych == '-') goto yy1453;-	goto yy1417;-yy1443:-	++p;-	{ return 4; }-yy1445:-	yych = *++p;-	if (yych == 'C') goto yy1446;-	if (yych != 'c') goto yy1417;-yy1446:-	yych = *++p;-	if (yych == 'D') goto yy1447;-	if (yych != 'd') goto yy1417;-yy1447:-	yych = *++p;-	if (yych == 'A') goto yy1448;-	if (yych != 'a') goto yy1417;-yy1448:-	yych = *++p;-	if (yych == 'T') goto yy1449;-	if (yych != 't') goto yy1417;-yy1449:-	yych = *++p;-	if (yych == 'A') goto yy1450;-	if (yych != 'a') goto yy1417;-yy1450:-	yych = *++p;-	if (yych != '[') goto yy1417;-	++p;-	{ return 5; }-yy1453:-	++p;-	{ return 2; }-yy1455:-	yych = *++p;-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy1417;-		if (yych <= '\r') goto yy1456;-		if (yych <= 0x1F) goto yy1417;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy1417;-			goto yy1458;-		} else {-			if (yych != '>') goto yy1417;-		}-	}-yy1456:-	++p;-	{ return 6; }-yy1458:-	yych = *++p;-	if (yych == '>') goto yy1456;-	goto yy1417;-yy1459:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= '@') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'A') goto yy1475;-			if (yych == 'a') goto yy1475;-			goto yy1417;-		}-	}-yy1460:-	yych = *++p;-	if (yych == 'T') goto yy1473;-	if (yych == 't') goto yy1473;-	goto yy1417;-yy1461:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'D') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'E') goto yy1471;-			if (yych == 'e') goto yy1471;-			goto yy1417;-		}-	}-yy1462:-	yych = *++p;-	if (yych == 'O') goto yy1469;-	if (yych == 'o') goto yy1469;-	goto yy1417;-yy1463:-	yych = *++p;-	if (yych == 'O') goto yy1467;-	if (yych == 'o') goto yy1467;-	goto yy1417;-yy1464:-	yych = *++p;-	if (yych == 'B') goto yy1465;-	if (yych != 'b') goto yy1417;-yy1465:-	yych = *++p;-	if (yych == 'L') goto yy1466;-	if (yych != 'l') goto yy1417;-yy1466:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1467:-	yych = *++p;-	if (yych == 'D') goto yy1468;-	if (yych != 'd') goto yy1417;-yy1468:-	yych = *++p;-	if (yych == 'Y') goto yy1455;-	if (yych == 'y') goto yy1455;-	goto yy1417;-yy1469:-	yych = *++p;-	if (yych == 'O') goto yy1470;-	if (yych != 'o') goto yy1417;-yy1470:-	yych = *++p;-	if (yych == 'T') goto yy1455;-	if (yych == 't') goto yy1455;-	goto yy1417;-yy1471:-	yych = *++p;-	if (yych == 'A') goto yy1472;-	if (yych != 'a') goto yy1417;-yy1472:-	yych = *++p;-	if (yych == 'D') goto yy1455;-	if (yych == 'd') goto yy1455;-	goto yy1417;-yy1473:-	yych = *++p;-	if (yych == 'L') goto yy1474;-	if (yych != 'l') goto yy1417;-yy1474:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1475:-	yych = *++p;-	if (yych == 'C') goto yy1476;-	if (yych != 'c') goto yy1417;-yy1476:-	yych = *++p;-	if (yych == 'K') goto yy1455;-	if (yych == 'k') goto yy1455;-	goto yy1417;-yy1477:-	yych = *++p;-	if (yych == 'Y') goto yy1499;-	if (yych == 'y') goto yy1499;-	goto yy1417;-yy1478:-	yych = *++p;-	if (yych == 'R') goto yy1493;-	if (yych == 'r') goto yy1493;-	goto yy1417;-yy1479:-	yych = *++p;-	if (yych == 'M') goto yy1489;-	if (yych == 'm') goto yy1489;-	goto yy1417;-yy1480:-	yych = *++p;-	if (yych == 'U') goto yy1486;-	if (yych == 'u') goto yy1486;-	goto yy1417;-yy1481:-	yych = *++p;-	if (yych == 'C') goto yy1482;-	if (yych != 'c') goto yy1417;-yy1482:-	yych = *++p;-	if (yych == 'T') goto yy1483;-	if (yych != 't') goto yy1417;-yy1483:-	yych = *++p;-	if (yych == 'I') goto yy1484;-	if (yych != 'i') goto yy1417;-yy1484:-	yych = *++p;-	if (yych == 'O') goto yy1485;-	if (yych != 'o') goto yy1417;-yy1485:-	yych = *++p;-	if (yych == 'N') goto yy1455;-	if (yych == 'n') goto yy1455;-	goto yy1417;-yy1486:-	yych = *++p;-	if (yych == 'R') goto yy1487;-	if (yych != 'r') goto yy1417;-yy1487:-	yych = *++p;-	if (yych == 'C') goto yy1488;-	if (yych != 'c') goto yy1417;-yy1488:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1489:-	yych = *++p;-	if (yych == 'M') goto yy1490;-	if (yych != 'm') goto yy1417;-yy1490:-	yych = *++p;-	if (yych == 'A') goto yy1491;-	if (yych != 'a') goto yy1417;-yy1491:-	yych = *++p;-	if (yych == 'R') goto yy1492;-	if (yych != 'r') goto yy1417;-yy1492:-	yych = *++p;-	if (yych == 'Y') goto yy1455;-	if (yych == 'y') goto yy1455;-	goto yy1417;-yy1493:-	yych = *++p;-	if (yych == 'I') goto yy1494;-	if (yych != 'i') goto yy1417;-yy1494:-	yych = *++p;-	if (yych == 'P') goto yy1495;-	if (yych != 'p') goto yy1417;-yy1495:-	yych = *++p;-	if (yych == 'T') goto yy1496;-	if (yych != 't') goto yy1417;-yy1496:-	yych = *++p;-	if (yych <= 0x1F) {-		if (yych <= 0x08) goto yy1417;-		if (yych >= 0x0E) goto yy1417;-	} else {-		if (yych <= ' ') goto yy1497;-		if (yych != '>') goto yy1417;-	}-yy1497:-	++p;-yy1498:-	{ return 1; }-yy1499:-	yych = *++p;-	if (yych == 'L') goto yy1500;-	if (yych != 'l') goto yy1417;-yy1500:-	yych = *++p;-	if (yych == 'E') goto yy1496;-	if (yych == 'e') goto yy1496;-	goto yy1417;-yy1501:-	yych = *++p;-	if (yych == 'T') goto yy1502;-	if (yych != 't') goto yy1417;-yy1502:-	yych = *++p;-	if (yych <= 'I') {-		if (yych == 'G') goto yy1504;-		if (yych <= 'H') goto yy1417;-	} else {-		if (yych <= 'g') {-			if (yych <= 'f') goto yy1417;-			goto yy1504;-		} else {-			if (yych != 'i') goto yy1417;-		}-	}-	yych = *++p;-	if (yych == 'O') goto yy1508;-	if (yych == 'o') goto yy1508;-	goto yy1417;-yy1504:-	yych = *++p;-	if (yych == 'R') goto yy1505;-	if (yych != 'r') goto yy1417;-yy1505:-	yych = *++p;-	if (yych == 'O') goto yy1506;-	if (yych != 'o') goto yy1417;-yy1506:-	yych = *++p;-	if (yych == 'U') goto yy1507;-	if (yych != 'u') goto yy1417;-yy1507:-	yych = *++p;-	if (yych == 'P') goto yy1455;-	if (yych == 'p') goto yy1455;-	goto yy1417;-yy1508:-	yych = *++p;-	if (yych == 'N') goto yy1455;-	if (yych == 'n') goto yy1455;-	goto yy1417;-yy1509:-	yych = *++p;-	if (yych == 'F') goto yy1511;-	if (yych == 'f') goto yy1511;-	goto yy1417;-yy1510:-	yych = *++p;-	if (yych == 'V') goto yy1455;-	if (yych == 'v') goto yy1455;-	goto yy1417;-yy1511:-	yych = *++p;-	if (yych == 'R') goto yy1512;-	if (yych != 'r') goto yy1417;-yy1512:-	yych = *++p;-	if (yych == 'A') goto yy1513;-	if (yych != 'a') goto yy1417;-yy1513:-	yych = *++p;-	if (yych == 'M') goto yy1514;-	if (yych != 'm') goto yy1417;-yy1514:-	yych = *++p;-	if (yych == 'E') goto yy1515;-	if (yych != 'e') goto yy1417;-yy1515:-	yych = *++p;-	if (yych == 'S') goto yy1455;-	if (yych == 's') goto yy1455;-	goto yy1417;-yy1516:-	yych = *++p;-	if (yych <= 'T') {-		if (yych == 'N') goto yy1519;-		if (yych <= 'S') goto yy1417;-		goto yy1520;-	} else {-		if (yych <= 'n') {-			if (yych <= 'm') goto yy1417;-			goto yy1519;-		} else {-			if (yych == 't') goto yy1520;-			goto yy1417;-		}-	}-yy1517:-	yych = *++p;-	if (yych == 'I') goto yy1518;-	if (yych != 'i') goto yy1417;-yy1518:-	yych = *++p;-	if (yych == 'N') goto yy1455;-	if (yych == 'n') goto yy1455;-	goto yy1417;-yy1519:-	yych = *++p;-	if (yych == 'U') goto yy1521;-	if (yych == 'u') goto yy1521;-	goto yy1417;-yy1520:-	yych = *++p;-	if (yych == 'A') goto yy1455;-	if (yych == 'a') goto yy1455;-	goto yy1417;-yy1521:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'H') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'I') goto yy1522;-			if (yych != 'i') goto yy1417;-		}-	}-yy1522:-	yych = *++p;-	if (yych == 'T') goto yy1523;-	if (yych != 't') goto yy1417;-yy1523:-	yych = *++p;-	if (yych == 'E') goto yy1524;-	if (yych != 'e') goto yy1417;-yy1524:-	yych = *++p;-	if (yych == 'M') goto yy1455;-	if (yych == 'm') goto yy1455;-	goto yy1417;-yy1525:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'M') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'N') goto yy1530;-			if (yych == 'n') goto yy1530;-			goto yy1417;-		}-	}-yy1526:-	yych = *++p;-	if (yych == 'G') goto yy1527;-	if (yych != 'g') goto yy1417;-yy1527:-	yych = *++p;-	if (yych == 'E') goto yy1528;-	if (yych != 'e') goto yy1417;-yy1528:-	yych = *++p;-	if (yych == 'N') goto yy1529;-	if (yych != 'n') goto yy1417;-yy1529:-	yych = *++p;-	if (yych == 'D') goto yy1455;-	if (yych == 'd') goto yy1455;-	goto yy1417;-yy1530:-	yych = *++p;-	if (yych == 'K') goto yy1455;-	if (yych == 'k') goto yy1455;-	goto yy1417;-yy1531:-	yych = *++p;-	if (yych == 'M') goto yy1536;-	if (yych == 'm') goto yy1536;-	goto yy1417;-yy1532:-	yych = *++p;-	if (yych == 'A') goto yy1533;-	if (yych != 'a') goto yy1417;-yy1533:-	yych = *++p;-	if (yych == 'D') goto yy1534;-	if (yych != 'd') goto yy1417;-yy1534:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'D') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'E') goto yy1535;-			if (yych != 'e') goto yy1417;-		}-	}-yy1535:-	yych = *++p;-	if (yych == 'R') goto yy1455;-	if (yych == 'r') goto yy1455;-	goto yy1417;-yy1536:-	yych = *++p;-	if (yych == 'L') goto yy1455;-	if (yych == 'l') goto yy1455;-	goto yy1417;-yy1537:-	yych = *++p;-	if (yych == 'A') goto yy1558;-	if (yych == 'a') goto yy1558;-	goto yy1417;-yy1538:-	yych = *++p;-	if (yych <= 'R') {-		if (yych == 'O') goto yy1554;-		if (yych <= 'Q') goto yy1417;-		goto yy1555;-	} else {-		if (yych <= 'o') {-			if (yych <= 'n') goto yy1417;-			goto yy1554;-		} else {-			if (yych == 'r') goto yy1555;-			goto yy1417;-		}-	}-yy1539:-	yych = *++p;-	if (yych <= 'G') {-		if (yych == 'E') goto yy1540;-		if (yych <= 'F') goto yy1417;-		goto yy1541;-	} else {-		if (yych <= 'e') {-			if (yych <= 'd') goto yy1417;-		} else {-			if (yych == 'g') goto yy1541;-			goto yy1417;-		}-	}-yy1540:-	yych = *++p;-	if (yych == 'L') goto yy1550;-	if (yych == 'l') goto yy1550;-	goto yy1417;-yy1541:-	yych = *++p;-	if (yych <= 'U') {-		if (yych == 'C') goto yy1543;-		if (yych <= 'T') goto yy1417;-	} else {-		if (yych <= 'c') {-			if (yych <= 'b') goto yy1417;-			goto yy1543;-		} else {-			if (yych != 'u') goto yy1417;-		}-	}-	yych = *++p;-	if (yych == 'R') goto yy1549;-	if (yych == 'r') goto yy1549;-	goto yy1417;-yy1543:-	yych = *++p;-	if (yych == 'A') goto yy1544;-	if (yych != 'a') goto yy1417;-yy1544:-	yych = *++p;-	if (yych == 'P') goto yy1545;-	if (yych != 'p') goto yy1417;-yy1545:-	yych = *++p;-	if (yych == 'T') goto yy1546;-	if (yych != 't') goto yy1417;-yy1546:-	yych = *++p;-	if (yych == 'I') goto yy1547;-	if (yych != 'i') goto yy1417;-yy1547:-	yych = *++p;-	if (yych == 'O') goto yy1548;-	if (yych != 'o') goto yy1417;-yy1548:-	yych = *++p;-	if (yych == 'N') goto yy1455;-	if (yych == 'n') goto yy1455;-	goto yy1417;-yy1549:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1550:-	yych = *++p;-	if (yych == 'D') goto yy1551;-	if (yych != 'd') goto yy1417;-yy1551:-	yych = *++p;-	if (yych == 'S') goto yy1552;-	if (yych != 's') goto yy1417;-yy1552:-	yych = *++p;-	if (yych == 'E') goto yy1553;-	if (yych != 'e') goto yy1417;-yy1553:-	yych = *++p;-	if (yych == 'T') goto yy1455;-	if (yych == 't') goto yy1455;-	goto yy1417;-yy1554:-	yych = *++p;-	if (yych == 'T') goto yy1556;-	if (yych == 't') goto yy1556;-	goto yy1417;-yy1555:-	yych = *++p;-	if (yych == 'M') goto yy1455;-	if (yych == 'm') goto yy1455;-	goto yy1417;-yy1556:-	yych = *++p;-	if (yych == 'E') goto yy1557;-	if (yych != 'e') goto yy1417;-yy1557:-	yych = *++p;-	if (yych == 'R') goto yy1455;-	if (yych == 'r') goto yy1455;-	goto yy1417;-yy1558:-	yych = *++p;-	if (yych == 'M') goto yy1559;-	if (yych != 'm') goto yy1417;-yy1559:-	yych = *++p;-	if (yych == 'E') goto yy1560;-	if (yych != 'e') goto yy1417;-yy1560:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'R') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'S') goto yy1561;-			if (yych != 's') goto yy1417;-		}-	}-yy1561:-	yych = *++p;-	if (yych == 'E') goto yy1562;-	if (yych != 'e') goto yy1417;-yy1562:-	yych = *++p;-	if (yych == 'T') goto yy1455;-	if (yych == 't') goto yy1455;-	goto yy1417;-yy1563:-	yych = *++p;-	if (yych <= 'V') {-		if (yych <= 'Q') {-			if (yych == 'A') goto yy1569;-			goto yy1417;-		} else {-			if (yych <= 'R') goto yy1455;-			if (yych <= 'U') goto yy1417;-			goto yy1455;-		}-	} else {-		if (yych <= 'q') {-			if (yych == 'a') goto yy1569;-			goto yy1417;-		} else {-			if (yych <= 'r') goto yy1455;-			if (yych == 'v') goto yy1455;-			goto yy1417;-		}-	}-yy1564:-	yych = *++p;-	if (yych == 'T') goto yy1565;-	if (yych != 't') goto yy1417;-yy1565:-	yych = *++p;-	if (yych == 'A') goto yy1566;-	if (yych != 'a') goto yy1417;-yy1566:-	yych = *++p;-	if (yych == 'I') goto yy1567;-	if (yych != 'i') goto yy1417;-yy1567:-	yych = *++p;-	if (yych == 'L') goto yy1568;-	if (yych != 'l') goto yy1417;-yy1568:-	yych = *++p;-	if (yych == 'S') goto yy1455;-	if (yych == 's') goto yy1455;-	goto yy1417;-yy1569:-	yych = *++p;-	if (yych == 'L') goto yy1570;-	if (yych != 'l') goto yy1417;-yy1570:-	yych = *++p;-	if (yych == 'O') goto yy1571;-	if (yych != 'o') goto yy1417;-yy1571:-	yych = *++p;-	if (yych == 'G') goto yy1455;-	if (yych == 'g') goto yy1455;-	goto yy1417;-yy1572:-	yych = *++p;-	if (yych == 'L') goto yy1582;-	if (yych == 'l') goto yy1582;-	goto yy1417;-yy1573:-	yych = *++p;-	if (yych == 'N') goto yy1579;-	if (yych == 'n') goto yy1579;-	goto yy1417;-yy1574:-	yych = *++p;-	if (yych == 'P') goto yy1575;-	if (yych != 'p') goto yy1417;-yy1575:-	yych = *++p;-	if (yych == 'T') goto yy1576;-	if (yych != 't') goto yy1417;-yy1576:-	yych = *++p;-	if (yych == 'I') goto yy1577;-	if (yych != 'i') goto yy1417;-yy1577:-	yych = *++p;-	if (yych == 'O') goto yy1578;-	if (yych != 'o') goto yy1417;-yy1578:-	yych = *++p;-	if (yych == 'N') goto yy1455;-	if (yych == 'n') goto yy1455;-	goto yy1417;-yy1579:-	yych = *++p;-	if (yych == 'T') goto yy1580;-	if (yych != 't') goto yy1417;-yy1580:-	yych = *++p;-	if (yych == 'E') goto yy1581;-	if (yych != 'e') goto yy1417;-yy1581:-	yych = *++p;-	if (yych == 'R') goto yy1455;-	if (yych == 'r') goto yy1455;-	goto yy1417;-yy1582:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'F') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'G') goto yy1583;-			if (yych != 'g') goto yy1417;-		}-	}-yy1583:-	yych = *++p;-	if (yych == 'R') goto yy1584;-	if (yych != 'r') goto yy1417;-yy1584:-	yych = *++p;-	if (yych == 'O') goto yy1585;-	if (yych != 'o') goto yy1417;-yy1585:-	yych = *++p;-	if (yych == 'U') goto yy1586;-	if (yych != 'u') goto yy1417;-yy1586:-	yych = *++p;-	if (yych == 'P') goto yy1455;-	if (yych == 'p') goto yy1455;-	goto yy1417;-yy1587:-	yych = *++p;-	if (yych == 'D') goto yy1602;-	if (yych == 'd') goto yy1602;-	goto yy1417;-yy1588:-	yych = *++p;-	if (yych == 'O') goto yy1595;-	if (yych == 'o') goto yy1595;-	goto yy1417;-yy1589:-	yych = *++p;-	if (yych == 'S') goto yy1590;-	if (yych != 's') goto yy1417;-yy1590:-	yych = *++p;-	if (yych == 'E') goto yy1591;-	if (yych != 'e') goto yy1417;-yy1591:-	yych = *++p;-	if (yych <= '/') {-		if (yych <= 0x1F) {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= ' ') goto yy1456;-			if (yych <= '.') goto yy1417;-			goto yy1458;-		}-	} else {-		if (yych <= 'E') {-			if (yych == '>') goto yy1456;-			goto yy1417;-		} else {-			if (yych <= 'F') goto yy1592;-			if (yych != 'f') goto yy1417;-		}-	}-yy1592:-	yych = *++p;-	if (yych == 'O') goto yy1593;-	if (yych != 'o') goto yy1417;-yy1593:-	yych = *++p;-	if (yych == 'N') goto yy1594;-	if (yych != 'n') goto yy1417;-yy1594:-	yych = *++p;-	if (yych == 'T') goto yy1455;-	if (yych == 't') goto yy1455;-	goto yy1417;-yy1595:-	yych = *++p;-	if (yych == 'C') goto yy1596;-	if (yych != 'c') goto yy1417;-yy1596:-	yych = *++p;-	if (yych == 'K') goto yy1597;-	if (yych != 'k') goto yy1417;-yy1597:-	yych = *++p;-	if (yych == 'Q') goto yy1598;-	if (yych != 'q') goto yy1417;-yy1598:-	yych = *++p;-	if (yych == 'U') goto yy1599;-	if (yych != 'u') goto yy1417;-yy1599:-	yych = *++p;-	if (yych == 'O') goto yy1600;-	if (yych != 'o') goto yy1417;-yy1600:-	yych = *++p;-	if (yych == 'T') goto yy1601;-	if (yych != 't') goto yy1417;-yy1601:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1602:-	yych = *++p;-	if (yych == 'Y') goto yy1455;-	if (yych == 'y') goto yy1455;-	goto yy1417;-yy1603:-	yych = *++p;-	if (yych == 'I') goto yy1614;-	if (yych == 'i') goto yy1614;-	goto yy1417;-yy1604:-	yych = *++p;-	if (yych == 'T') goto yy1610;-	if (yych == 't') goto yy1610;-	goto yy1417;-yy1605:-	yych = *++p;-	if (yych == 'D') goto yy1606;-	if (yych != 'd') goto yy1417;-yy1606:-	yych = *++p;-	if (yych == 'R') goto yy1607;-	if (yych != 'r') goto yy1417;-yy1607:-	yych = *++p;-	if (yych == 'E') goto yy1608;-	if (yych != 'e') goto yy1417;-yy1608:-	yych = *++p;-	if (yych == 'S') goto yy1609;-	if (yych != 's') goto yy1417;-yy1609:-	yych = *++p;-	if (yych == 'S') goto yy1455;-	if (yych == 's') goto yy1455;-	goto yy1417;-yy1610:-	yych = *++p;-	if (yych == 'I') goto yy1611;-	if (yych != 'i') goto yy1417;-yy1611:-	yych = *++p;-	if (yych == 'C') goto yy1612;-	if (yych != 'c') goto yy1417;-yy1612:-	yych = *++p;-	if (yych == 'L') goto yy1613;-	if (yych != 'l') goto yy1417;-yy1613:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1614:-	yych = *++p;-	if (yych == 'D') goto yy1615;-	if (yych != 'd') goto yy1417;-yy1615:-	yych = *++p;-	if (yych == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-yy1616:-	yych = *++p;-	if (yych == 'E') goto yy1620;-	if (yych == 'e') goto yy1620;-	goto yy1417;-yy1617:-	yych = *++p;-	if (yych == 'R') goto yy1618;-	if (yych != 'r') goto yy1417;-yy1618:-	yych = *++p;-	if (yych == 'A') goto yy1619;-	if (yych != 'a') goto yy1417;-yy1619:-	yych = *++p;-	if (yych == 'M') goto yy1455;-	if (yych == 'm') goto yy1455;-	goto yy1417;-yy1620:-	yych = *++p;-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy1417;-		if (yych <= '\r') goto yy1621;-		if (yych <= 0x1F) goto yy1417;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy1417;-			goto yy1458;-		} else {-			if (yych != '>') goto yy1417;-		}-	}-yy1621:-	yych = *++p;-	goto yy1498;-yy1622:-	yych = *++p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1417;-			if (yych <= '\r') goto yy1456;-			if (yych <= 0x1F) goto yy1417;-			goto yy1456;-		} else {-			if (yych == '/') goto yy1458;-			if (yych <= '=') goto yy1417;-			goto yy1456;-		}-	} else {-		if (yych <= 'R') {-			if (yych == 'A') goto yy1617;-			if (yych <= 'Q') goto yy1417;-			goto yy1624;-		} else {-			if (yych <= 'a') {-				if (yych <= '`') goto yy1417;-				goto yy1617;-			} else {-				if (yych == 'r') goto yy1624;-				goto yy1417;-			}-		}-	}-yy1623:-	yych = *++p;-	if (yych <= 'U') {-		if (yych <= 'N') {-			if (yych == 'E') goto yy1481;-			goto yy1417;-		} else {-			if (yych <= 'O') goto yy1480;-			if (yych <= 'T') goto yy1417;-			goto yy1479;-		}-	} else {-		if (yych <= 'n') {-			if (yych == 'e') goto yy1481;-			goto yy1417;-		} else {-			if (yych <= 'o') goto yy1480;-			if (yych == 'u') goto yy1479;-			goto yy1417;-		}-	}-yy1624:-	++p;-	if ((yych = *p) == 'E') goto yy1455;-	if (yych == 'e') goto yy1455;-	goto yy1417;-}--}--// 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, 202, 194, 198, 194, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		198, 224,  64, 224, 224, 224, 224, 128, -		224, 224, 224, 224, 224, 241, 240, 224, -		241, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 240, 224, 192, 192, 192, 224, -		224, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 224, 224, 224, 224, 240, -		192, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 241, 241, 241, 241, 241, -		241, 241, 241, 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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= ';') {-			if (yych != '\n') goto yy1629;-		} else {-			if (yych <= '<') goto yy1628;-			if (yych <= 0x7F) goto yy1629;-			if (yych >= 0xC2) goto yy1630;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1632;-			if (yych == 0xED) goto yy1637;-			goto yy1633;-		} else {-			if (yych <= 0xF0) goto yy1634;-			if (yych <= 0xF3) goto yy1635;-			if (yych <= 0xF4) goto yy1636;-		}-	}-yy1627:-	{ return 0; }-yy1628:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '@') {-		if (yych == '/') goto yy1640;-		goto yy1627;-	} else {-		if (yych <= 'Z') goto yy1638;-		if (yych <= '`') goto yy1627;-		if (yych <= 'z') goto yy1638;-		goto yy1627;-	}-yy1629:-	yych = *++p;-	goto yy1627;-yy1630:-	yych = *++p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1629;-yy1631:-	p = marker;-	if (yyaccept == 0) {-		goto yy1627;-	} else {-		goto yy1649;-	}-yy1632:-	yych = *++p;-	if (yych <= 0x9F) goto yy1631;-	if (yych <= 0xBF) goto yy1630;-	goto yy1631;-yy1633:-	yych = *++p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1630;-	goto yy1631;-yy1634:-	yych = *++p;-	if (yych <= 0x8F) goto yy1631;-	if (yych <= 0xBF) goto yy1633;-	goto yy1631;-yy1635:-	yych = *++p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1633;-	goto yy1631;-yy1636:-	yych = *++p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x8F) goto yy1633;-	goto yy1631;-yy1637:-	yych = *++p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x9F) goto yy1630;-	goto yy1631;-yy1638:-	++p;-	yych = *p;-	if (yybm[0+yych] & 1) {-		goto yy1638;-	}-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy1631;-		if (yych <= '\r') goto yy1651;-		if (yych <= 0x1F) goto yy1631;-		goto yy1651;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy1631;-			goto yy1653;-		} else {-			if (yych == '>') goto yy1645;-			goto yy1631;-		}-	}-yy1640:-	yych = *++p;-	if (yych <= '@') goto yy1631;-	if (yych <= 'Z') goto yy1641;-	if (yych <= '`') goto yy1631;-	if (yych >= '{') goto yy1631;-yy1641:-	++p;-	yych = *p;-	if (yybm[0+yych] & 2) {-		goto yy1643;-	}-	if (yych <= '=') {-		if (yych <= '-') {-			if (yych <= ',') goto yy1631;-			goto yy1641;-		} else {-			if (yych <= '/') goto yy1631;-			if (yych <= '9') goto yy1641;-			goto yy1631;-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '>') goto yy1645;-			if (yych <= '@') goto yy1631;-			goto yy1641;-		} else {-			if (yych <= '`') goto yy1631;-			if (yych <= 'z') goto yy1641;-			goto yy1631;-		}-	}-yy1643:-	++p;-	yych = *p;-	if (yybm[0+yych] & 2) {-		goto yy1643;-	}-	if (yych != '>') goto yy1631;-yy1645:-	++p;-	yych = *p;-	if (yybm[0+yych] & 4) {-		goto yy1645;-	}-	if (yych <= 0x08) goto yy1631;-	if (yych <= '\n') goto yy1647;-	if (yych <= '\v') goto yy1631;-	if (yych <= '\r') goto yy1650;-	goto yy1631;-yy1647:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 4) {-		goto yy1645;-	}-	if (yych <= 0x08) goto yy1649;-	if (yych <= '\n') goto yy1647;-	if (yych <= '\v') goto yy1649;-	if (yych <= '\r') goto yy1650;-yy1649:-	{ return 7; }-yy1650:-	yych = *++p;-	goto yy1649;-yy1651:-	++p;-	yych = *p;-	if (yych <= ':') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1631;-			if (yych <= '\r') goto yy1651;-			if (yych <= 0x1F) goto yy1631;-			goto yy1651;-		} else {-			if (yych == '/') goto yy1653;-			if (yych <= '9') goto yy1631;-			goto yy1654;-		}-	} else {-		if (yych <= 'Z') {-			if (yych == '>') goto yy1645;-			if (yych <= '@') goto yy1631;-			goto yy1654;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy1631;-				goto yy1654;-			} else {-				if (yych <= '`') goto yy1631;-				if (yych <= 'z') goto yy1654;-				goto yy1631;-			}-		}-	}-yy1653:-	yych = *++p;-	if (yych == '>') goto yy1645;-	goto yy1631;-yy1654:-	++p;-	yych = *p;-	if (yybm[0+yych] & 16) {-		goto yy1654;-	}-	if (yych <= ',') {-		if (yych <= '\r') {-			if (yych <= 0x08) goto yy1631;-		} else {-			if (yych != ' ') goto yy1631;-		}-	} else {-		if (yych <= '<') {-			if (yych <= '/') goto yy1653;-			goto yy1631;-		} else {-			if (yych <= '=') goto yy1658;-			if (yych <= '>') goto yy1645;-			goto yy1631;-		}-	}-yy1656:-	++p;-	yych = *p;-	if (yych <= '<') {-		if (yych <= ' ') {-			if (yych <= 0x08) goto yy1631;-			if (yych <= '\r') goto yy1656;-			if (yych <= 0x1F) goto yy1631;-			goto yy1656;-		} else {-			if (yych <= '/') {-				if (yych <= '.') goto yy1631;-				goto yy1653;-			} else {-				if (yych == ':') goto yy1654;-				goto yy1631;-			}-		}-	} else {-		if (yych <= 'Z') {-			if (yych <= '=') goto yy1658;-			if (yych <= '>') goto yy1645;-			if (yych <= '@') goto yy1631;-			goto yy1654;-		} else {-			if (yych <= '_') {-				if (yych <= '^') goto yy1631;-				goto yy1654;-			} else {-				if (yych <= '`') goto yy1631;-				if (yych <= 'z') goto yy1654;-				goto yy1631;-			}-		}-	}-yy1658:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1660;-	}-	if (yych <= 0xE0) {-		if (yych <= '"') {-			if (yych <= 0x00) goto yy1631;-			if (yych >= '!') goto yy1671;-		} else {-			if (yych <= '\'') goto yy1669;-			if (yych <= 0xC1) goto yy1631;-			if (yych <= 0xDF) goto yy1662;-			goto yy1663;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1668;-			goto yy1664;-		} else {-			if (yych <= 0xF0) goto yy1665;-			if (yych <= 0xF3) goto yy1666;-			if (yych <= 0xF4) goto yy1667;-			goto yy1631;-		}-	}-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1660;-	}-	if (yych <= 0xDF) {-		if (yych <= '\'') {-			if (yych <= 0x00) goto yy1631;-			if (yych <= ' ') goto yy1694;-			if (yych <= '"') goto yy1671;-			goto yy1669;-		} else {-			if (yych == '>') goto yy1645;-			if (yych <= 0xC1) goto yy1631;-			goto yy1662;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1663;-			if (yych == 0xED) goto yy1668;-			goto yy1664;-		} else {-			if (yych <= 0xF0) goto yy1665;-			if (yych <= 0xF3) goto yy1666;-			if (yych <= 0xF4) goto yy1667;-			goto yy1631;-		}-	}-yy1660:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1660;-	}-	if (yych <= 0xE0) {-		if (yych <= '=') {-			if (yych <= 0x00) goto yy1631;-			if (yych <= ' ') goto yy1688;-			goto yy1631;-		} else {-			if (yych <= '>') goto yy1645;-			if (yych <= 0xC1) goto yy1631;-			if (yych >= 0xE0) goto yy1663;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1668;-			goto yy1664;-		} else {-			if (yych <= 0xF0) goto yy1665;-			if (yych <= 0xF3) goto yy1666;-			if (yych <= 0xF4) goto yy1667;-			goto yy1631;-		}-	}-yy1662:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1660;-	goto yy1631;-yy1663:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1631;-	if (yych <= 0xBF) goto yy1662;-	goto yy1631;-yy1664:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1662;-	goto yy1631;-yy1665:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1631;-	if (yych <= 0xBF) goto yy1664;-	goto yy1631;-yy1666:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1664;-	goto yy1631;-yy1667:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x8F) goto yy1664;-	goto yy1631;-yy1668:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x9F) goto yy1662;-	goto yy1631;-yy1669:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1669;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1631;-			if (yych <= '\'') goto yy1680;-			goto yy1631;-		} else {-			if (yych <= 0xDF) goto yy1681;-			if (yych <= 0xE0) goto yy1682;-			goto yy1683;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1687;-			if (yych <= 0xEF) goto yy1683;-			goto yy1684;-		} else {-			if (yych <= 0xF3) goto yy1685;-			if (yych <= 0xF4) goto yy1686;-			goto yy1631;-		}-	}-yy1671:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1671;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy1631;-			if (yych <= '"') goto yy1680;-			goto yy1631;-		} else {-			if (yych <= 0xDF) goto yy1673;-			if (yych <= 0xE0) goto yy1674;-			goto yy1675;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1679;-			if (yych <= 0xEF) goto yy1675;-			goto yy1676;-		} else {-			if (yych <= 0xF3) goto yy1677;-			if (yych <= 0xF4) goto yy1678;-			goto yy1631;-		}-	}-yy1673:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1671;-	goto yy1631;-yy1674:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1631;-	if (yych <= 0xBF) goto yy1673;-	goto yy1631;-yy1675:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1673;-	goto yy1631;-yy1676:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1631;-	if (yych <= 0xBF) goto yy1675;-	goto yy1631;-yy1677:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1675;-	goto yy1631;-yy1678:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x8F) goto yy1675;-	goto yy1631;-yy1679:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x9F) goto yy1673;-	goto yy1631;-yy1680:-	++p;-	yych = *p;-	if (yych <= ' ') {-		if (yych <= 0x08) goto yy1631;-		if (yych <= '\r') goto yy1651;-		if (yych <= 0x1F) goto yy1631;-		goto yy1651;-	} else {-		if (yych <= '/') {-			if (yych <= '.') goto yy1631;-			goto yy1653;-		} else {-			if (yych == '>') goto yy1645;-			goto yy1631;-		}-	}-yy1681:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1669;-	goto yy1631;-yy1682:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1631;-	if (yych <= 0xBF) goto yy1681;-	goto yy1631;-yy1683:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1681;-	goto yy1631;-yy1684:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1631;-	if (yych <= 0xBF) goto yy1683;-	goto yy1631;-yy1685:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0xBF) goto yy1683;-	goto yy1631;-yy1686:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x8F) goto yy1683;-	goto yy1631;-yy1687:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1631;-	if (yych <= 0x9F) goto yy1681;-	goto yy1631;-yy1688:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '"') {-			if (yych <= '\r') {-				if (yych <= 0x00) goto yy1631;-				if (yych <= 0x08) goto yy1660;-				goto yy1688;-			} else {-				if (yych == ' ') goto yy1688;-				if (yych <= '!') goto yy1660;-				goto yy1631;-			}-		} else {-			if (yych <= ':') {-				if (yych == '\'') goto yy1631;-				if (yych <= '9') goto yy1660;-			} else {-				if (yych <= ';') goto yy1660;-				if (yych <= '=') goto yy1631;-				if (yych <= '>') goto yy1645;-				goto yy1660;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1690;-				if (yych <= '^') goto yy1660;-				if (yych >= '`') goto yy1631;-			} else {-				if (yych <= 'z') goto yy1690;-				if (yych <= 0x7F) goto yy1660;-				if (yych <= 0xC1) goto yy1631;-				goto yy1662;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1663;-				if (yych == 0xED) goto yy1668;-				goto yy1664;-			} else {-				if (yych <= 0xF0) goto yy1665;-				if (yych <= 0xF3) goto yy1666;-				if (yych <= 0xF4) goto yy1667;-				goto yy1631;-			}-		}-	}-yy1690:-	++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= '&') {-			if (yych <= 0x1F) {-				if (yych <= 0x00) goto yy1631;-				if (yych <= 0x08) goto yy1660;-				if (yych >= 0x0E) goto yy1660;-			} else {-				if (yych <= ' ') goto yy1692;-				if (yych == '"') goto yy1631;-				goto yy1660;-			}-		} else {-			if (yych <= '/') {-				if (yych <= '\'') goto yy1631;-				if (yych <= ',') goto yy1660;-				if (yych <= '.') goto yy1690;-				goto yy1660;-			} else {-				if (yych <= ';') {-					if (yych <= ':') goto yy1690;-					goto yy1660;-				} else {-					if (yych <= '<') goto yy1631;-					if (yych <= '=') goto yy1658;-					goto yy1645;-				}-			}-		}-	} else {-		if (yych <= 0xC1) {-			if (yych <= '_') {-				if (yych <= '@') goto yy1660;-				if (yych <= 'Z') goto yy1690;-				if (yych <= '^') goto yy1660;-				goto yy1690;-			} else {-				if (yych <= '`') goto yy1631;-				if (yych <= 'z') goto yy1690;-				if (yych <= 0x7F) goto yy1660;-				goto yy1631;-			}-		} else {-			if (yych <= 0xED) {-				if (yych <= 0xDF) goto yy1662;-				if (yych <= 0xE0) goto yy1663;-				if (yych <= 0xEC) goto yy1664;-				goto yy1668;-			} else {-				if (yych <= 0xF0) {-					if (yych <= 0xEF) goto yy1664;-					goto yy1665;-				} else {-					if (yych <= 0xF3) goto yy1666;-					if (yych <= 0xF4) goto yy1667;-					goto yy1631;-				}-			}-		}-	}-yy1692:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '&') {-			if (yych <= 0x1F) {-				if (yych <= 0x00) goto yy1631;-				if (yych <= 0x08) goto yy1660;-				if (yych <= '\r') goto yy1692;-				goto yy1660;-			} else {-				if (yych <= ' ') goto yy1692;-				if (yych == '"') goto yy1631;-				goto yy1660;-			}-		} else {-			if (yych <= ';') {-				if (yych <= '\'') goto yy1631;-				if (yych == ':') goto yy1690;-				goto yy1660;-			} else {-				if (yych <= '<') goto yy1631;-				if (yych <= '=') goto yy1658;-				if (yych <= '>') goto yy1645;-				goto yy1660;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1690;-				if (yych <= '^') goto yy1660;-				if (yych <= '_') goto yy1690;-				goto yy1631;-			} else {-				if (yych <= 'z') goto yy1690;-				if (yych <= 0x7F) goto yy1660;-				if (yych <= 0xC1) goto yy1631;-				goto yy1662;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1663;-				if (yych == 0xED) goto yy1668;-				goto yy1664;-			} else {-				if (yych <= 0xF0) goto yy1665;-				if (yych <= 0xF3) goto yy1666;-				if (yych <= 0xF4) goto yy1667;-				goto yy1631;-			}-		}-	}-yy1694:-	++p;-	yych = *p;-	if (yych <= '@') {-		if (yych <= '"') {-			if (yych <= '\r') {-				if (yych <= 0x00) goto yy1631;-				if (yych <= 0x08) goto yy1660;-				goto yy1694;-			} else {-				if (yych == ' ') goto yy1694;-				if (yych <= '!') goto yy1660;-				goto yy1671;-			}-		} else {-			if (yych <= ':') {-				if (yych == '\'') goto yy1669;-				if (yych <= '9') goto yy1660;-				goto yy1690;-			} else {-				if (yych <= ';') goto yy1660;-				if (yych <= '=') goto yy1631;-				if (yych <= '>') goto yy1645;-				goto yy1660;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= '`') {-				if (yych <= 'Z') goto yy1690;-				if (yych <= '^') goto yy1660;-				if (yych <= '_') goto yy1690;-				goto yy1631;-			} else {-				if (yych <= 'z') goto yy1690;-				if (yych <= 0x7F) goto yy1660;-				if (yych <= 0xC1) goto yy1631;-				goto yy1662;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy1663;-				if (yych == 0xED) goto yy1668;-				goto yy1664;-			} else {-				if (yych <= 0xF0) goto yy1665;-				if (yych <= 0xF3) goto yy1666;-				if (yych <= 0xF4) goto yy1667;-				goto yy1631;-			}-		}-	}-}--}--// 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[] = {-		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,  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, 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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= ';') {-			if (yych != '\n') goto yy1699;-		} else {-			if (yych <= '<') goto yy1700;-			if (yych <= 0x7F) goto yy1699;-			if (yych >= 0xC2) goto yy1701;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1703;-			if (yych == 0xED) goto yy1708;-			goto yy1704;-		} else {-			if (yych <= 0xF0) goto yy1705;-			if (yych <= 0xF3) goto yy1706;-			if (yych <= 0xF4) goto yy1707;-		}-	}-yy1698:-	{ return 0; }-yy1699:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1698;-		goto yy1713;-	} else {-		if (yych <= 0xC1) goto yy1698;-		if (yych <= 0xF4) goto yy1713;-		goto yy1698;-	}-yy1700:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '/') {-		if (yych == '\n') goto yy1698;-		if (yych <= '.') goto yy1713;-		goto yy1709;-	} else {-		if (yych <= 0x7F) goto yy1713;-		if (yych <= 0xC1) goto yy1698;-		if (yych <= 0xF4) goto yy1713;-		goto yy1698;-	}-yy1701:-	yych = *++p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1699;-yy1702:-	p = marker;-	if (yyaccept == 0) {-		goto yy1698;-	} else {-		goto yy1730;-	}-yy1703:-	yych = *++p;-	if (yych <= 0x9F) goto yy1702;-	if (yych <= 0xBF) goto yy1701;-	goto yy1702;-yy1704:-	yych = *++p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1701;-	goto yy1702;-yy1705:-	yych = *++p;-	if (yych <= 0x8F) goto yy1702;-	if (yych <= 0xBF) goto yy1704;-	goto yy1702;-yy1706:-	yych = *++p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1704;-	goto yy1702;-yy1707:-	yych = *++p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0x8F) goto yy1704;-	goto yy1702;-yy1708:-	yych = *++p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0x9F) goto yy1701;-	goto yy1702;-yy1709:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 's') {-		if (yych <= 'R') {-			if (yych <= '\n') {-				if (yych <= '\t') goto yy1712;-				goto yy1702;-			} else {-				if (yych == 'P') goto yy1721;-				goto yy1712;-			}-		} else {-			if (yych <= 'o') {-				if (yych <= 'S') goto yy1722;-				goto yy1712;-			} else {-				if (yych <= 'p') goto yy1721;-				if (yych <= 'r') goto yy1712;-				goto yy1722;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 0x7F) goto yy1712;-				goto yy1702;-			} else {-				if (yych <= 0xDF) goto yy1714;-				if (yych <= 0xE0) goto yy1715;-				goto yy1716;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1720;-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1710:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xDF) {-		if (yych <= '.') {-			if (yych == '\n') goto yy1702;-		} else {-			if (yych <= '/') goto yy1709;-			if (yych <= 0x7F) goto yy1712;-			if (yych <= 0xC1) goto yy1702;-			goto yy1714;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1715;-			if (yych == 0xED) goto yy1720;-			goto yy1716;-		} else {-			if (yych <= 0xF0) goto yy1717;-			if (yych <= 0xF3) goto yy1718;-			if (yych <= 0xF4) goto yy1719;-			goto yy1702;-		}-	}-yy1712:-	++p;-	yych = *p;-yy1713:-	if (yybm[0+yych] & 128) {-		goto yy1712;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1702;-			if (yych <= '<') goto yy1710;-			goto yy1702;-		} else {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			goto yy1716;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1720;-			if (yych <= 0xEF) goto yy1716;-			goto yy1717;-		} else {-			if (yych <= 0xF3) goto yy1718;-			if (yych <= 0xF4) goto yy1719;-			goto yy1702;-		}-	}-yy1714:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1712;-	goto yy1702;-yy1715:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1702;-	if (yych <= 0xBF) goto yy1714;-	goto yy1702;-yy1716:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1714;-	goto yy1702;-yy1717:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1702;-	if (yych <= 0xBF) goto yy1716;-	goto yy1702;-yy1718:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0xBF) goto yy1716;-	goto yy1702;-yy1719:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0x8F) goto yy1716;-	goto yy1702;-yy1720:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1702;-	if (yych <= 0x9F) goto yy1714;-	goto yy1702;-yy1721:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'R') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'Q') goto yy1712;-			goto yy1733;-		} else {-			if (yych == 'r') goto yy1733;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1722:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 't') {-		if (yych <= 'S') {-			if (yych <= '\n') {-				if (yych <= '\t') goto yy1712;-				goto yy1702;-			} else {-				if (yych == 'C') goto yy1724;-				goto yy1712;-			}-		} else {-			if (yych <= 'b') {-				if (yych >= 'U') goto yy1712;-			} else {-				if (yych <= 'c') goto yy1724;-				if (yych <= 's') goto yy1712;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 0x7F) goto yy1712;-				goto yy1702;-			} else {-				if (yych <= 0xDF) goto yy1714;-				if (yych <= 0xE0) goto yy1715;-				goto yy1716;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1720;-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'Y') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'X') goto yy1712;-			goto yy1731;-		} else {-			if (yych == 'y') goto yy1731;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1724:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'R') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'Q') goto yy1712;-		} else {-			if (yych == 'r') goto yy1725;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1725:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'I') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'H') goto yy1712;-		} else {-			if (yych == 'i') goto yy1726;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1726:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'P') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'O') goto yy1712;-		} else {-			if (yych == 'p') goto yy1727;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1727:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'T') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'S') goto yy1712;-		} else {-			if (yych == 't') goto yy1728;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1728:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych == '\n') goto yy1702;-			goto yy1712;-		} else {-			if (yych <= '>') goto yy1729;-			if (yych <= 0x7F) goto yy1712;-			if (yych <= 0xC1) goto yy1702;-			goto yy1714;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1715;-			if (yych == 0xED) goto yy1720;-			goto yy1716;-		} else {-			if (yych <= 0xF0) goto yy1717;-			if (yych <= 0xF3) goto yy1718;-			if (yych <= 0xF4) goto yy1719;-			goto yy1702;-		}-	}-yy1729:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1712;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1730;-			if (yych <= '<') goto yy1710;-		} else {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			goto yy1716;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1720;-			if (yych <= 0xEF) goto yy1716;-			goto yy1717;-		} else {-			if (yych <= 0xF3) goto yy1718;-			if (yych <= 0xF4) goto yy1719;-		}-	}-yy1730:-	{ return (bufsize_t)(p - start); }-yy1731:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'L') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'K') goto yy1712;-		} else {-			if (yych == 'l') goto yy1732;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1732:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'E') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'D') goto yy1712;-			goto yy1728;-		} else {-			if (yych == 'e') goto yy1728;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-yy1733:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1710;-	}-	if (yych <= 0xC1) {-		if (yych <= 'E') {-			if (yych == '\n') goto yy1702;-			if (yych <= 'D') goto yy1712;-			goto yy1728;-		} else {-			if (yych == 'e') goto yy1728;-			if (yych <= 0x7F) goto yy1712;-			goto yy1702;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1714;-			if (yych <= 0xE0) goto yy1715;-			if (yych <= 0xEC) goto yy1716;-			goto yy1720;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1716;-				goto yy1717;-			} else {-				if (yych <= 0xF3) goto yy1718;-				if (yych <= 0xF4) goto yy1719;-				goto yy1702;-			}-		}-	}-}--}--// 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[] = {-		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,  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, 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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= ',') {-			if (yych != '\n') goto yy1737;-		} else {-			if (yych <= '-') goto yy1738;-			if (yych <= 0x7F) goto yy1737;-			if (yych >= 0xC2) goto yy1739;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1741;-			if (yych == 0xED) goto yy1746;-			goto yy1742;-		} else {-			if (yych <= 0xF0) goto yy1743;-			if (yych <= 0xF3) goto yy1744;-			if (yych <= 0xF4) goto yy1745;-		}-	}-yy1736:-	{ return 0; }-yy1737:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1736;-		goto yy1750;-	} else {-		if (yych <= 0xC1) goto yy1736;-		if (yych <= 0xF4) goto yy1750;-		goto yy1736;-	}-yy1738:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy1747;-	}-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1736;-		goto yy1750;-	} else {-		if (yych <= 0xC1) goto yy1736;-		if (yych <= 0xF4) goto yy1750;-		goto yy1736;-	}-yy1739:-	yych = *++p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1737;-yy1740:-	p = marker;-	if (yyaccept == 0) {-		goto yy1736;-	} else {-		goto yy1760;-	}-yy1741:-	yych = *++p;-	if (yych <= 0x9F) goto yy1740;-	if (yych <= 0xBF) goto yy1739;-	goto yy1740;-yy1742:-	yych = *++p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1739;-	goto yy1740;-yy1743:-	yych = *++p;-	if (yych <= 0x8F) goto yy1740;-	if (yych <= 0xBF) goto yy1742;-	goto yy1740;-yy1744:-	yych = *++p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1742;-	goto yy1740;-yy1745:-	yych = *++p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0x8F) goto yy1742;-	goto yy1740;-yy1746:-	yych = *++p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0x9F) goto yy1739;-	goto yy1740;-yy1747:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1747;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych == '\n') goto yy1740;-		} else {-			if (yych <= '>') goto yy1759;-			if (yych <= 0x7F) goto yy1749;-			if (yych <= 0xC1) goto yy1740;-			goto yy1751;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1752;-			if (yych == 0xED) goto yy1757;-			goto yy1753;-		} else {-			if (yych <= 0xF0) goto yy1754;-			if (yych <= 0xF3) goto yy1755;-			if (yych <= 0xF4) goto yy1756;-			goto yy1740;-		}-	}-yy1749:-	++p;-	yych = *p;-yy1750:-	if (yybm[0+yych] & 128) {-		goto yy1749;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1740;-			if (yych <= '-') goto yy1758;-			goto yy1740;-		} else {-			if (yych <= 0xDF) goto yy1751;-			if (yych <= 0xE0) goto yy1752;-			goto yy1753;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1757;-			if (yych <= 0xEF) goto yy1753;-			goto yy1754;-		} else {-			if (yych <= 0xF3) goto yy1755;-			if (yych <= 0xF4) goto yy1756;-			goto yy1740;-		}-	}-yy1751:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1749;-	goto yy1740;-yy1752:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1740;-	if (yych <= 0xBF) goto yy1751;-	goto yy1740;-yy1753:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1751;-	goto yy1740;-yy1754:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1740;-	if (yych <= 0xBF) goto yy1753;-	goto yy1740;-yy1755:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0xBF) goto yy1753;-	goto yy1740;-yy1756:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0x8F) goto yy1753;-	goto yy1740;-yy1757:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1740;-	if (yych <= 0x9F) goto yy1751;-	goto yy1740;-yy1758:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1749;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1740;-			if (yych <= '-') goto yy1747;-			goto yy1740;-		} else {-			if (yych <= 0xDF) goto yy1751;-			if (yych <= 0xE0) goto yy1752;-			goto yy1753;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1757;-			if (yych <= 0xEF) goto yy1753;-			goto yy1754;-		} else {-			if (yych <= 0xF3) goto yy1755;-			if (yych <= 0xF4) goto yy1756;-			goto yy1740;-		}-	}-yy1759:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1749;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1760;-			if (yych <= '-') goto yy1758;-		} else {-			if (yych <= 0xDF) goto yy1751;-			if (yych <= 0xE0) goto yy1752;-			goto yy1753;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1757;-			if (yych <= 0xEF) goto yy1753;-			goto yy1754;-		} else {-			if (yych <= 0xF3) goto yy1755;-			if (yych <= 0xF4) goto yy1756;-		}-	}-yy1760:-	{ 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[] = {-		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,  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, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= '>') {-			if (yych != '\n') goto yy1764;-		} else {-			if (yych <= '?') goto yy1765;-			if (yych <= 0x7F) goto yy1764;-			if (yych >= 0xC2) goto yy1766;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1768;-			if (yych == 0xED) goto yy1773;-			goto yy1769;-		} else {-			if (yych <= 0xF0) goto yy1770;-			if (yych <= 0xF3) goto yy1771;-			if (yych <= 0xF4) goto yy1772;-		}-	}-yy1763:-	{ return 0; }-yy1764:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1763;-		goto yy1779;-	} else {-		if (yych <= 0xC1) goto yy1763;-		if (yych <= 0xF4) goto yy1779;-		goto yy1763;-	}-yy1765:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= '>') {-		if (yych == '\n') goto yy1763;-		if (yych <= '=') goto yy1779;-		goto yy1774;-	} else {-		if (yych <= 0x7F) goto yy1779;-		if (yych <= 0xC1) goto yy1763;-		if (yych <= 0xF4) goto yy1779;-		goto yy1763;-	}-yy1766:-	yych = *++p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1764;-yy1767:-	p = marker;-	if (yyaccept == 0) {-		goto yy1763;-	} else {-		goto yy1775;-	}-yy1768:-	yych = *++p;-	if (yych <= 0x9F) goto yy1767;-	if (yych <= 0xBF) goto yy1766;-	goto yy1767;-yy1769:-	yych = *++p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1766;-	goto yy1767;-yy1770:-	yych = *++p;-	if (yych <= 0x8F) goto yy1767;-	if (yych <= 0xBF) goto yy1769;-	goto yy1767;-yy1771:-	yych = *++p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1769;-	goto yy1767;-yy1772:-	yych = *++p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0x8F) goto yy1769;-	goto yy1767;-yy1773:-	yych = *++p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0x9F) goto yy1766;-	goto yy1767;-yy1774:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1778;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1775;-			if (yych <= '?') goto yy1776;-		} else {-			if (yych <= 0xDF) goto yy1780;-			if (yych <= 0xE0) goto yy1781;-			goto yy1782;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1786;-			if (yych <= 0xEF) goto yy1782;-			goto yy1783;-		} else {-			if (yych <= 0xF3) goto yy1784;-			if (yych <= 0xF4) goto yy1785;-		}-	}-yy1775:-	{ return (bufsize_t)(p - start); }-yy1776:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1776;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych == '\n') goto yy1767;-		} else {-			if (yych <= '>') goto yy1774;-			if (yych <= 0x7F) goto yy1778;-			if (yych <= 0xC1) goto yy1767;-			goto yy1780;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1781;-			if (yych == 0xED) goto yy1786;-			goto yy1782;-		} else {-			if (yych <= 0xF0) goto yy1783;-			if (yych <= 0xF3) goto yy1784;-			if (yych <= 0xF4) goto yy1785;-			goto yy1767;-		}-	}-yy1778:-	++p;-	yych = *p;-yy1779:-	if (yybm[0+yych] & 128) {-		goto yy1778;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1767;-			if (yych <= '?') goto yy1776;-			goto yy1767;-		} else {-			if (yych <= 0xDF) goto yy1780;-			if (yych <= 0xE0) goto yy1781;-			goto yy1782;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1786;-			if (yych <= 0xEF) goto yy1782;-			goto yy1783;-		} else {-			if (yych <= 0xF3) goto yy1784;-			if (yych <= 0xF4) goto yy1785;-			goto yy1767;-		}-	}-yy1780:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1778;-	goto yy1767;-yy1781:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1767;-	if (yych <= 0xBF) goto yy1780;-	goto yy1767;-yy1782:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1780;-	goto yy1767;-yy1783:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1767;-	if (yych <= 0xBF) goto yy1782;-	goto yy1767;-yy1784:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0xBF) goto yy1782;-	goto yy1767;-yy1785:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0x8F) goto yy1782;-	goto yy1767;-yy1786:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1767;-	if (yych <= 0x9F) goto yy1780;-	goto yy1767;-}--}--// 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[] = {-		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,  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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych != '\n') goto yy1790;-		} else {-			if (yych <= '>') goto yy1791;-			if (yych <= 0x7F) goto yy1790;-			if (yych >= 0xC2) goto yy1793;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1795;-			if (yych == 0xED) goto yy1800;-			goto yy1796;-		} else {-			if (yych <= 0xF0) goto yy1797;-			if (yych <= 0xF3) goto yy1798;-			if (yych <= 0xF4) goto yy1799;-		}-	}-yy1789:-	{ return 0; }-yy1790:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1789;-		goto yy1804;-	} else {-		if (yych <= 0xC1) goto yy1789;-		if (yych <= 0xF4) goto yy1804;-		goto yy1789;-	}-yy1791:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych != '\n') goto yy1804;-	} else {-		if (yych <= 0xC1) goto yy1792;-		if (yych <= 0xF4) goto yy1804;-	}-yy1792:-	{ return (bufsize_t)(p - start); }-yy1793:-	yych = *++p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1790;-yy1794:-	p = marker;-	if (yyaccept == 0) {-		goto yy1789;-	} else {-		goto yy1792;-	}-yy1795:-	yych = *++p;-	if (yych <= 0x9F) goto yy1794;-	if (yych <= 0xBF) goto yy1793;-	goto yy1794;-yy1796:-	yych = *++p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1793;-	goto yy1794;-yy1797:-	yych = *++p;-	if (yych <= 0x8F) goto yy1794;-	if (yych <= 0xBF) goto yy1796;-	goto yy1794;-yy1798:-	yych = *++p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1796;-	goto yy1794;-yy1799:-	yych = *++p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0x8F) goto yy1796;-	goto yy1794;-yy1800:-	yych = *++p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0x9F) goto yy1793;-	goto yy1794;-yy1801:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1803;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1792;-			if (yych <= '>') goto yy1801;-			goto yy1792;-		} else {-			if (yych <= 0xDF) goto yy1805;-			if (yych <= 0xE0) goto yy1806;-			goto yy1807;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1811;-			if (yych <= 0xEF) goto yy1807;-			goto yy1808;-		} else {-			if (yych <= 0xF3) goto yy1809;-			if (yych <= 0xF4) goto yy1810;-			goto yy1792;-		}-	}-yy1803:-	++p;-	yych = *p;-yy1804:-	if (yybm[0+yych] & 128) {-		goto yy1803;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1794;-			if (yych <= '>') goto yy1801;-			goto yy1794;-		} else {-			if (yych <= 0xDF) goto yy1805;-			if (yych <= 0xE0) goto yy1806;-			goto yy1807;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1811;-			if (yych <= 0xEF) goto yy1807;-			goto yy1808;-		} else {-			if (yych <= 0xF3) goto yy1809;-			if (yych <= 0xF4) goto yy1810;-			goto yy1794;-		}-	}-yy1805:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1803;-	goto yy1794;-yy1806:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1794;-	if (yych <= 0xBF) goto yy1805;-	goto yy1794;-yy1807:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1805;-	goto yy1794;-yy1808:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1794;-	if (yych <= 0xBF) goto yy1807;-	goto yy1794;-yy1809:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0xBF) goto yy1807;-	goto yy1794;-yy1810:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0x8F) goto yy1807;-	goto yy1794;-yy1811:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1794;-	if (yych <= 0x9F) goto yy1805;-	goto yy1794;-}--}--// 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[] = {-		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,  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, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= '\\') {-			if (yych != '\n') goto yy1815;-		} else {-			if (yych <= ']') goto yy1816;-			if (yych <= 0x7F) goto yy1815;-			if (yych >= 0xC2) goto yy1817;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1819;-			if (yych == 0xED) goto yy1824;-			goto yy1820;-		} else {-			if (yych <= 0xF0) goto yy1821;-			if (yych <= 0xF3) goto yy1822;-			if (yych <= 0xF4) goto yy1823;-		}-	}-yy1814:-	{ return 0; }-yy1815:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1814;-		goto yy1828;-	} else {-		if (yych <= 0xC1) goto yy1814;-		if (yych <= 0xF4) goto yy1828;-		goto yy1814;-	}-yy1816:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy1825;-	}-	if (yych <= 0x7F) {-		if (yych == '\n') goto yy1814;-		goto yy1828;-	} else {-		if (yych <= 0xC1) goto yy1814;-		if (yych <= 0xF4) goto yy1828;-		goto yy1814;-	}-yy1817:-	yych = *++p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1815;-yy1818:-	p = marker;-	if (yyaccept == 0) {-		goto yy1814;-	} else {-		goto yy1838;-	}-yy1819:-	yych = *++p;-	if (yych <= 0x9F) goto yy1818;-	if (yych <= 0xBF) goto yy1817;-	goto yy1818;-yy1820:-	yych = *++p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1817;-	goto yy1818;-yy1821:-	yych = *++p;-	if (yych <= 0x8F) goto yy1818;-	if (yych <= 0xBF) goto yy1820;-	goto yy1818;-yy1822:-	yych = *++p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1820;-	goto yy1818;-yy1823:-	yych = *++p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0x8F) goto yy1820;-	goto yy1818;-yy1824:-	yych = *++p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0x9F) goto yy1817;-	goto yy1818;-yy1825:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1825;-	}-	if (yych <= 0xDF) {-		if (yych <= '=') {-			if (yych == '\n') goto yy1818;-		} else {-			if (yych <= '>') goto yy1837;-			if (yych <= 0x7F) goto yy1827;-			if (yych <= 0xC1) goto yy1818;-			goto yy1829;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1830;-			if (yych == 0xED) goto yy1835;-			goto yy1831;-		} else {-			if (yych <= 0xF0) goto yy1832;-			if (yych <= 0xF3) goto yy1833;-			if (yych <= 0xF4) goto yy1834;-			goto yy1818;-		}-	}-yy1827:-	++p;-	yych = *p;-yy1828:-	if (yybm[0+yych] & 128) {-		goto yy1827;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1818;-			if (yych <= ']') goto yy1836;-			goto yy1818;-		} else {-			if (yych <= 0xDF) goto yy1829;-			if (yych <= 0xE0) goto yy1830;-			goto yy1831;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1835;-			if (yych <= 0xEF) goto yy1831;-			goto yy1832;-		} else {-			if (yych <= 0xF3) goto yy1833;-			if (yych <= 0xF4) goto yy1834;-			goto yy1818;-		}-	}-yy1829:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1827;-	goto yy1818;-yy1830:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1818;-	if (yych <= 0xBF) goto yy1829;-	goto yy1818;-yy1831:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1829;-	goto yy1818;-yy1832:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1818;-	if (yych <= 0xBF) goto yy1831;-	goto yy1818;-yy1833:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0xBF) goto yy1831;-	goto yy1818;-yy1834:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0x8F) goto yy1831;-	goto yy1818;-yy1835:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1818;-	if (yych <= 0x9F) goto yy1829;-	goto yy1818;-yy1836:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1827;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1818;-			if (yych <= ']') goto yy1825;-			goto yy1818;-		} else {-			if (yych <= 0xDF) goto yy1829;-			if (yych <= 0xE0) goto yy1830;-			goto yy1831;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1835;-			if (yych <= 0xEF) goto yy1831;-			goto yy1832;-		} else {-			if (yych <= 0xF3) goto yy1833;-			if (yych <= 0xF4) goto yy1834;-			goto yy1818;-		}-	}-yy1837:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1827;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= '\n') goto yy1838;-			if (yych <= ']') goto yy1836;-		} else {-			if (yych <= 0xDF) goto yy1829;-			if (yych <= 0xE0) goto yy1830;-			goto yy1831;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1835;-			if (yych <= 0xEF) goto yy1831;-			goto yy1832;-		} else {-			if (yych <= 0xF3) goto yy1833;-			if (yych <= 0xF4) goto yy1834;-		}-	}-yy1838:-	{ return (bufsize_t)(p - start); }-}--}--// Try to match a URL in a link or reference, return number of chars matched.-// This may optionally be contained in <..>; otherwise-// whitespace and unbalanced right parentheses aren't allowed.-// Newlines aren't ever allowed.-bufsize_t _scan_link_url(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,   8, 128, 128,   8, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		128, 128, 128, 128, 128, 128, 128, 128, -		136, 224, 224, 224, 224, 224, 224, 224, -		128, 128, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224,  32, 224,  32, 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, 224, 224, 224,  16, 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, 224, -		224, 224, 224, 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 = *(marker = p);-	if (yych <= '[') {-		if (yych <= ' ') {-			if (yych <= '\f') {-				if (yych == '\n') goto yy1842;-				goto yy1858;-			} else {-				if (yych <= '\r') goto yy1844;-				if (yych <= 0x1F) goto yy1858;-				goto yy1844;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1846;-				if (yych <= '(') goto yy1857;-				goto yy1858;-			} else {-				if (yych == '<') goto yy1845;-				goto yy1846;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1855;-				if (yych <= 0x7F) goto yy1846;-			} else {-				if (yych <= 0xDF) goto yy1847;-				if (yych <= 0xE0) goto yy1849;-				goto yy1850;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1854;-				if (yych <= 0xEF) goto yy1850;-				goto yy1851;-			} else {-				if (yych <= 0xF3) goto yy1852;-				if (yych <= 0xF4) goto yy1853;-			}-		}-	}-yy1841:-	{ return (bufsize_t)(p - start); }-yy1842:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-yy1843:-	if (yybm[0+yych] & 8) {-		goto yy1842;-	}-	if (yych <= 0x7F) {-		if (yych <= ')') {-			if (yych <= 0x1F) goto yy1841;-			if (yych <= '\'') goto yy1870;-			if (yych <= '(') goto yy1861;-			goto yy1841;-		} else {-			if (yych <= '<') {-				if (yych <= ';') goto yy1870;-				goto yy1905;-			} else {-				if (yych == '\\') goto yy1879;-				goto yy1870;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) {-				if (yych <= 0xC1) goto yy1841;-				goto yy1872;-			} else {-				if (yych <= 0xE0) goto yy1873;-				if (yych <= 0xEC) goto yy1874;-				goto yy1878;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1874;-				goto yy1875;-			} else {-				if (yych <= 0xF3) goto yy1876;-				if (yych <= 0xF4) goto yy1877;-				goto yy1841;-			}-		}-	}-yy1844:-	yyaccept = 0;-	yych = *(marker = ++p);-	goto yy1843;-yy1845:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yybm[0+yych] & 64) {-		goto yy1905;-	}-	if (yych <= '>') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1841;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1841;-				if (yych <= '\f') goto yy1919;-				goto yy1841;-			}-		} else {-			if (yych <= '(') {-				if (yych <= ' ') goto yy1919;-				goto yy1917;-			} else {-				if (yych <= ')') goto yy1919;-				if (yych <= '<') goto yy1870;-				goto yy1907;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1916;-				goto yy1841;-			} else {-				if (yych <= 0xDF) goto yy1909;-				if (yych <= 0xE0) goto yy1910;-				goto yy1911;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1915;-				if (yych <= 0xEF) goto yy1911;-				goto yy1912;-			} else {-				if (yych <= 0xF3) goto yy1913;-				if (yych <= 0xF4) goto yy1914;-				goto yy1841;-			}-		}-	}-yy1846:-	yyaccept = 0;-	yych = *(marker = ++p);-	goto yy1871;-yy1847:-	yych = *++p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1846;-yy1848:-	p = marker;-	if (yyaccept <= 1) {-		if (yyaccept == 0) {-			goto yy1841;-		} else {-			goto yy1856;-		}-	} else {-		goto yy1908;-	}-yy1849:-	yych = *++p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1847;-	goto yy1848;-yy1850:-	yych = *++p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1847;-	goto yy1848;-yy1851:-	yych = *++p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1850;-	goto yy1848;-yy1852:-	yych = *++p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1850;-	goto yy1848;-yy1853:-	yych = *++p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1850;-	goto yy1848;-yy1854:-	yych = *++p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1847;-	goto yy1848;-yy1855:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x7F) goto yy1870;-		} else {-			if (yych <= 0xDF) goto yy1880;-			if (yych <= 0xE0) goto yy1881;-			goto yy1882;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1886;-			if (yych <= 0xEF) goto yy1882;-			goto yy1883;-		} else {-			if (yych <= 0xF3) goto yy1884;-			if (yych <= 0xF4) goto yy1885;-		}-	}-yy1856:-	{ return 0; }-yy1857:-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yych <= '(') {-		if (yych <= ' ') goto yy1856;-		if (yych <= '\'') goto yy1862;-		goto yy1856;-	} else {-		if (yych <= 0x7F) goto yy1862;-		if (yych <= 0xC1) goto yy1856;-		if (yych <= 0xF4) goto yy1862;-		goto yy1856;-	}-yy1858:-	yych = *++p;-	goto yy1856;-yy1859:-	++p;-	yych = *p;-	if (yybm[0+yych] & 16) {-		goto yy1859;-	}-	if (yych <= 0xE0) {-		if (yych <= ')') {-			if (yych <= ' ') goto yy1848;-			if (yych >= ')') goto yy1887;-		} else {-			if (yych <= 0x7F) goto yy1861;-			if (yych <= 0xC1) goto yy1848;-			if (yych <= 0xDF) goto yy1863;-			goto yy1864;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1869;-			goto yy1865;-		} else {-			if (yych <= 0xF0) goto yy1866;-			if (yych <= 0xF3) goto yy1867;-			if (yych <= 0xF4) goto yy1868;-			goto yy1848;-		}-	}-yy1861:-	++p;-	yych = *p;-yy1862:-	if (yybm[0+yych] & 32) {-		goto yy1861;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= '(') goto yy1848;-			if (yych <= ')') goto yy1870;-			goto yy1859;-		} else {-			if (yych <= 0xC1) goto yy1848;-			if (yych >= 0xE0) goto yy1864;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1869;-			goto yy1865;-		} else {-			if (yych <= 0xF0) goto yy1866;-			if (yych <= 0xF3) goto yy1867;-			if (yych <= 0xF4) goto yy1868;-			goto yy1848;-		}-	}-yy1863:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1861;-	goto yy1848;-yy1864:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1863;-	goto yy1848;-yy1865:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1863;-	goto yy1848;-yy1866:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1865;-	goto yy1848;-yy1867:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1865;-	goto yy1848;-yy1868:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1865;-	goto yy1848;-yy1869:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1863;-	goto yy1848;-yy1870:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-yy1871:-	if (yych <= 0xC1) {-		if (yych <= ')') {-			if (yych <= ' ') goto yy1841;-			if (yych <= '\'') goto yy1870;-			if (yych <= '(') goto yy1861;-			goto yy1841;-		} else {-			if (yych == '\\') goto yy1879;-			if (yych <= 0x7F) goto yy1870;-			goto yy1841;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1872;-			if (yych <= 0xE0) goto yy1873;-			if (yych <= 0xEC) goto yy1874;-			goto yy1878;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1874;-				goto yy1875;-			} else {-				if (yych <= 0xF3) goto yy1876;-				if (yych <= 0xF4) goto yy1877;-				goto yy1841;-			}-		}-	}-yy1872:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1870;-	goto yy1848;-yy1873:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1872;-	goto yy1848;-yy1874:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1872;-	goto yy1848;-yy1875:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1874;-	goto yy1848;-yy1876:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1874;-	goto yy1848;-yy1877:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1874;-	goto yy1848;-yy1878:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1872;-	goto yy1848;-yy1879:-	++p;-	yych = *p;-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x7F) goto yy1870;-			goto yy1848;-		} else {-			if (yych <= 0xDF) goto yy1880;-			if (yych <= 0xE0) goto yy1881;-			goto yy1882;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy1886;-			if (yych <= 0xEF) goto yy1882;-			goto yy1883;-		} else {-			if (yych <= 0xF3) goto yy1884;-			if (yych <= 0xF4) goto yy1885;-			goto yy1848;-		}-	}-yy1880:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1870;-	goto yy1848;-yy1881:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1880;-	goto yy1848;-yy1882:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1880;-	goto yy1848;-yy1883:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1882;-	goto yy1848;-yy1884:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1882;-	goto yy1848;-yy1885:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1882;-	goto yy1848;-yy1886:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1880;-	goto yy1848;-yy1887:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-yy1888:-	if (yych <= 0xC1) {-		if (yych <= ')') {-			if (yych <= ' ') goto yy1841;-			if (yych <= '\'') goto yy1887;-			if (yych <= '(') goto yy1861;-			goto yy1870;-		} else {-			if (yych == '\\') goto yy1896;-			if (yych <= 0x7F) goto yy1887;-			goto yy1841;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1889;-			if (yych <= 0xE0) goto yy1890;-			if (yych <= 0xEC) goto yy1891;-			goto yy1895;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1891;-				goto yy1892;-			} else {-				if (yych <= 0xF3) goto yy1893;-				if (yych <= 0xF4) goto yy1894;-				goto yy1841;-			}-		}-	}-yy1889:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1887;-	goto yy1848;-yy1890:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1889;-	goto yy1848;-yy1891:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1889;-	goto yy1848;-yy1892:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1891;-	goto yy1848;-yy1893:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1891;-	goto yy1848;-yy1894:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1891;-	goto yy1848;-yy1895:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1889;-	goto yy1848;-yy1896:-	++p;-	yych = *p;-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= ' ') goto yy1870;-			if (yych <= '[') goto yy1887;-		} else {-			if (yych <= 0x7F) goto yy1887;-			if (yych <= 0xC1) goto yy1848;-			if (yych <= 0xDF) goto yy1898;-			goto yy1899;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1904;-			goto yy1900;-		} else {-			if (yych <= 0xF0) goto yy1901;-			if (yych <= 0xF3) goto yy1902;-			if (yych <= 0xF4) goto yy1903;-			goto yy1848;-		}-	}-	yyaccept = 0;-	marker = ++p;-	yych = *p;-	if (yych <= 0xDF) {-		if (yych <= '[') {-			if (yych <= ' ') goto yy1841;-			if (yych == '(') goto yy1861;-			goto yy1887;-		} else {-			if (yych <= '\\') goto yy1896;-			if (yych <= 0x7F) goto yy1887;-			if (yych <= 0xC1) goto yy1841;-			goto yy1889;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy1890;-			if (yych == 0xED) goto yy1895;-			goto yy1891;-		} else {-			if (yych <= 0xF0) goto yy1892;-			if (yych <= 0xF3) goto yy1893;-			if (yych <= 0xF4) goto yy1894;-			goto yy1841;-		}-	}-yy1898:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1887;-	goto yy1848;-yy1899:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1898;-	goto yy1848;-yy1900:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1898;-	goto yy1848;-yy1901:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1900;-	goto yy1848;-yy1902:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1900;-	goto yy1848;-yy1903:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1900;-	goto yy1848;-yy1904:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1898;-	goto yy1848;-yy1905:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1905;-	}-	if (yych <= '>') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1841;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1841;-				if (yych <= '\f') goto yy1919;-				goto yy1841;-			}-		} else {-			if (yych <= '(') {-				if (yych <= ' ') goto yy1919;-				goto yy1917;-			} else {-				if (yych <= ')') goto yy1919;-				if (yych <= '<') goto yy1870;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1916;-				goto yy1841;-			} else {-				if (yych <= 0xDF) goto yy1909;-				if (yych <= 0xE0) goto yy1910;-				goto yy1911;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1915;-				if (yych <= 0xEF) goto yy1911;-				goto yy1912;-			} else {-				if (yych <= 0xF3) goto yy1913;-				if (yych <= 0xF4) goto yy1914;-				goto yy1841;-			}-		}-	}-yy1907:-	yyaccept = 2;-	yych = *(marker = ++p);-	if (yych <= ')') {-		if (yych <= ' ') goto yy1908;-		if (yych <= '(') goto yy1871;-	} else {-		if (yych <= 0x7F) goto yy1871;-		if (yych <= 0xC1) goto yy1908;-		if (yych <= 0xF4) goto yy1871;-	}-yy1908:-	{ return (bufsize_t)(p - start); }-yy1909:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1905;-	goto yy1848;-yy1910:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1909;-	goto yy1848;-yy1911:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1909;-	goto yy1848;-yy1912:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1911;-	goto yy1848;-yy1913:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1911;-	goto yy1848;-yy1914:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1911;-	goto yy1848;-yy1915:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1909;-	goto yy1848;-yy1916:-	++p;-	yych = *p;-	if (yych <= 0x7F) {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1870;-				goto yy1905;-			} else {-				if (yych <= '\n') goto yy1870;-				if (yych <= '\f') goto yy1905;-				goto yy1870;-			}-		} else {-			if (yych <= '>') {-				if (yych <= '=') goto yy1905;-				goto yy1963;-			} else {-				if (yych == '\\') goto yy1964;-				goto yy1905;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) {-				if (yych <= 0xC1) goto yy1848;-				goto yy1965;-			} else {-				if (yych <= 0xE0) goto yy1966;-				if (yych <= 0xEC) goto yy1967;-				goto yy1971;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1967;-				goto yy1968;-			} else {-				if (yych <= 0xF3) goto yy1969;-				if (yych <= 0xF4) goto yy1970;-				goto yy1848;-			}-		}-	}-yy1917:-	++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= '\n') {-				if (yych <= 0x00) goto yy1848;-				if (yych >= '\n') goto yy1848;-			} else {-				if (yych == '\r') goto yy1848;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1917;-				if (yych >= ')') goto yy1905;-			} else {-				if (yych == '<') goto yy1861;-				if (yych <= '=') goto yy1917;-				goto yy1932;-			}-		}-	} else {-		if (yych <= 0xE0) {-			if (yych <= 0x7F) {-				if (yych == '\\') goto yy1933;-				goto yy1917;-			} else {-				if (yych <= 0xC1) goto yy1848;-				if (yych <= 0xDF) goto yy1935;-				goto yy1936;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych == 0xED) goto yy1941;-				goto yy1937;-			} else {-				if (yych <= 0xF0) goto yy1938;-				if (yych <= 0xF3) goto yy1939;-				if (yych <= 0xF4) goto yy1940;-				goto yy1848;-			}-		}-	}-yy1919:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1919;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= '<') goto yy1848;-			if (yych >= '?') goto yy1922;-		} else {-			if (yych <= 0xC1) goto yy1848;-			if (yych <= 0xDF) goto yy1924;-			goto yy1925;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1930;-			goto yy1926;-		} else {-			if (yych <= 0xF0) goto yy1927;-			if (yych <= 0xF3) goto yy1928;-			if (yych <= 0xF4) goto yy1929;-			goto yy1848;-		}-	}-yy1921:-	yych = *++p;-	goto yy1908;-yy1922:-	++p;-	yych = *p;-	if (yych <= 0x7F) {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1848;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1848;-				if (yych <= '\f') goto yy1919;-				goto yy1848;-			}-		} else {-			if (yych <= '>') {-				if (yych <= '=') goto yy1919;-				goto yy1931;-			} else {-				if (yych == '\\') goto yy1922;-				goto yy1919;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) {-				if (yych <= 0xC1) goto yy1848;-			} else {-				if (yych <= 0xE0) goto yy1925;-				if (yych <= 0xEC) goto yy1926;-				goto yy1930;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1926;-				goto yy1927;-			} else {-				if (yych <= 0xF3) goto yy1928;-				if (yych <= 0xF4) goto yy1929;-				goto yy1848;-			}-		}-	}-yy1924:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1919;-	goto yy1848;-yy1925:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1924;-	goto yy1848;-yy1926:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1924;-	goto yy1848;-yy1927:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1926;-	goto yy1848;-yy1928:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1926;-	goto yy1848;-yy1929:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1926;-	goto yy1848;-yy1930:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1924;-	goto yy1848;-yy1931:-	yyaccept = 2;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy1919;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= '<') goto yy1908;-			if (yych <= '>') goto yy1921;-			goto yy1922;-		} else {-			if (yych <= 0xC1) goto yy1908;-			if (yych <= 0xDF) goto yy1924;-			goto yy1925;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1930;-			goto yy1926;-		} else {-			if (yych <= 0xF0) goto yy1927;-			if (yych <= 0xF3) goto yy1928;-			if (yych <= 0xF4) goto yy1929;-			goto yy1908;-		}-	}-yy1932:-	yyaccept = 2;-	yych = *(marker = ++p);-	if (yych <= '(') {-		if (yych <= ' ') goto yy1908;-		if (yych <= '\'') goto yy1862;-		goto yy1908;-	} else {-		if (yych <= 0x7F) goto yy1862;-		if (yych <= 0xC1) goto yy1908;-		if (yych <= 0xF4) goto yy1862;-		goto yy1908;-	}-yy1933:-	++p;-	yych = *p;-	if (yych <= '[') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1848;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1848;-				if (yych <= '\f') goto yy1919;-				goto yy1848;-			}-		} else {-			if (yych <= ')') {-				if (yych <= ' ') goto yy1919;-				if (yych <= '(') goto yy1917;-				goto yy1942;-			} else {-				if (yych == '>') goto yy1944;-				goto yy1917;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1933;-				if (yych <= 0x7F) goto yy1917;-				goto yy1848;-			} else {-				if (yych <= 0xDF) goto yy1935;-				if (yych <= 0xE0) goto yy1936;-				goto yy1937;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1941;-				if (yych <= 0xEF) goto yy1937;-				goto yy1938;-			} else {-				if (yych <= 0xF3) goto yy1939;-				if (yych <= 0xF4) goto yy1940;-				goto yy1848;-			}-		}-	}-yy1935:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1917;-	goto yy1848;-yy1936:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1935;-	goto yy1848;-yy1937:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1935;-	goto yy1848;-yy1938:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1937;-	goto yy1848;-yy1939:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1937;-	goto yy1848;-yy1940:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1937;-	goto yy1848;-yy1941:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1935;-	goto yy1848;-yy1942:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= '\n') {-				if (yych <= 0x00) goto yy1841;-				if (yych <= '\t') goto yy1919;-				goto yy1841;-			} else {-				if (yych == '\r') goto yy1841;-				goto yy1919;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1942;-				if (yych <= '(') goto yy1917;-				goto yy1905;-			} else {-				if (yych == '<') goto yy1887;-				if (yych <= '=') goto yy1942;-				goto yy1945;-			}-		}-	} else {-		if (yych <= 0xE0) {-			if (yych <= 0x7F) {-				if (yych == '\\') goto yy1946;-				goto yy1942;-			} else {-				if (yych <= 0xC1) goto yy1841;-				if (yych <= 0xDF) goto yy1947;-				goto yy1948;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych == 0xED) goto yy1953;-				goto yy1949;-			} else {-				if (yych <= 0xF0) goto yy1950;-				if (yych <= 0xF3) goto yy1951;-				if (yych <= 0xF4) goto yy1952;-				goto yy1841;-			}-		}-	}-yy1944:-	yyaccept = 2;-	marker = ++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= '\n') {-				if (yych <= 0x00) goto yy1908;-				if (yych <= '\t') goto yy1919;-				goto yy1908;-			} else {-				if (yych == '\r') goto yy1908;-				goto yy1919;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1917;-				if (yych <= '(') goto yy1919;-				goto yy1905;-			} else {-				if (yych == '<') goto yy1861;-				if (yych <= '=') goto yy1917;-				goto yy1932;-			}-		}-	} else {-		if (yych <= 0xE0) {-			if (yych <= 0x7F) {-				if (yych == '\\') goto yy1933;-				goto yy1917;-			} else {-				if (yych <= 0xC1) goto yy1908;-				if (yych <= 0xDF) goto yy1935;-				goto yy1936;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych == 0xED) goto yy1941;-				goto yy1937;-			} else {-				if (yych <= 0xF0) goto yy1938;-				if (yych <= 0xF3) goto yy1939;-				if (yych <= 0xF4) goto yy1940;-				goto yy1908;-			}-		}-	}-yy1945:-	yyaccept = 2;-	yych = *(marker = ++p);-	if (yych <= ' ') goto yy1908;-	if (yych <= 0x7F) goto yy1888;-	if (yych <= 0xC1) goto yy1908;-	if (yych <= 0xF4) goto yy1888;-	goto yy1908;-yy1946:-	++p;-	yych = *p;-	if (yych <= '\\') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1870;-				goto yy1905;-			} else {-				if (yych <= '\n') goto yy1870;-				if (yych <= '\f') goto yy1905;-				goto yy1870;-			}-		} else {-			if (yych <= '=') {-				if (yych <= ' ') goto yy1905;-				goto yy1942;-			} else {-				if (yych <= '>') goto yy1954;-				if (yych <= '[') goto yy1942;-				goto yy1955;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= 0x7F) goto yy1942;-				goto yy1848;-			} else {-				if (yych <= 0xDF) goto yy1956;-				if (yych <= 0xE0) goto yy1957;-				goto yy1958;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1962;-				if (yych <= 0xEF) goto yy1958;-				goto yy1959;-			} else {-				if (yych <= 0xF3) goto yy1960;-				if (yych <= 0xF4) goto yy1961;-				goto yy1848;-			}-		}-	}-yy1947:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1942;-	goto yy1848;-yy1948:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1947;-	goto yy1848;-yy1949:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1947;-	goto yy1848;-yy1950:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1949;-	goto yy1848;-yy1951:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1949;-	goto yy1848;-yy1952:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1949;-	goto yy1848;-yy1953:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1947;-	goto yy1848;-yy1954:-	yyaccept = 2;-	marker = ++p;-	yych = *p;-	if (yych <= '>') {-		if (yych <= ' ') {-			if (yych <= '\n') {-				if (yych <= 0x00) goto yy1908;-				if (yych <= '\t') goto yy1919;-				goto yy1908;-			} else {-				if (yych == '\r') goto yy1908;-				goto yy1919;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1942;-				if (yych <= '(') goto yy1917;-				goto yy1905;-			} else {-				if (yych == '<') goto yy1887;-				if (yych <= '=') goto yy1942;-				goto yy1945;-			}-		}-	} else {-		if (yych <= 0xE0) {-			if (yych <= 0x7F) {-				if (yych == '\\') goto yy1946;-				goto yy1942;-			} else {-				if (yych <= 0xC1) goto yy1908;-				if (yych <= 0xDF) goto yy1947;-				goto yy1948;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych == 0xED) goto yy1953;-				goto yy1949;-			} else {-				if (yych <= 0xF0) goto yy1950;-				if (yych <= 0xF3) goto yy1951;-				if (yych <= 0xF4) goto yy1952;-				goto yy1908;-			}-		}-	}-yy1955:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-	if (yych <= '[') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1841;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1841;-				if (yych <= '\f') goto yy1919;-				goto yy1841;-			}-		} else {-			if (yych <= '(') {-				if (yych <= ' ') goto yy1919;-				if (yych <= '\'') goto yy1942;-				goto yy1917;-			} else {-				if (yych == '>') goto yy1954;-				goto yy1942;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1946;-				if (yych <= 0x7F) goto yy1942;-				goto yy1841;-			} else {-				if (yych <= 0xDF) goto yy1947;-				if (yych <= 0xE0) goto yy1948;-				goto yy1949;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1953;-				if (yych <= 0xEF) goto yy1949;-				goto yy1950;-			} else {-				if (yych <= 0xF3) goto yy1951;-				if (yych <= 0xF4) goto yy1952;-				goto yy1841;-			}-		}-	}-yy1956:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1942;-	goto yy1848;-yy1957:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1956;-	goto yy1848;-yy1958:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1956;-	goto yy1848;-yy1959:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1958;-	goto yy1848;-yy1960:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1958;-	goto yy1848;-yy1961:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1958;-	goto yy1848;-yy1962:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1956;-	goto yy1848;-yy1963:-	yyaccept = 2;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy1905;-	}-	if (yych <= '>') {-		if (yych <= '\r') {-			if (yych <= '\t') {-				if (yych <= 0x00) goto yy1908;-				goto yy1919;-			} else {-				if (yych <= '\n') goto yy1908;-				if (yych <= '\f') goto yy1919;-				goto yy1908;-			}-		} else {-			if (yych <= '(') {-				if (yych <= ' ') goto yy1919;-				goto yy1917;-			} else {-				if (yych <= ')') goto yy1919;-				if (yych <= '<') goto yy1870;-				goto yy1907;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1916;-				goto yy1908;-			} else {-				if (yych <= 0xDF) goto yy1909;-				if (yych <= 0xE0) goto yy1910;-				goto yy1911;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1915;-				if (yych <= 0xEF) goto yy1911;-				goto yy1912;-			} else {-				if (yych <= 0xF3) goto yy1913;-				if (yych <= 0xF4) goto yy1914;-				goto yy1908;-			}-		}-	}-yy1964:-	yyaccept = 0;-	marker = ++p;-	yych = *p;-	if (yych <= '[') {-		if (yych <= ' ') {-			if (yych <= '\n') {-				if (yych <= 0x00) goto yy1841;-				if (yych <= '\t') goto yy1919;-				goto yy1841;-			} else {-				if (yych == '\r') goto yy1841;-				goto yy1919;-			}-		} else {-			if (yych <= ')') {-				if (yych <= '\'') goto yy1905;-				if (yych <= '(') goto yy1917;-				goto yy1919;-			} else {-				if (yych == '>') goto yy1963;-				goto yy1905;-			}-		}-	} else {-		if (yych <= 0xEC) {-			if (yych <= 0xC1) {-				if (yych <= '\\') goto yy1916;-				if (yych <= 0x7F) goto yy1905;-				goto yy1841;-			} else {-				if (yych <= 0xDF) goto yy1909;-				if (yych <= 0xE0) goto yy1910;-				goto yy1911;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xED) goto yy1915;-				if (yych <= 0xEF) goto yy1911;-				goto yy1912;-			} else {-				if (yych <= 0xF3) goto yy1913;-				if (yych <= 0xF4) goto yy1914;-				goto yy1841;-			}-		}-	}-yy1965:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1905;-	goto yy1848;-yy1966:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1848;-	if (yych <= 0xBF) goto yy1965;-	goto yy1848;-yy1967:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1965;-	goto yy1848;-yy1968:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1848;-	if (yych <= 0xBF) goto yy1967;-	goto yy1848;-yy1969:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0xBF) goto yy1967;-	goto yy1848;-yy1970:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x8F) goto yy1967;-	goto yy1848;-yy1971:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1848;-	if (yych <= 0x9F) goto yy1965;-	goto yy1848;-}--}--// 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, 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, 224, 224, 224, 224, 224, -		224, 224,  96, 224, 224, 224, 224, 160, -		224, 192, 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, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224, 224, 224, 224, 224, -		224, 224, 224, 224,  16, 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, 224, -		224, 224, 224, 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 = *(marker = p);-	if (yych <= 0xC1) {-		if (yych <= '"') {-			if (yych == '\n') goto yy1974;-			if (yych <= '!') goto yy1978;-			goto yy1975;-		} else {-			if (yych <= '\'') {-				if (yych <= '&') goto yy1978;-				goto yy1976;-			} else {-				if (yych <= '(') goto yy1977;-				if (yych <= 0x7F) goto yy1978;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy1979;-			if (yych <= 0xE0) goto yy1981;-			if (yych <= 0xEC) goto yy1982;-			goto yy1986;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy1982;-				goto yy1983;-			} else {-				if (yych <= 0xF3) goto yy1984;-				if (yych <= 0xF4) goto yy1985;-			}-		}-	}-yy1974:-	{ return 0; }-yy1975:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy1974;-	if (yych <= 0x7F) goto yy2018;-	if (yych <= 0xC1) goto yy1974;-	if (yych <= 0xF4) goto yy2018;-	goto yy1974;-yy1976:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy1974;-	if (yych <= 0x7F) goto yy2004;-	if (yych <= 0xC1) goto yy1974;-	if (yych <= 0xF4) goto yy2004;-	goto yy1974;-yy1977:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych <= 0x00) goto yy1974;-	if (yych <= 0x7F) goto yy1990;-	if (yych <= 0xC1) goto yy1974;-	if (yych <= 0xF4) goto yy1990;-	goto yy1974;-yy1978:-	yych = *++p;-	goto yy1974;-yy1979:-	yych = *++p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1978;-yy1980:-	p = marker;-	if (yyaccept <= 1) {-		if (yyaccept == 0) {-			goto yy1974;-		} else {-			goto yy1999;-		}-	} else {-		if (yyaccept == 2) {-			goto yy2013;-		} else {-			goto yy2027;-		}-	}-yy1981:-	yych = *++p;-	if (yych <= 0x9F) goto yy1980;-	if (yych <= 0xBF) goto yy1979;-	goto yy1980;-yy1982:-	yych = *++p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1979;-	goto yy1980;-yy1983:-	yych = *++p;-	if (yych <= 0x8F) goto yy1980;-	if (yych <= 0xBF) goto yy1982;-	goto yy1980;-yy1984:-	yych = *++p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1982;-	goto yy1980;-yy1985:-	yych = *++p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x8F) goto yy1982;-	goto yy1980;-yy1986:-	yych = *++p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x9F) goto yy1979;-	goto yy1980;-yy1987:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1989;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= ')') goto yy2000;-			goto yy1987;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych <= 0xDF) goto yy1991;-			goto yy1992;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1997;-			goto yy1993;-		} else {-			if (yych <= 0xF0) goto yy1994;-			if (yych <= 0xF3) goto yy1995;-			if (yych <= 0xF4) goto yy1996;-			goto yy1980;-		}-	}-yy1989:-	++p;-	yych = *p;-yy1990:-	if (yybm[0+yych] & 32) {-		goto yy1989;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= ')') goto yy1998;-			goto yy1987;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych >= 0xE0) goto yy1992;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1997;-			goto yy1993;-		} else {-			if (yych <= 0xF0) goto yy1994;-			if (yych <= 0xF3) goto yy1995;-			if (yych <= 0xF4) goto yy1996;-			goto yy1980;-		}-	}-yy1991:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1989;-	goto yy1980;-yy1992:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1980;-	if (yych <= 0xBF) goto yy1991;-	goto yy1980;-yy1993:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1991;-	goto yy1980;-yy1994:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1980;-	if (yych <= 0xBF) goto yy1993;-	goto yy1980;-yy1995:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy1993;-	goto yy1980;-yy1996:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x8F) goto yy1993;-	goto yy1980;-yy1997:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x9F) goto yy1991;-	goto yy1980;-yy1998:-	++p;-yy1999:-	{ return (bufsize_t)(p - start); }-yy2000:-	yyaccept = 1;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy1989;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1999;-			if (yych <= ')') goto yy1998;-			goto yy1987;-		} else {-			if (yych <= 0xC1) goto yy1999;-			if (yych <= 0xDF) goto yy1991;-			goto yy1992;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy1997;-			goto yy1993;-		} else {-			if (yych <= 0xF0) goto yy1994;-			if (yych <= 0xF3) goto yy1995;-			if (yych <= 0xF4) goto yy1996;-			goto yy1999;-		}-	}-yy2001:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy2003;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= '\'') goto yy2014;-			goto yy2001;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych <= 0xDF) goto yy2005;-			goto yy2006;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2011;-			goto yy2007;-		} else {-			if (yych <= 0xF0) goto yy2008;-			if (yych <= 0xF3) goto yy2009;-			if (yych <= 0xF4) goto yy2010;-			goto yy1980;-		}-	}-yy2003:-	++p;-	yych = *p;-yy2004:-	if (yybm[0+yych] & 64) {-		goto yy2003;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= '\'') goto yy2012;-			goto yy2001;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych >= 0xE0) goto yy2006;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2011;-			goto yy2007;-		} else {-			if (yych <= 0xF0) goto yy2008;-			if (yych <= 0xF3) goto yy2009;-			if (yych <= 0xF4) goto yy2010;-			goto yy1980;-		}-	}-yy2005:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2003;-	goto yy1980;-yy2006:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1980;-	if (yych <= 0xBF) goto yy2005;-	goto yy1980;-yy2007:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2005;-	goto yy1980;-yy2008:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1980;-	if (yych <= 0xBF) goto yy2007;-	goto yy1980;-yy2009:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2007;-	goto yy1980;-yy2010:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x8F) goto yy2007;-	goto yy1980;-yy2011:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x9F) goto yy2005;-	goto yy1980;-yy2012:-	++p;-yy2013:-	{ return (bufsize_t)(p - start); }-yy2014:-	yyaccept = 2;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy2003;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy2013;-			if (yych <= '\'') goto yy2012;-			goto yy2001;-		} else {-			if (yych <= 0xC1) goto yy2013;-			if (yych <= 0xDF) goto yy2005;-			goto yy2006;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2011;-			goto yy2007;-		} else {-			if (yych <= 0xF0) goto yy2008;-			if (yych <= 0xF3) goto yy2009;-			if (yych <= 0xF4) goto yy2010;-			goto yy2013;-		}-	}-yy2015:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2017;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= '"') goto yy2028;-			goto yy2015;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych <= 0xDF) goto yy2019;-			goto yy2020;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2025;-			goto yy2021;-		} else {-			if (yych <= 0xF0) goto yy2022;-			if (yych <= 0xF3) goto yy2023;-			if (yych <= 0xF4) goto yy2024;-			goto yy1980;-		}-	}-yy2017:-	++p;-	yych = *p;-yy2018:-	if (yybm[0+yych] & 128) {-		goto yy2017;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy1980;-			if (yych <= '"') goto yy2026;-			goto yy2015;-		} else {-			if (yych <= 0xC1) goto yy1980;-			if (yych >= 0xE0) goto yy2020;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2025;-			goto yy2021;-		} else {-			if (yych <= 0xF0) goto yy2022;-			if (yych <= 0xF3) goto yy2023;-			if (yych <= 0xF4) goto yy2024;-			goto yy1980;-		}-	}-yy2019:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2017;-	goto yy1980;-yy2020:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy1980;-	if (yych <= 0xBF) goto yy2019;-	goto yy1980;-yy2021:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2019;-	goto yy1980;-yy2022:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy1980;-	if (yych <= 0xBF) goto yy2021;-	goto yy1980;-yy2023:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0xBF) goto yy2021;-	goto yy1980;-yy2024:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x8F) goto yy2021;-	goto yy1980;-yy2025:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy1980;-	if (yych <= 0x9F) goto yy2019;-	goto yy1980;-yy2026:-	++p;-yy2027:-	{ return (bufsize_t)(p - start); }-yy2028:-	yyaccept = 3;-	marker = ++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2017;-	}-	if (yych <= 0xE0) {-		if (yych <= '\\') {-			if (yych <= 0x00) goto yy2027;-			if (yych <= '"') goto yy2026;-			goto yy2015;-		} else {-			if (yych <= 0xC1) goto yy2027;-			if (yych <= 0xDF) goto yy2019;-			goto yy2020;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2025;-			goto yy2021;-		} else {-			if (yych <= 0xF0) goto yy2022;-			if (yych <= 0xF3) goto yy2023;-			if (yych <= 0xF4) goto yy2024;-			goto yy2027;-		}-	}-}--}--// Match space characters, including newlines.-bufsize_t _scan_spacechars(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, 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 = *(marker = p);-	if (yych <= 0xC1) {-		if (yych <= '\r') {-			if (yych <= 0x08) goto yy2035;-			if (yych == '\n') goto yy2033;-			goto yy2032;-		} else {-			if (yych == ' ') goto yy2032;-			if (yych <= 0x7F) goto yy2035;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy2037;-			if (yych <= 0xE0) goto yy2039;-			if (yych <= 0xEC) goto yy2040;-			goto yy2044;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy2040;-				goto yy2041;-			} else {-				if (yych <= 0xF3) goto yy2042;-				if (yych <= 0xF4) goto yy2043;-			}-		}-	}-yy2031:-	{ return (bufsize_t)(p - start); }-yy2032:-	yych = *++p;-	goto yy2034;-yy2033:-	++p;-	yych = *p;-yy2034:-	if (yybm[0+yych] & 128) {-		goto yy2033;-	}-	goto yy2031;-yy2035:-	++p;-	{ return 0; }-yy2037:-	yych = *++p;-	if (yych <= 0x7F) goto yy2038;-	if (yych <= 0xBF) goto yy2035;-yy2038:-	p = marker;-	goto yy2031;-yy2039:-	yych = *++p;-	if (yych <= 0x9F) goto yy2038;-	if (yych <= 0xBF) goto yy2037;-	goto yy2038;-yy2040:-	yych = *++p;-	if (yych <= 0x7F) goto yy2038;-	if (yych <= 0xBF) goto yy2037;-	goto yy2038;-yy2041:-	yych = *++p;-	if (yych <= 0x8F) goto yy2038;-	if (yych <= 0xBF) goto yy2040;-	goto yy2038;-yy2042:-	yych = *++p;-	if (yych <= 0x7F) goto yy2038;-	if (yych <= 0xBF) goto yy2040;-	goto yy2038;-yy2043:-	yych = *++p;-	if (yych <= 0x7F) goto yy2038;-	if (yych <= 0x8F) goto yy2040;-	goto yy2038;-yy2044:-	++p;-	if ((yych = *p) <= 0x7F) goto yy2038;-	if (yych <= 0x9F) goto yy2037;-	goto yy2038;-}--}--// Match ATX header start.-bufsize_t _scan_atx_header_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,   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,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= '"') {-			if (yych != '\n') goto yy2049;-		} else {-			if (yych <= '#') goto yy2048;-			if (yych <= 0x7F) goto yy2049;-			if (yych >= 0xC2) goto yy2050;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy2052;-			if (yych == 0xED) goto yy2057;-			goto yy2053;-		} else {-			if (yych <= 0xF0) goto yy2054;-			if (yych <= 0xF3) goto yy2055;-			if (yych <= 0xF4) goto yy2056;-		}-	}-yy2047:-	{ return 0; }-yy2048:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2058;-		goto yy2047;-	} else {-		if (yych <= '\r') goto yy2058;-		if (yych == '#') goto yy2062;-		goto yy2047;-	}-yy2049:-	yych = *++p;-	goto yy2047;-yy2050:-	yych = *++p;-	if (yych <= 0x7F) goto yy2051;-	if (yych <= 0xBF) goto yy2049;-yy2051:-	p = marker;-	goto yy2047;-yy2052:-	yych = *++p;-	if (yych <= 0x9F) goto yy2051;-	if (yych <= 0xBF) goto yy2050;-	goto yy2051;-yy2053:-	yych = *++p;-	if (yych <= 0x7F) goto yy2051;-	if (yych <= 0xBF) goto yy2050;-	goto yy2051;-yy2054:-	yych = *++p;-	if (yych <= 0x8F) goto yy2051;-	if (yych <= 0xBF) goto yy2053;-	goto yy2051;-yy2055:-	yych = *++p;-	if (yych <= 0x7F) goto yy2051;-	if (yych <= 0xBF) goto yy2053;-	goto yy2051;-yy2056:-	yych = *++p;-	if (yych <= 0x7F) goto yy2051;-	if (yych <= 0x8F) goto yy2053;-	goto yy2051;-yy2057:-	yych = *++p;-	if (yych <= 0x7F) goto yy2051;-	if (yych <= 0x9F) goto yy2050;-	goto yy2051;-yy2058:-	++p;-yy2059:-	{ return (bufsize_t)(p - start); }-yy2060:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	goto yy2059;-yy2062:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2058;-		goto yy2051;-	} else {-		if (yych <= '\r') goto yy2058;-		if (yych != '#') goto yy2051;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2058;-		goto yy2051;-	} else {-		if (yych <= '\r') goto yy2058;-		if (yych != '#') goto yy2051;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2058;-		goto yy2051;-	} else {-		if (yych <= '\r') goto yy2058;-		if (yych != '#') goto yy2051;-	}-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy2060;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2058;-		goto yy2051;-	} else {-		if (yych <= '\r') goto yy2058;-		if (yych != '#') goto yy2051;-	}-	++p;-	if (yybm[0+(yych = *p)] & 128) {-		goto yy2060;-	}-	if (yych == '\n') goto yy2058;-	if (yych == '\r') goto yy2058;-	goto yy2051;-}--}--// Match setext header line.  Return 1 for level-1 header,-// 2 for level-2, 0 for no match.-bufsize_t _scan_setext_header_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,   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,  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 = *(marker = p);-	if (yych <= 0xC1) {-		if (yych <= '-') {-			if (yych == '\n') goto yy2069;-			if (yych <= ',') goto yy2072;-			goto yy2071;-		} else {-			if (yych == '=') goto yy2070;-			if (yych <= 0x7F) goto yy2072;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy2073;-			if (yych <= 0xE0) goto yy2075;-			if (yych <= 0xEC) goto yy2076;-			goto yy2080;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy2076;-				goto yy2077;-			} else {-				if (yych <= 0xF3) goto yy2078;-				if (yych <= 0xF4) goto yy2079;-			}-		}-	}-yy2069:-	{ return 0; }-yy2070:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 128) {-		goto yy2091;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2089;-		goto yy2069;-	} else {-		if (yych <= '\r') goto yy2089;-		if (yych == ' ') goto yy2087;-		goto yy2069;-	}-yy2071:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 32) {-		goto yy2081;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2083;-		goto yy2069;-	} else {-		if (yych <= '\r') goto yy2083;-		if (yych == '-') goto yy2085;-		goto yy2069;-	}-yy2072:-	yych = *++p;-	goto yy2069;-yy2073:-	yych = *++p;-	if (yych <= 0x7F) goto yy2074;-	if (yych <= 0xBF) goto yy2072;-yy2074:-	p = marker;-	goto yy2069;-yy2075:-	yych = *++p;-	if (yych <= 0x9F) goto yy2074;-	if (yych <= 0xBF) goto yy2073;-	goto yy2074;-yy2076:-	yych = *++p;-	if (yych <= 0x7F) goto yy2074;-	if (yych <= 0xBF) goto yy2073;-	goto yy2074;-yy2077:-	yych = *++p;-	if (yych <= 0x8F) goto yy2074;-	if (yych <= 0xBF) goto yy2076;-	goto yy2074;-yy2078:-	yych = *++p;-	if (yych <= 0x7F) goto yy2074;-	if (yych <= 0xBF) goto yy2076;-	goto yy2074;-yy2079:-	yych = *++p;-	if (yych <= 0x7F) goto yy2074;-	if (yych <= 0x8F) goto yy2076;-	goto yy2074;-yy2080:-	yych = *++p;-	if (yych <= 0x7F) goto yy2074;-	if (yych <= 0x9F) goto yy2073;-	goto yy2074;-yy2081:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy2081;-	}-	if (yych == '\n') goto yy2083;-	if (yych != '\r') goto yy2074;-yy2083:-	++p;-	{ return 2; }-yy2085:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy2081;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2083;-		goto yy2074;-	} else {-		if (yych <= '\r') goto yy2083;-		if (yych == '-') goto yy2085;-		goto yy2074;-	}-yy2087:-	++p;-	yych = *p;-	if (yych <= '\f') {-		if (yych != '\n') goto yy2074;-	} else {-		if (yych <= '\r') goto yy2089;-		if (yych == ' ') goto yy2087;-		goto yy2074;-	}-yy2089:-	++p;-	{ return 1; }-yy2091:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2091;-	}-	if (yych <= '\f') {-		if (yych == '\n') goto yy2089;-		goto yy2074;-	} else {-		if (yych <= '\r') goto yy2089;-		if (yych == ' ') goto yy2087;-		goto yy2074;-	}-}--}--// Scan a horizontal rule line: "...three or more hyphens, asterisks,-// or underscores on a line by themselves. If you wish, you may use-// spaces between the hyphens or asterisks."-bufsize_t _scan_hrule(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,  32,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		248,   0,   0,   0,   0,   0,   0,   0, -		  0,   0, 128,   0,   0,  16,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   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,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0x7F) {-		if (yych <= '*') {-			if (yych == '\n') goto yy2095;-			if (yych <= ')') goto yy2099;-			goto yy2096;-		} else {-			if (yych <= '-') {-				if (yych <= ',') goto yy2099;-				goto yy2098;-			} else {-				if (yych == '_') goto yy2097;-				goto yy2099;-			}-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) {-				if (yych >= 0xC2) goto yy2100;-			} else {-				if (yych <= 0xE0) goto yy2102;-				if (yych <= 0xEC) goto yy2103;-				goto yy2107;-			}-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy2103;-				goto yy2104;-			} else {-				if (yych <= 0xF3) goto yy2105;-				if (yych <= 0xF4) goto yy2106;-			}-		}-	}-yy2095:-	{ return 0; }-yy2096:-	yych = *(marker = ++p);-	if (yych == ' ') goto yy2128;-	if (yych == '*') goto yy2130;-	goto yy2095;-yy2097:-	yych = *(marker = ++p);-	if (yych == ' ') goto yy2118;-	if (yych == '_') goto yy2120;-	goto yy2095;-yy2098:-	yych = *(marker = ++p);-	if (yybm[0+yych] & 8) {-		goto yy2108;-	}-	if (yych == '-') goto yy2110;-	goto yy2095;-yy2099:-	yych = *++p;-	goto yy2095;-yy2100:-	yych = *++p;-	if (yych <= 0x7F) goto yy2101;-	if (yych <= 0xBF) goto yy2099;-yy2101:-	p = marker;-	goto yy2095;-yy2102:-	yych = *++p;-	if (yych <= 0x9F) goto yy2101;-	if (yych <= 0xBF) goto yy2100;-	goto yy2101;-yy2103:-	yych = *++p;-	if (yych <= 0x7F) goto yy2101;-	if (yych <= 0xBF) goto yy2100;-	goto yy2101;-yy2104:-	yych = *++p;-	if (yych <= 0x8F) goto yy2101;-	if (yych <= 0xBF) goto yy2103;-	goto yy2101;-yy2105:-	yych = *++p;-	if (yych <= 0x7F) goto yy2101;-	if (yych <= 0xBF) goto yy2103;-	goto yy2101;-yy2106:-	yych = *++p;-	if (yych <= 0x7F) goto yy2101;-	if (yych <= 0x8F) goto yy2103;-	goto yy2101;-yy2107:-	yych = *++p;-	if (yych <= 0x7F) goto yy2101;-	if (yych <= 0x9F) goto yy2100;-	goto yy2101;-yy2108:-	++p;-	yych = *p;-	if (yybm[0+yych] & 8) {-		goto yy2108;-	}-	if (yych != '-') goto yy2101;-yy2110:-	++p;-	yych = *p;-	if (yych == ' ') goto yy2110;-	if (yych != '-') goto yy2101;-yy2112:-	++p;-	yych = *p;-	if (yybm[0+yych] & 16) {-		goto yy2112;-	}-	if (yych <= '\n') {-		if (yych <= 0x08) goto yy2101;-		if (yych >= '\n') goto yy2116;-	} else {-		if (yych == '\r') goto yy2116;-		goto yy2101;-	}-yy2114:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy2114;-	}-	if (yych <= 0x08) goto yy2101;-	if (yych <= '\n') goto yy2116;-	if (yych != '\r') goto yy2101;-yy2116:-	++p;-	{ return (bufsize_t)(p - start); }-yy2118:-	++p;-	yych = *p;-	if (yych == ' ') goto yy2118;-	if (yych != '_') goto yy2101;-yy2120:-	++p;-	yych = *p;-	if (yych == ' ') goto yy2120;-	if (yych != '_') goto yy2101;-yy2122:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy2122;-	}-	if (yych <= '\n') {-		if (yych <= 0x08) goto yy2101;-		if (yych >= '\n') goto yy2126;-	} else {-		if (yych == '\r') goto yy2126;-		goto yy2101;-	}-yy2124:-	++p;-	yych = *p;-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy2101;-		if (yych <= '\t') goto yy2124;-		if (yych >= '\v') goto yy2101;-	} else {-		if (yych <= '\r') goto yy2126;-		if (yych == ' ') goto yy2124;-		goto yy2101;-	}-yy2126:-	++p;-	{ return (bufsize_t)(p - start); }-yy2128:-	++p;-	yych = *p;-	if (yych == ' ') goto yy2128;-	if (yych != '*') goto yy2101;-yy2130:-	++p;-	yych = *p;-	if (yych == ' ') goto yy2130;-	if (yych != '*') goto yy2101;-yy2132:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2132;-	}-	if (yych <= '\n') {-		if (yych <= 0x08) goto yy2101;-		if (yych >= '\n') goto yy2136;-	} else {-		if (yych == '\r') goto yy2136;-		goto yy2101;-	}-yy2134:-	++p;-	yych = *p;-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy2101;-		if (yych <= '\t') goto yy2134;-		if (yych >= '\v') goto yy2101;-	} else {-		if (yych <= '\r') goto yy2136;-		if (yych == ' ') goto yy2134;-		goto yy2101;-	}-yy2136:-	++p;-	{ return (bufsize_t)(p - start); }-}--}--// 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, 160, 160, 160, 160, 160, 160, 160, -		160, 160,   0, 160, 160,   0, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		 96, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 160, 160, -		160, 160, 160, 160, 160, 160, 144, 160, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0xC1) {-		if (yych <= '`') {-			if (yych == '\n') goto yy2140;-			if (yych <= '_') goto yy2143;-			goto yy2141;-		} else {-			if (yych == '~') goto yy2142;-			if (yych <= 0x7F) goto yy2143;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy2144;-			if (yych <= 0xE0) goto yy2146;-			if (yych <= 0xEC) goto yy2147;-			goto yy2151;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy2147;-				goto yy2148;-			} else {-				if (yych <= 0xF3) goto yy2149;-				if (yych <= 0xF4) goto yy2150;-			}-		}-	}-yy2140:-	{ return 0; }-yy2141:-	yych = *(marker = ++p);-	if (yych == '`') goto yy2166;-	goto yy2140;-yy2142:-	yych = *(marker = ++p);-	if (yych == '~') goto yy2152;-	goto yy2140;-yy2143:-	yych = *++p;-	goto yy2140;-yy2144:-	yych = *++p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2143;-yy2145:-	p = marker;-	goto yy2140;-yy2146:-	yych = *++p;-	if (yych <= 0x9F) goto yy2145;-	if (yych <= 0xBF) goto yy2144;-	goto yy2145;-yy2147:-	yych = *++p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2144;-	goto yy2145;-yy2148:-	yych = *++p;-	if (yych <= 0x8F) goto yy2145;-	if (yych <= 0xBF) goto yy2147;-	goto yy2145;-yy2149:-	yych = *++p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2147;-	goto yy2145;-yy2150:-	yych = *++p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x8F) goto yy2147;-	goto yy2145;-yy2151:-	yych = *++p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x9F) goto yy2144;-	goto yy2145;-yy2152:-	yych = *++p;-	if (yybm[0+yych] & 16) {-		goto yy2153;-	}-	goto yy2145;-yy2153:-	marker = p + 1;-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy2155;-	}-	if (yych <= 0xE0) {-		if (yych <= '~') {-			if (yych <= 0x00) goto yy2145;-			if (yych <= '\r') goto yy2164;-			goto yy2153;-		} else {-			if (yych <= 0xC1) goto yy2145;-			if (yych <= 0xDF) goto yy2157;-			goto yy2158;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2163;-			goto yy2159;-		} else {-			if (yych <= 0xF0) goto yy2160;-			if (yych <= 0xF3) goto yy2161;-			if (yych <= 0xF4) goto yy2162;-			goto yy2145;-		}-	}-yy2155:-	++p;-	yych = *p;-	if (yybm[0+yych] & 32) {-		goto yy2155;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy2145;-			if (yych <= '\r') goto yy2164;-			goto yy2145;-		} else {-			if (yych <= 0xDF) goto yy2157;-			if (yych <= 0xE0) goto yy2158;-			goto yy2159;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy2163;-			if (yych <= 0xEF) goto yy2159;-			goto yy2160;-		} else {-			if (yych <= 0xF3) goto yy2161;-			if (yych <= 0xF4) goto yy2162;-			goto yy2145;-		}-	}-yy2157:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2155;-	goto yy2145;-yy2158:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy2145;-	if (yych <= 0xBF) goto yy2157;-	goto yy2145;-yy2159:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2157;-	goto yy2145;-yy2160:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy2145;-	if (yych <= 0xBF) goto yy2159;-	goto yy2145;-yy2161:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2159;-	goto yy2145;-yy2162:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x8F) goto yy2159;-	goto yy2145;-yy2163:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x9F) goto yy2157;-	goto yy2145;-yy2164:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-yy2166:-	yych = *++p;-	if (yybm[0+yych] & 64) {-		goto yy2167;-	}-	goto yy2145;-yy2167:-	marker = p + 1;-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2169;-	}-	if (yych <= 0xE0) {-		if (yych <= '`') {-			if (yych <= 0x00) goto yy2145;-			if (yych <= '\r') goto yy2178;-			goto yy2167;-		} else {-			if (yych <= 0xC1) goto yy2145;-			if (yych <= 0xDF) goto yy2171;-			goto yy2172;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych == 0xED) goto yy2177;-			goto yy2173;-		} else {-			if (yych <= 0xF0) goto yy2174;-			if (yych <= 0xF3) goto yy2175;-			if (yych <= 0xF4) goto yy2176;-			goto yy2145;-		}-	}-yy2169:-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2169;-	}-	if (yych <= 0xEC) {-		if (yych <= 0xC1) {-			if (yych <= 0x00) goto yy2145;-			if (yych <= '\r') goto yy2178;-			goto yy2145;-		} else {-			if (yych <= 0xDF) goto yy2171;-			if (yych <= 0xE0) goto yy2172;-			goto yy2173;-		}-	} else {-		if (yych <= 0xF0) {-			if (yych <= 0xED) goto yy2177;-			if (yych <= 0xEF) goto yy2173;-			goto yy2174;-		} else {-			if (yych <= 0xF3) goto yy2175;-			if (yych <= 0xF4) goto yy2176;-			goto yy2145;-		}-	}-yy2171:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2169;-	goto yy2145;-yy2172:-	++p;-	yych = *p;-	if (yych <= 0x9F) goto yy2145;-	if (yych <= 0xBF) goto yy2171;-	goto yy2145;-yy2173:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2171;-	goto yy2145;-yy2174:-	++p;-	yych = *p;-	if (yych <= 0x8F) goto yy2145;-	if (yych <= 0xBF) goto yy2173;-	goto yy2145;-yy2175:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0xBF) goto yy2173;-	goto yy2145;-yy2176:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x8F) goto yy2173;-	goto yy2145;-yy2177:-	++p;-	yych = *p;-	if (yych <= 0x7F) goto yy2145;-	if (yych <= 0x9F) goto yy2171;-	goto yy2145;-yy2178:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-}--}--// 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,  64,   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, -		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,  32,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  0,   0,   0,   0,   0,   0,   0,   0, -		  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 = *(marker = p);-	if (yych <= 0xC1) {-		if (yych <= '`') {-			if (yych == '\n') goto yy2182;-			if (yych <= '_') goto yy2185;-			goto yy2183;-		} else {-			if (yych == '~') goto yy2184;-			if (yych <= 0x7F) goto yy2185;-		}-	} else {-		if (yych <= 0xED) {-			if (yych <= 0xDF) goto yy2186;-			if (yych <= 0xE0) goto yy2188;-			if (yych <= 0xEC) goto yy2189;-			goto yy2193;-		} else {-			if (yych <= 0xF0) {-				if (yych <= 0xEF) goto yy2189;-				goto yy2190;-			} else {-				if (yych <= 0xF3) goto yy2191;-				if (yych <= 0xF4) goto yy2192;-			}-		}-	}-yy2182:-	{ return 0; }-yy2183:-	yych = *(marker = ++p);-	if (yych == '`') goto yy2201;-	goto yy2182;-yy2184:-	yych = *(marker = ++p);-	if (yych == '~') goto yy2194;-	goto yy2182;-yy2185:-	yych = *++p;-	goto yy2182;-yy2186:-	yych = *++p;-	if (yych <= 0x7F) goto yy2187;-	if (yych <= 0xBF) goto yy2185;-yy2187:-	p = marker;-	goto yy2182;-yy2188:-	yych = *++p;-	if (yych <= 0x9F) goto yy2187;-	if (yych <= 0xBF) goto yy2186;-	goto yy2187;-yy2189:-	yych = *++p;-	if (yych <= 0x7F) goto yy2187;-	if (yych <= 0xBF) goto yy2186;-	goto yy2187;-yy2190:-	yych = *++p;-	if (yych <= 0x8F) goto yy2187;-	if (yych <= 0xBF) goto yy2189;-	goto yy2187;-yy2191:-	yych = *++p;-	if (yych <= 0x7F) goto yy2187;-	if (yych <= 0xBF) goto yy2189;-	goto yy2187;-yy2192:-	yych = *++p;-	if (yych <= 0x7F) goto yy2187;-	if (yych <= 0x8F) goto yy2189;-	goto yy2187;-yy2193:-	yych = *++p;-	if (yych <= 0x7F) goto yy2187;-	if (yych <= 0x9F) goto yy2186;-	goto yy2187;-yy2194:-	yych = *++p;-	if (yybm[0+yych] & 32) {-		goto yy2195;-	}-	goto yy2187;-yy2195:-	marker = p + 1;-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy2197;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy2187;-		if (yych <= '\n') goto yy2199;-		goto yy2187;-	} else {-		if (yych <= '\r') goto yy2199;-		if (yych == '~') goto yy2195;-		goto yy2187;-	}-yy2197:-	++p;-	yych = *p;-	if (yybm[0+yych] & 64) {-		goto yy2197;-	}-	if (yych <= 0x08) goto yy2187;-	if (yych <= '\n') goto yy2199;-	if (yych != '\r') goto yy2187;-yy2199:-	++p;-	p = marker;-	{ return (bufsize_t)(p - start); }-yy2201:-	yych = *++p;-	if (yybm[0+yych] & 128) {-		goto yy2202;-	}-	goto yy2187;-yy2202:-	marker = p + 1;-	++p;-	yych = *p;-	if (yybm[0+yych] & 128) {-		goto yy2202;-	}-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy2187;-		if (yych <= '\t') goto yy2204;-		if (yych <= '\n') goto yy2206;-		goto yy2187;-	} else {-		if (yych <= '\r') goto yy2206;-		if (yych != ' ') goto yy2187;-	}-yy2204:-	++p;-	yych = *p;-	if (yych <= '\f') {-		if (yych <= 0x08) goto yy2187;-		if (yych <= '\t') goto yy2204;-		if (yych >= '\v') goto yy2187;-	} else {-		if (yych <= '\r') goto yy2206;-		if (yych == ' ') goto yy2204;-		goto yy2187;-	}-yy2206:-	++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 = *(marker = p);-	if (yych <= 0xDF) {-		if (yych <= '%') {-			if (yych != '\n') goto yy2212;-		} else {-			if (yych <= '&') goto yy2211;-			if (yych <= 0x7F) goto yy2212;-			if (yych >= 0xC2) goto yy2213;-		}-	} else {-		if (yych <= 0xEF) {-			if (yych <= 0xE0) goto yy2215;-			if (yych == 0xED) goto yy2220;-			goto yy2216;-		} else {-			if (yych <= 0xF0) goto yy2217;-			if (yych <= 0xF3) goto yy2218;-			if (yych <= 0xF4) goto yy2219;-		}-	}-yy2210:-	{ return 0; }-yy2211:-	yych = *(marker = ++p);-	if (yych <= '@') {-		if (yych == '#') goto yy2221;-		goto yy2210;-	} else {-		if (yych <= 'Z') goto yy2222;-		if (yych <= '`') goto yy2210;-		if (yych <= 'z') goto yy2222;-		goto yy2210;-	}-yy2212:-	yych = *++p;-	goto yy2210;-yy2213:-	yych = *++p;-	if (yych <= 0x7F) goto yy2214;-	if (yych <= 0xBF) goto yy2212;-yy2214:-	p = marker;-	goto yy2210;-yy2215:-	yych = *++p;-	if (yych <= 0x9F) goto yy2214;-	if (yych <= 0xBF) goto yy2213;-	goto yy2214;-yy2216:-	yych = *++p;-	if (yych <= 0x7F) goto yy2214;-	if (yych <= 0xBF) goto yy2213;-	goto yy2214;-yy2217:-	yych = *++p;-	if (yych <= 0x8F) goto yy2214;-	if (yych <= 0xBF) goto yy2216;-	goto yy2214;-yy2218:-	yych = *++p;-	if (yych <= 0x7F) goto yy2214;-	if (yych <= 0xBF) goto yy2216;-	goto yy2214;-yy2219:-	yych = *++p;-	if (yych <= 0x7F) goto yy2214;-	if (yych <= 0x8F) goto yy2216;-	goto yy2214;-yy2220:-	yych = *++p;-	if (yych <= 0x7F) goto yy2214;-	if (yych <= 0x9F) goto yy2213;-	goto yy2214;-yy2221:-	yych = *++p;-	if (yych <= 'W') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2257;-		goto yy2214;-	} else {-		if (yych <= 'X') goto yy2256;-		if (yych == 'x') goto yy2256;-		goto yy2214;-	}-yy2222:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy2214;-		if (yych >= ':') goto yy2214;-	} else {-		if (yych <= 'Z') goto yy2223;-		if (yych <= '`') goto yy2214;-		if (yych >= '{') goto yy2214;-	}-yy2223:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2226;-		if (yych <= ':') goto yy2214;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-			goto yy2226;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych <= 'z') goto yy2226;-			goto yy2214;-		}-	}-yy2224:-	++p;-	{ return (bufsize_t)(p - start); }-yy2226:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2227;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2227:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2228;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2228:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2229;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2229:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2230;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2230:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2231;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2231:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2232;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2232:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2233;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2233:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2234;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2234:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2235;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2235:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2236;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2236:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2237;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2237:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2238;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2238:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2239;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2239:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2240;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2240:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2241;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2241:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2242;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2242:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2243;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2243:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2244;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2244:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2245;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2245:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2246;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2246:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2247;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2247:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2248;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2248:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2249;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2249:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2250;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2250:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2251;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2251:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2252;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2252:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2253;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2253:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2254;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2254:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2255;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'Z') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= '{') goto yy2214;-		}-	}-yy2255:-	yych = *++p;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2256:-	yych = *++p;-	if (yych <= '@') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2264;-		goto yy2214;-	} else {-		if (yych <= 'F') goto yy2264;-		if (yych <= '`') goto yy2214;-		if (yych <= 'f') goto yy2264;-		goto yy2214;-	}-yy2257:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2258;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2258:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2259;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2259:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2260;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2260:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2261;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2261:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2262;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2262:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2263;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2263:-	yych = *++p;-	if (yych <= '/') goto yy2214;-	if (yych <= '9') goto yy2255;-	if (yych == ';') goto yy2224;-	goto yy2214;-yy2264:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2265;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2265:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2266;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2266:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2267;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2267:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2268;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2268:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2269;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2269:-	yych = *++p;-	if (yych <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2270;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych >= 'g') goto yy2214;-		}-	}-yy2270:-	++p;-	if ((yych = *p) <= ';') {-		if (yych <= '/') goto yy2214;-		if (yych <= '9') goto yy2255;-		if (yych <= ':') goto yy2214;-		goto yy2224;-	} else {-		if (yych <= 'F') {-			if (yych <= '@') goto yy2214;-			goto yy2255;-		} else {-			if (yych <= '`') goto yy2214;-			if (yych <= 'f') goto yy2255;-			goto yy2214;-		}-	}-}--}--// 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 = *(marker = p);-	if (yych <= 'f') {-		if (yych <= 'I') {-			if (yych <= 'C') {-				if (yych != '\n') goto yy2278;-			} else {-				if (yych <= 'D') goto yy2274;-				if (yych == 'F') goto yy2277;-				goto yy2278;-			}-		} else {-			if (yych <= 'V') {-				if (yych <= 'J') goto yy2275;-				if (yych <= 'U') goto yy2278;-				goto yy2276;-			} else {-				if (yych == 'd') goto yy2274;-				if (yych <= 'e') goto yy2278;-				goto yy2277;-			}-		}-	} else {-		if (yych <= 0xDF) {-			if (yych <= 'u') {-				if (yych == 'j') goto yy2275;-				goto yy2278;-			} else {-				if (yych <= 'v') goto yy2276;-				if (yych <= 0x7F) goto yy2278;-				if (yych >= 0xC2) goto yy2279;-			}-		} else {-			if (yych <= 0xEF) {-				if (yych <= 0xE0) goto yy2281;-				if (yych == 0xED) goto yy2286;-				goto yy2282;-			} else {-				if (yych <= 0xF0) goto yy2283;-				if (yych <= 0xF3) goto yy2284;-				if (yych <= 0xF4) goto yy2285;-			}-		}-	}-yy2273:-	{ return 0; }-yy2274:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'A') goto yy2308;-	if (yych == 'a') goto yy2308;-	goto yy2273;-yy2275:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'A') goto yy2299;-	if (yych == 'a') goto yy2299;-	goto yy2273;-yy2276:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'B') goto yy2292;-	if (yych == 'b') goto yy2292;-	goto yy2273;-yy2277:-	yyaccept = 0;-	yych = *(marker = ++p);-	if (yych == 'I') goto yy2287;-	if (yych == 'i') goto yy2287;-	goto yy2273;-yy2278:-	yych = *++p;-	goto yy2273;-yy2279:-	yych = *++p;-	if (yych <= 0x7F) goto yy2280;-	if (yych <= 0xBF) goto yy2278;-yy2280:-	p = marker;-	if (yyaccept == 0) {-		goto yy2273;-	} else {-		goto yy2291;-	}-yy2281:-	yych = *++p;-	if (yych <= 0x9F) goto yy2280;-	if (yych <= 0xBF) goto yy2279;-	goto yy2280;-yy2282:-	yych = *++p;-	if (yych <= 0x7F) goto yy2280;-	if (yych <= 0xBF) goto yy2279;-	goto yy2280;-yy2283:-	yych = *++p;-	if (yych <= 0x8F) goto yy2280;-	if (yych <= 0xBF) goto yy2282;-	goto yy2280;-yy2284:-	yych = *++p;-	if (yych <= 0x7F) goto yy2280;-	if (yych <= 0xBF) goto yy2282;-	goto yy2280;-yy2285:-	yych = *++p;-	if (yych <= 0x7F) goto yy2280;-	if (yych <= 0x8F) goto yy2282;-	goto yy2280;-yy2286:-	yych = *++p;-	if (yych <= 0x7F) goto yy2280;-	if (yych <= 0x9F) goto yy2279;-	goto yy2280;-yy2287:-	yych = *++p;-	if (yych == 'L') goto yy2288;-	if (yych != 'l') goto yy2280;-yy2288:-	yych = *++p;-	if (yych == 'E') goto yy2289;-	if (yych != 'e') goto yy2280;-yy2289:-	yych = *++p;-	if (yych != ':') goto yy2280;-yy2290:-	++p;-yy2291:-	{ return (bufsize_t)(p - start); }-yy2292:-	yych = *++p;-	if (yych == 'S') goto yy2293;-	if (yych != 's') goto yy2280;-yy2293:-	yych = *++p;-	if (yych == 'C') goto yy2294;-	if (yych != 'c') goto yy2280;-yy2294:-	yych = *++p;-	if (yych == 'R') goto yy2295;-	if (yych != 'r') goto yy2280;-yy2295:-	yych = *++p;-	if (yych == 'I') goto yy2296;-	if (yych != 'i') goto yy2280;-yy2296:-	yych = *++p;-	if (yych == 'P') goto yy2297;-	if (yych != 'p') goto yy2280;-yy2297:-	yych = *++p;-	if (yych == 'T') goto yy2298;-	if (yych != 't') goto yy2280;-yy2298:-	yych = *++p;-	if (yych == ':') goto yy2290;-	goto yy2280;-yy2299:-	yych = *++p;-	if (yych == 'V') goto yy2300;-	if (yych != 'v') goto yy2280;-yy2300:-	yych = *++p;-	if (yych == 'A') goto yy2301;-	if (yych != 'a') goto yy2280;-yy2301:-	yych = *++p;-	if (yych == 'S') goto yy2302;-	if (yych != 's') goto yy2280;-yy2302:-	yych = *++p;-	if (yych == 'C') goto yy2303;-	if (yych != 'c') goto yy2280;-yy2303:-	yych = *++p;-	if (yych == 'R') goto yy2304;-	if (yych != 'r') goto yy2280;-yy2304:-	yych = *++p;-	if (yych == 'I') goto yy2305;-	if (yych != 'i') goto yy2280;-yy2305:-	yych = *++p;-	if (yych == 'P') goto yy2306;-	if (yych != 'p') goto yy2280;-yy2306:-	yych = *++p;-	if (yych == 'T') goto yy2307;-	if (yych != 't') goto yy2280;-yy2307:-	yych = *++p;-	if (yych == ':') goto yy2290;-	goto yy2280;-yy2308:-	yych = *++p;-	if (yych == 'T') goto yy2309;-	if (yych != 't') goto yy2280;-yy2309:-	yych = *++p;-	if (yych == 'A') goto yy2310;-	if (yych != 'a') goto yy2280;-yy2310:-	yych = *++p;-	if (yych != ':') goto yy2280;-	yyaccept = 1;-	yych = *(marker = ++p);-	if (yych == 'I') goto yy2312;-	if (yych != 'i') goto yy2291;-yy2312:-	yych = *++p;-	if (yych == 'M') goto yy2313;-	if (yych != 'm') goto yy2280;-yy2313:-	yych = *++p;-	if (yych == 'A') goto yy2314;-	if (yych != 'a') goto yy2280;-yy2314:-	yych = *++p;-	if (yych == 'G') goto yy2315;-	if (yych != 'g') goto yy2280;-yy2315:-	yych = *++p;-	if (yych == 'E') goto yy2316;-	if (yych != 'e') goto yy2280;-yy2316:-	yych = *++p;-	if (yych != '/') goto yy2280;-	yych = *++p;-	if (yych <= 'W') {-		if (yych <= 'J') {-			if (yych == 'G') goto yy2319;-			if (yych <= 'I') goto yy2280;-			goto yy2320;-		} else {-			if (yych == 'P') goto yy2318;-			if (yych <= 'V') goto yy2280;-			goto yy2321;-		}-	} else {-		if (yych <= 'j') {-			if (yych == 'g') goto yy2319;-			if (yych <= 'i') goto yy2280;-			goto yy2320;-		} else {-			if (yych <= 'p') {-				if (yych <= 'o') goto yy2280;-			} else {-				if (yych == 'w') goto yy2321;-				goto yy2280;-			}-		}-	}-yy2318:-	yych = *++p;-	if (yych == 'N') goto yy2329;-	if (yych == 'n') goto yy2329;-	goto yy2280;-yy2319:-	yych = *++p;-	if (yych == 'I') goto yy2328;-	if (yych == 'i') goto yy2328;-	goto yy2280;-yy2320:-	yych = *++p;-	if (yych == 'P') goto yy2326;-	if (yych == 'p') goto yy2326;-	goto yy2280;-yy2321:-	yych = *++p;-	if (yych == 'E') goto yy2322;-	if (yych != 'e') goto yy2280;-yy2322:-	yych = *++p;-	if (yych == 'B') goto yy2323;-	if (yych != 'b') goto yy2280;-yy2323:-	yych = *++p;-	if (yych == 'P') goto yy2324;-	if (yych != 'p') goto yy2280;-yy2324:-	++p;-	{ return 0; }-yy2326:-	yych = *++p;-	if (yych == 'E') goto yy2327;-	if (yych != 'e') goto yy2280;-yy2327:-	yych = *++p;-	if (yych == 'G') goto yy2324;-	if (yych == 'g') goto yy2324;-	goto yy2280;-yy2328:-	yych = *++p;-	if (yych == 'F') goto yy2324;-	if (yych == 'f') goto yy2324;-	goto yy2280;-yy2329:-	++p;-	if ((yych = *p) == 'G') goto yy2324;-	if (yych == 'g') goto yy2324;-	goto yy2280;-}--}-+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;+  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 = *(marker = p);+    if (yych <= 'c') {+      if (yych <= 'M') {+        if (yych <= 'E') {+          if (yych <= 'A') {+            if (yych == '\n')+              goto yy2;+            if (yych <= '@')+              goto yy29;+            goto yy6;+          } else {+            if (yych <= 'B')+              goto yy24;+            if (yych <= 'C')+              goto yy3;+            if (yych <= 'D')+              goto yy4;+            goto yy25;+          }+        } else {+          if (yych <= 'I') {+            if (yych <= 'F')+              goto yy7;+            if (yych <= 'G')+              goto yy8;+            if (yych <= 'H')+              goto yy9;+            goto yy10;+          } else {+            if (yych <= 'J')+              goto yy5;+            if (yych <= 'K')+              goto yy26;+            if (yych <= 'L')+              goto yy11;+            goto yy12;+          }+        }+      } else {+        if (yych <= 'U') {+          if (yych <= 'Q') {+            if (yych <= 'N')+              goto yy13;+            if (yych <= 'O')+              goto yy14;+            if (yych <= 'P')+              goto yy15;+            goto yy27;+          } else {+            if (yych <= 'R')+              goto yy16;+            if (yych <= 'S')+              goto yy17;+            if (yych <= 'T')+              goto yy18;+            goto yy19;+          }+        } else {+          if (yych <= 'Y') {+            if (yych <= 'V')+              goto yy20;+            if (yych <= 'W')+              goto yy21;+            if (yych <= 'X')+              goto yy22;+            goto yy28;+          } else {+            if (yych <= '`') {+              if (yych <= 'Z')+                goto yy23;+              goto yy29;+            } else {+              if (yych <= 'a')+                goto yy6;+              if (yych <= 'b')+                goto yy24;+              goto yy3;+            }+          }+        }+      }+    } else {+      if (yych <= 't') {+        if (yych <= 'k') {+          if (yych <= 'g') {+            if (yych <= 'd')+              goto yy4;+            if (yych <= 'e')+              goto yy25;+            if (yych <= 'f')+              goto yy7;+            goto yy8;+          } else {+            if (yych <= 'h')+              goto yy9;+            if (yych <= 'i')+              goto yy10;+            if (yych <= 'j')+              goto yy5;+            goto yy26;+          }+        } else {+          if (yych <= 'o') {+            if (yych <= 'l')+              goto yy11;+            if (yych <= 'm')+              goto yy12;+            if (yych <= 'n')+              goto yy13;+            goto yy14;+          } else {+            if (yych <= 'q') {+              if (yych <= 'p')+                goto yy15;+              goto yy27;+            } else {+              if (yych <= 'r')+                goto yy16;+              if (yych <= 's')+                goto yy17;+              goto yy18;+            }+          }+        }+      } else {+        if (yych <= 0xC1) {+          if (yych <= 'x') {+            if (yych <= 'u')+              goto yy19;+            if (yych <= 'v')+              goto yy20;+            if (yych <= 'w')+              goto yy21;+            goto yy22;+          } else {+            if (yych <= 'y')+              goto yy28;+            if (yych <= 'z')+              goto yy23;+            if (yych <= 0x7F)+              goto yy29;+          }+        } else {+          if (yych <= 0xED) {+            if (yych <= 0xDF)+              goto yy30;+            if (yych <= 0xE0)+              goto yy32;+            if (yych <= 0xEC)+              goto yy33;+            goto yy37;+          } else {+            if (yych <= 0xF0) {+              if (yych <= 0xEF)+                goto yy33;+              goto yy34;+            } else {+              if (yych <= 0xF3)+                goto yy35;+              if (yych <= 0xF4)+                goto yy36;+            }+          }+        }+      }+    }+  yy2 : { return 0; }+  yy3:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy447;+    case 'H':+    case 'h':+      goto yy446;+    case 'I':+    case 'i':+      goto yy449;+    case 'O':+    case 'o':+      goto yy445;+    case 'R':+    case 'r':+      goto yy448;+    case 'V':+    case 'v':+      goto yy444;+    default:+      goto yy2;+    }+  yy4:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy420;+    case 'I':+    case 'i':+      goto yy419;+    case 'L':+    case 'l':+      goto yy417;+    case 'N':+    case 'n':+      goto yy418;+    case 'O':+    case 'o':+      goto yy421;+    case 'T':+    case 't':+      goto yy416;+    case 'V':+    case 'v':+      goto yy415;+    default:+      goto yy2;+    }+  yy5:+    yych = *(marker = ++p);+    if (yych <= 'M') {+      if (yych == 'A')+        goto yy407;+      if (yych <= 'L')+        goto yy2;+      goto yy406;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy2;+        goto yy407;+      } else {+        if (yych == 'm')+          goto yy406;+        goto yy2;+      }+    }+  yy6:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy388;+    case 'B':+    case 'b':+      goto yy387;+    case 'C':+    case 'c':+      goto yy386;+    case 'D':+    case 'd':+      goto yy385;+    case 'F':+    case 'f':+      goto yy384;+    case 'I':+    case 'i':+      goto yy383;+    case 'P':+    case 'p':+      goto yy382;+    case 'T':+    case 't':+      goto yy381;+    case 'W':+    case 'w':+      goto yy41;+    default:+      goto yy2;+    }+  yy7:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'E') {+        if (yych == 'A')+          goto yy368;+        if (yych <= 'D')+          goto yy2;+        goto yy367;+      } else {+        if (yych == 'I')+          goto yy366;+        if (yych <= 'S')+          goto yy2;+        goto yy369;+      }+    } else {+      if (yych <= 'e') {+        if (yych == 'a')+          goto yy368;+        if (yych <= 'd')+          goto yy2;+        goto yy367;+      } else {+        if (yych <= 'i') {+          if (yych <= 'h')+            goto yy2;+          goto yy366;+        } else {+          if (yych == 't')+            goto yy369;+          goto yy2;+        }+      }+    }+  yy8:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy351;+    case 'G':+    case 'g':+      goto yy41;+    case 'I':+    case 'i':+      goto yy349;+    case 'O':+    case 'o':+      goto yy350;+    case 'T':+    case 't':+      goto yy348;+    default:+      goto yy2;+    }+  yy9:+    yych = *(marker = ++p);+    if (yych <= 'S') {+      if (yych <= '3') {+        if (yych <= '2')+          goto yy2;+        goto yy344;+      } else {+        if (yych == 'C')+          goto yy342;+        goto yy2;+      }+    } else {+      if (yych <= 'c') {+        if (yych <= 'T')+          goto yy343;+        if (yych <= 'b')+          goto yy2;+        goto yy342;+      } else {+        if (yych == 't')+          goto yy343;+        goto yy2;+      }+    }+  yy10:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy324;+    case 'C':+    case 'c':+      goto yy321;+    case 'M':+    case 'm':+      goto yy323;+    case 'N':+    case 'n':+      goto yy322;+    case 'P':+    case 'p':+      goto yy320;+    case 'R':+    case 'r':+      goto yy319;+    case 'T':+    case 't':+      goto yy318;+    default:+      goto yy2;+    }+  yy11:+    yych = *(marker = ++p);+    if (yych <= 'D') {+      if (yych == 'A')+        goto yy312;+      if (yych <= 'C')+        goto yy2;+      goto yy311;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy2;+        goto yy312;+      } else {+        if (yych == 'd')+          goto yy311;+        goto yy2;+      }+    }+  yy12:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy278;+    case 'E':+    case 'e':+      goto yy277;+    case 'I':+    case 'i':+      goto yy280;+    case 'M':+    case 'm':+      goto yy276;+    case 'S':+    case 's':+      goto yy275;+    case 'T':+    case 't':+      goto yy279;+    case 'U':+    case 'u':+      goto yy274;+    case 'V':+    case 'v':+      goto yy273;+    default:+      goto yy2;+    }+  yy13:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy268;+    case 'F':+    case 'f':+      goto yy267;+    case 'I':+    case 'i':+      goto yy266;+    case 'N':+    case 'n':+      goto yy265;+    case 'O':+    case 'o':+      goto yy264;+    default:+      goto yy2;+    }+  yy14:+    yych = *(marker = ++p);+    if (yych <= 'P') {+      if (yych == 'I')+        goto yy250;+      if (yych <= 'O')+        goto yy2;+      goto yy251;+    } else {+      if (yych <= 'i') {+        if (yych <= 'h')+          goto yy2;+        goto yy250;+      } else {+        if (yych == 'p')+          goto yy251;+        goto yy2;+      }+    }+  yy15:+    yych = *(marker = ++p);+    if (yych <= 'S') {+      if (yych <= 'L') {+        if (yych == 'A')+          goto yy232;+        if (yych <= 'K')+          goto yy2;+        goto yy231;+      } else {+        if (yych <= 'O') {+          if (yych <= 'N')+            goto yy2;+          goto yy233;+        } else {+          if (yych <= 'Q')+            goto yy2;+          if (yych <= 'R')+            goto yy230;+          goto yy229;+        }+      }+    } else {+      if (yych <= 'n') {+        if (yych <= 'a') {+          if (yych <= '`')+            goto yy2;+          goto yy232;+        } else {+          if (yych == 'l')+            goto yy231;+          goto yy2;+        }+      } else {+        if (yych <= 'q') {+          if (yych <= 'o')+            goto yy233;+          goto yy2;+        } else {+          if (yych <= 'r')+            goto yy230;+          if (yych <= 's')+            goto yy229;+          goto yy2;+        }+      }+    }+  yy16:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'L') {+        if (yych == 'E')+          goto yy219;+        goto yy2;+      } else {+        if (yych <= 'M')+          goto yy218;+        if (yych <= 'R')+          goto yy2;+        if (yych <= 'S')+          goto yy217;+        goto yy216;+      }+    } else {+      if (yych <= 'm') {+        if (yych == 'e')+          goto yy219;+        if (yych <= 'l')+          goto yy2;+        goto yy218;+      } else {+        if (yych <= 'r')+          goto yy2;+        if (yych <= 's')+          goto yy217;+        if (yych <= 't')+          goto yy216;+        goto yy2;+      }+    }+  yy17:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy172;+    case 'F':+    case 'f':+      goto yy171;+    case 'G':+    case 'g':+      goto yy170;+    case 'H':+    case 'h':+      goto yy175;+    case 'I':+    case 'i':+      goto yy174;+    case 'K':+    case 'k':+      goto yy169;+    case 'M':+    case 'm':+      goto yy168;+    case 'N':+    case 'n':+      goto yy173;+    case 'O':+    case 'o':+      goto yy167;+    case 'P':+    case 'p':+      goto yy166;+    case 'S':+    case 's':+      goto yy165;+    case 'T':+    case 't':+      goto yy164;+    case 'V':+    case 'v':+      goto yy163;+    default:+      goto yy2;+    }+  yy18:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy139;+    case 'E':+    case 'e':+      goto yy135;+    case 'F':+    case 'f':+      goto yy138;+    case 'H':+    case 'h':+      goto yy134;+    case 'I':+    case 'i':+      goto yy136;+    case 'N':+    case 'n':+      goto yy137;+    case 'V':+    case 'v':+      goto yy41;+    default:+      goto yy2;+    }+  yy19:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'N') {+        if (yych == 'D')+          goto yy126;+        if (yych <= 'M')+          goto yy2;+        goto yy125;+      } else {+        if (yych == 'R')+          goto yy127;+        if (yych <= 'S')+          goto yy2;+        goto yy124;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'd')+          goto yy126;+        if (yych <= 'm')+          goto yy2;+        goto yy125;+      } else {+        if (yych <= 'r') {+          if (yych <= 'q')+            goto yy2;+          goto yy127;+        } else {+          if (yych == 't')+            goto yy124;+          goto yy2;+        }+      }+    }+  yy20:+    yych = *(marker = ++p);+    if (yych <= 'I') {+      if (yych == 'E')+        goto yy108;+      if (yych <= 'H')+        goto yy2;+      goto yy107;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy2;+        goto yy108;+      } else {+        if (yych == 'i')+          goto yy107;+        goto yy2;+      }+    }+  yy21:+    yych = *(marker = ++p);+    if (yych <= 'Y') {+      if (yych <= 'R') {+        if (yych == 'E')+          goto yy97;+        goto yy2;+      } else {+        if (yych <= 'S')+          goto yy98;+        if (yych <= 'T')+          goto yy96;+        if (yych <= 'X')+          goto yy2;+        goto yy95;+      }+    } else {+      if (yych <= 's') {+        if (yych == 'e')+          goto yy97;+        if (yych <= 'r')+          goto yy2;+        goto yy98;+      } else {+        if (yych <= 't')+          goto yy96;+        if (yych == 'y')+          goto yy95;+        goto yy2;+      }+    }+  yy22:+    yych = *(marker = ++p);+    if (yych <= 'R') {+      if (yych <= 'F') {+        if (yych == 'C')+          goto yy74;+        if (yych <= 'E')+          goto yy2;+        goto yy72;+      } else {+        if (yych == 'M')+          goto yy73;+        if (yych <= 'Q')+          goto yy2;+        goto yy71;+      }+    } else {+      if (yych <= 'f') {+        if (yych == 'c')+          goto yy74;+        if (yych <= 'e')+          goto yy2;+        goto yy72;+      } else {+        if (yych <= 'm') {+          if (yych <= 'l')+            goto yy2;+          goto yy73;+        } else {+          if (yych == 'r')+            goto yy71;+          goto yy2;+        }+      }+    }+  yy23:+    yych = *(marker = ++p);+    if (yych == '3')+      goto yy66;+    goto yy2;+  yy24:+    yych = *(marker = ++p);+    if (yych <= 'O') {+      if (yych <= 'H') {+        if (yych == 'E')+          goto yy56;+        goto yy2;+      } else {+        if (yych <= 'I')+          goto yy55;+        if (yych <= 'N')+          goto yy2;+        goto yy54;+      }+    } else {+      if (yych <= 'h') {+        if (yych == 'e')+          goto yy56;+        goto yy2;+      } else {+        if (yych <= 'i')+          goto yy55;+        if (yych == 'o')+          goto yy54;+        goto yy2;+      }+    }+  yy25:+    yych = *(marker = ++p);+    if (yych == 'D')+      goto yy52;+    if (yych == 'd')+      goto yy52;+    goto yy2;+  yy26:+    yych = *(marker = ++p);+    if (yych == 'E')+      goto yy47;+    if (yych == 'e')+      goto yy47;+    goto yy2;+  yy27:+    yych = *(marker = ++p);+    if (yych == 'U')+      goto yy44;+    if (yych == 'u')+      goto yy44;+    goto yy2;+  yy28:+    yych = *(marker = ++p);+    if (yych == 'M')+      goto yy38;+    if (yych == 'm')+      goto yy38;+    goto yy2;+  yy29:+    yych = *++p;+    goto yy2;+  yy30:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy31;+    if (yych <= 0xBF)+      goto yy29;+  yy31:+    p = marker;+    goto yy2;+  yy32:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy31;+    if (yych <= 0xBF)+      goto yy30;+    goto yy31;+  yy33:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy31;+    if (yych <= 0xBF)+      goto yy30;+    goto yy31;+  yy34:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy31;+    if (yych <= 0xBF)+      goto yy33;+    goto yy31;+  yy35:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy31;+    if (yych <= 0xBF)+      goto yy33;+    goto yy31;+  yy36:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy31;+    if (yych <= 0x8F)+      goto yy33;+    goto yy31;+  yy37:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy31;+    if (yych <= 0x9F)+      goto yy30;+    goto yy31;+  yy38:+    yych = *++p;+    if (yych == 'S')+      goto yy39;+    if (yych != 's')+      goto yy31;+  yy39:+    yych = *++p;+    if (yych == 'G')+      goto yy40;+    if (yych != 'g')+      goto yy31;+  yy40:+    yych = *++p;+    if (yych == 'R')+      goto yy41;+    if (yych != 'r')+      goto yy31;+  yy41:+    yych = *++p;+    if (yych != ':')+      goto yy31;+  yy42:+    ++p;+    { return (bufsize_t)(p - start); }+  yy44:+    yych = *++p;+    if (yych == 'E')+      goto yy45;+    if (yych != 'e')+      goto yy31;+  yy45:+    yych = *++p;+    if (yych == 'R')+      goto yy46;+    if (yych != 'r')+      goto yy31;+  yy46:+    yych = *++p;+    if (yych == 'Y')+      goto yy41;+    if (yych == 'y')+      goto yy41;+    goto yy31;+  yy47:+    yych = *++p;+    if (yych == 'Y')+      goto yy48;+    if (yych != 'y')+      goto yy31;+  yy48:+    yych = *++p;+    if (yych == 'P')+      goto yy49;+    if (yych != 'p')+      goto yy31;+  yy49:+    yych = *++p;+    if (yych == 'A')+      goto yy50;+    if (yych != 'a')+      goto yy31;+  yy50:+    yych = *++p;+    if (yych == 'R')+      goto yy51;+    if (yych != 'r')+      goto yy31;+  yy51:+    yych = *++p;+    if (yych == 'C')+      goto yy41;+    if (yych == 'c')+      goto yy41;+    goto yy31;+  yy52:+    yych = *++p;+    if (yych != '2')+      goto yy31;+    yych = *++p;+    if (yych == 'K')+      goto yy41;+    if (yych == 'k')+      goto yy41;+    goto yy31;+  yy54:+    yych = *++p;+    if (yych == 'L')+      goto yy65;+    if (yych == 'l')+      goto yy65;+    goto yy31;+  yy55:+    yych = *++p;+    if (yych == 'T')+      goto yy61;+    if (yych == 't')+      goto yy61;+    goto yy31;+  yy56:+    yych = *++p;+    if (yych == 'S')+      goto yy57;+    if (yych != 's')+      goto yy31;+  yy57:+    yych = *++p;+    if (yych == 'H')+      goto yy58;+    if (yych != 'h')+      goto yy31;+  yy58:+    yych = *++p;+    if (yych == 'A')+      goto yy59;+    if (yych != 'a')+      goto yy31;+  yy59:+    yych = *++p;+    if (yych == 'R')+      goto yy60;+    if (yych != 'r')+      goto yy31;+  yy60:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy61:+    yych = *++p;+    if (yych == 'C')+      goto yy62;+    if (yych != 'c')+      goto yy31;+  yy62:+    yych = *++p;+    if (yych == 'O')+      goto yy63;+    if (yych != 'o')+      goto yy31;+  yy63:+    yych = *++p;+    if (yych == 'I')+      goto yy64;+    if (yych != 'i')+      goto yy31;+  yy64:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy65:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy66:+    yych = *++p;+    if (yych != '9')+      goto yy31;+    yych = *++p;+    if (yych != '.')+      goto yy31;+    yych = *++p;+    if (yych != '5')+      goto yy31;+    yych = *++p;+    if (yych != '0')+      goto yy31;+    yych = *++p;+    if (yych <= 'Q')+      goto yy31;+    if (yych <= 'S')+      goto yy41;+    if (yych <= 'q')+      goto yy31;+    if (yych <= 's')+      goto yy41;+    goto yy31;+  yy71:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy72:+    yych = *++p;+    if (yych == 'I')+      goto yy93;+    if (yych == 'i')+      goto yy93;+    goto yy31;+  yy73:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy83;+      if (yych <= 'O')+        goto yy31;+      goto yy84;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy31;+        goto yy83;+      } else {+        if (yych == 'p')+          goto yy84;+        goto yy31;+      }+    }+  yy74:+    yych = *++p;+    if (yych == 'O')+      goto yy75;+    if (yych != 'o')+      goto yy31;+  yy75:+    yych = *++p;+    if (yych == 'N')+      goto yy76;+    if (yych != 'n')+      goto yy31;+  yy76:+    yych = *++p;+    if (yych == '-')+      goto yy77;+    if (yych == ':')+      goto yy42;+    goto yy31;+  yy77:+    yych = *++p;+    if (yych == 'U')+      goto yy78;+    if (yych != 'u')+      goto yy31;+  yy78:+    yych = *++p;+    if (yych == 'S')+      goto yy79;+    if (yych != 's')+      goto yy31;+  yy79:+    yych = *++p;+    if (yych == 'E')+      goto yy80;+    if (yych != 'e')+      goto yy31;+  yy80:+    yych = *++p;+    if (yych == 'R')+      goto yy81;+    if (yych != 'r')+      goto yy31;+  yy81:+    yych = *++p;+    if (yych == 'I')+      goto yy82;+    if (yych != 'i')+      goto yy31;+  yy82:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy83:+    yych = *++p;+    if (yych == 'R')+      goto yy85;+    if (yych == 'r')+      goto yy85;+    goto yy31;+  yy84:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy85:+    yych = *++p;+    if (yych == 'P')+      goto yy86;+    if (yych != 'p')+      goto yy31;+  yy86:+    yych = *++p;+    if (yych == 'C')+      goto yy87;+    if (yych != 'c')+      goto yy31;+  yy87:+    yych = *++p;+    if (yych != '.')+      goto yy31;+    yych = *++p;+    if (yych == 'B')+      goto yy89;+    if (yych != 'b')+      goto yy31;+  yy89:+    yych = *++p;+    if (yych == 'E')+      goto yy90;+    if (yych != 'e')+      goto yy31;+  yy90:+    yych = *++p;+    if (yych == 'E')+      goto yy91;+    if (yych != 'e')+      goto yy31;+  yy91:+    yych = *++p;+    if (yych == 'P')+      goto yy92;+    if (yych != 'p')+      goto yy31;+  yy92:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy93:+    yych = *++p;+    if (yych == 'R')+      goto yy94;+    if (yych != 'r')+      goto yy31;+  yy94:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy95:+    yych = *++p;+    if (yych == 'C')+      goto yy103;+    if (yych == 'c')+      goto yy103;+    goto yy31;+  yy96:+    yych = *++p;+    if (yych == 'A')+      goto yy102;+    if (yych == 'a')+      goto yy102;+    goto yy31;+  yy97:+    yych = *++p;+    if (yych == 'B')+      goto yy99;+    if (yych == 'b')+      goto yy99;+    goto yy31;+  yy98:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy99:+    yych = *++p;+    if (yych == 'C')+      goto yy100;+    if (yych != 'c')+      goto yy31;+  yy100:+    yych = *++p;+    if (yych == 'A')+      goto yy101;+    if (yych != 'a')+      goto yy31;+  yy101:+    yych = *++p;+    if (yych == 'L')+      goto yy41;+    if (yych == 'l')+      goto yy41;+    goto yy31;+  yy102:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy103:+    yych = *++p;+    if (yych == 'I')+      goto yy104;+    if (yych != 'i')+      goto yy31;+  yy104:+    yych = *++p;+    if (yych == 'W')+      goto yy105;+    if (yych != 'w')+      goto yy31;+  yy105:+    yych = *++p;+    if (yych == 'Y')+      goto yy106;+    if (yych != 'y')+      goto yy31;+  yy106:+    yych = *++p;+    if (yych == 'G')+      goto yy41;+    if (yych == 'g')+      goto yy41;+    goto yy31;+  yy107:+    yych = *++p;+    if (yych == 'E')+      goto yy116;+    if (yych == 'e')+      goto yy116;+    goto yy31;+  yy108:+    yych = *++p;+    if (yych <= 'N') {+      if (yych <= 'L')+        goto yy31;+      if (yych >= 'N')+        goto yy110;+    } else {+      if (yych <= 'l')+        goto yy31;+      if (yych <= 'm')+        goto yy109;+      if (yych <= 'n')+        goto yy110;+      goto yy31;+    }+  yy109:+    yych = *++p;+    if (yych == 'M')+      goto yy115;+    if (yych == 'm')+      goto yy115;+    goto yy31;+  yy110:+    yych = *++p;+    if (yych == 'T')+      goto yy111;+    if (yych != 't')+      goto yy31;+  yy111:+    yych = *++p;+    if (yych == 'R')+      goto yy112;+    if (yych != 'r')+      goto yy31;+  yy112:+    yych = *++p;+    if (yych == 'I')+      goto yy113;+    if (yych != 'i')+      goto yy31;+  yy113:+    yych = *++p;+    if (yych == 'L')+      goto yy114;+    if (yych != 'l')+      goto yy31;+  yy114:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy115:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy116:+    yych = *++p;+    if (yych == 'W')+      goto yy117;+    if (yych != 'w')+      goto yy31;+  yy117:+    yych = *++p;+    if (yych != '-')+      goto yy31;+    yych = *++p;+    if (yych == 'S')+      goto yy119;+    if (yych != 's')+      goto yy31;+  yy119:+    yych = *++p;+    if (yych == 'O')+      goto yy120;+    if (yych != 'o')+      goto yy31;+  yy120:+    yych = *++p;+    if (yych == 'U')+      goto yy121;+    if (yych != 'u')+      goto yy31;+  yy121:+    yych = *++p;+    if (yych == 'R')+      goto yy122;+    if (yych != 'r')+      goto yy31;+  yy122:+    yych = *++p;+    if (yych == 'C')+      goto yy123;+    if (yych != 'c')+      goto yy31;+  yy123:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy124:+    yych = *++p;+    if (yych == '2')+      goto yy131;+    goto yy31;+  yy125:+    yych = *++p;+    if (yych == 'R')+      goto yy128;+    if (yych == 'r')+      goto yy128;+    goto yy31;+  yy126:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy127:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy128:+    yych = *++p;+    if (yych == 'E')+      goto yy129;+    if (yych != 'e')+      goto yy31;+  yy129:+    yych = *++p;+    if (yych == 'A')+      goto yy130;+    if (yych != 'a')+      goto yy31;+  yy130:+    yych = *++p;+    if (yych == 'L')+      goto yy41;+    if (yych == 'l')+      goto yy41;+    goto yy31;+  yy131:+    yych = *++p;+    if (yych != '0')+      goto yy31;+    yych = *++p;+    if (yych != '0')+      goto yy31;+    yych = *++p;+    if (yych == '4')+      goto yy41;+    goto yy31;+  yy134:+    yych = *++p;+    if (yych == 'I')+      goto yy153;+    if (yych == 'i')+      goto yy153;+    goto yy31;+  yy135:+    yych = *++p;+    if (yych <= 'L') {+      if (yych == 'A')+        goto yy145;+      if (yych <= 'K')+        goto yy31;+      goto yy144;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy31;+        goto yy145;+      } else {+        if (yych == 'l')+          goto yy144;+        goto yy31;+      }+    }+  yy136:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy137:+    yych = *++p;+    if (yych == '3')+      goto yy141;+    goto yy31;+  yy138:+    yych = *++p;+    if (yych == 'T')+      goto yy140;+    if (yych == 't')+      goto yy140;+    goto yy31;+  yy139:+    yych = *++p;+    if (yych == 'G')+      goto yy41;+    if (yych == 'g')+      goto yy41;+    goto yy31;+  yy140:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy141:+    yych = *++p;+    if (yych != '2')+      goto yy31;+    yych = *++p;+    if (yych != '7')+      goto yy31;+    yych = *++p;+    if (yych == '0')+      goto yy41;+    goto yy31;+  yy144:+    yych = *++p;+    if (yych <= 'M') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'N')+        goto yy151;+      if (yych == 'n')+        goto yy151;+      goto yy31;+    }+  yy145:+    yych = *++p;+    if (yych == 'M')+      goto yy146;+    if (yych != 'm')+      goto yy31;+  yy146:+    yych = *++p;+    if (yych == 'S')+      goto yy147;+    if (yych != 's')+      goto yy31;+  yy147:+    yych = *++p;+    if (yych == 'P')+      goto yy148;+    if (yych != 'p')+      goto yy31;+  yy148:+    yych = *++p;+    if (yych == 'E')+      goto yy149;+    if (yych != 'e')+      goto yy31;+  yy149:+    yych = *++p;+    if (yych == 'A')+      goto yy150;+    if (yych != 'a')+      goto yy31;+  yy150:+    yych = *++p;+    if (yych == 'K')+      goto yy41;+    if (yych == 'k')+      goto yy41;+    goto yy31;+  yy151:+    yych = *++p;+    if (yych == 'E')+      goto yy152;+    if (yych != 'e')+      goto yy31;+  yy152:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy153:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'N')+        goto yy154;+      if (yych <= 'R')+        goto yy31;+      goto yy155;+    } else {+      if (yych <= 'n') {+        if (yych <= 'm')+          goto yy31;+      } else {+        if (yych == 's')+          goto yy155;+        goto yy31;+      }+    }+  yy154:+    yych = *++p;+    if (yych == 'G')+      goto yy162;+    if (yych == 'g')+      goto yy162;+    goto yy31;+  yy155:+    yych = *++p;+    if (yych == 'M')+      goto yy156;+    if (yych != 'm')+      goto yy31;+  yy156:+    yych = *++p;+    if (yych == 'E')+      goto yy157;+    if (yych != 'e')+      goto yy31;+  yy157:+    yych = *++p;+    if (yych == 'S')+      goto yy158;+    if (yych != 's')+      goto yy31;+  yy158:+    yych = *++p;+    if (yych == 'S')+      goto yy159;+    if (yych != 's')+      goto yy31;+  yy159:+    yych = *++p;+    if (yych == 'A')+      goto yy160;+    if (yych != 'a')+      goto yy31;+  yy160:+    yych = *++p;+    if (yych == 'G')+      goto yy161;+    if (yych != 'g')+      goto yy31;+  yy161:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy162:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy163:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy164:+    yych = *++p;+    if (yych == 'E')+      goto yy214;+    if (yych == 'e')+      goto yy214;+    goto yy31;+  yy165:+    yych = *++p;+    if (yych == 'H')+      goto yy41;+    if (yych == 'h')+      goto yy41;+    goto yy31;+  yy166:+    yych = *++p;+    if (yych == 'O')+      goto yy210;+    if (yych == 'o')+      goto yy210;+    goto yy31;+  yy167:+    yych = *++p;+    if (yych <= 'L') {+      if (yych == 'A')+        goto yy200;+      if (yych <= 'K')+        goto yy31;+      goto yy201;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy31;+        goto yy200;+      } else {+        if (yych == 'l')+          goto yy201;+        goto yy31;+      }+    }+  yy168:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'B')+        goto yy41;+      if (yych <= 'R')+        goto yy31;+      goto yy41;+    } else {+      if (yych <= 'b') {+        if (yych <= 'a')+          goto yy31;+        goto yy41;+      } else {+        if (yych == 's')+          goto yy41;+        goto yy31;+      }+    }+  yy169:+    yych = *++p;+    if (yych == 'Y')+      goto yy198;+    if (yych == 'y')+      goto yy198;+    goto yy31;+  yy170:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy171:+    yych = *++p;+    if (yych == 'T')+      goto yy197;+    if (yych == 't')+      goto yy197;+    goto yy31;+  yy172:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'C') {+        if (yych <= 'B')+          goto yy31;+        goto yy184;+      } else {+        if (yych <= 'Q')+          goto yy31;+        if (yych <= 'R')+          goto yy182;+        goto yy183;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'c')+          goto yy184;+        goto yy31;+      } else {+        if (yych <= 'r')+          goto yy182;+        if (yych <= 's')+          goto yy183;+        goto yy31;+      }+    }+  yy173:+    yych = *++p;+    if (yych == 'M')+      goto yy181;+    if (yych == 'm')+      goto yy181;+    goto yy31;+  yy174:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'E')+        goto yy178;+      if (yych <= 'O')+        goto yy31;+      goto yy179;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy31;+        goto yy178;+      } else {+        if (yych == 'p')+          goto yy179;+        goto yy31;+      }+    }+  yy175:+    yych = *++p;+    if (yych == 'T')+      goto yy176;+    if (yych != 't')+      goto yy31;+  yy176:+    yych = *++p;+    if (yych == 'T')+      goto yy177;+    if (yych != 't')+      goto yy31;+  yy177:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy178:+    yych = *++p;+    if (yych == 'V')+      goto yy180;+    if (yych == 'v')+      goto yy180;+    goto yy31;+  yy179:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy180:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy181:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy182:+    yych = *++p;+    if (yych == 'V')+      goto yy194;+    if (yych == 'v')+      goto yy194;+    goto yy31;+  yy183:+    yych = *++p;+    if (yych == 'S')+      goto yy191;+    if (yych == 's')+      goto yy191;+    goto yy31;+  yy184:+    yych = *++p;+    if (yych == 'O')+      goto yy185;+    if (yych != 'o')+      goto yy31;+  yy185:+    yych = *++p;+    if (yych == 'N')+      goto yy186;+    if (yych != 'n')+      goto yy31;+  yy186:+    yych = *++p;+    if (yych == 'D')+      goto yy187;+    if (yych != 'd')+      goto yy31;+  yy187:+    yych = *++p;+    if (yych == 'L')+      goto yy188;+    if (yych != 'l')+      goto yy31;+  yy188:+    yych = *++p;+    if (yych == 'I')+      goto yy189;+    if (yych != 'i')+      goto yy31;+  yy189:+    yych = *++p;+    if (yych == 'F')+      goto yy190;+    if (yych != 'f')+      goto yy31;+  yy190:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy191:+    yych = *++p;+    if (yych == 'I')+      goto yy192;+    if (yych != 'i')+      goto yy31;+  yy192:+    yych = *++p;+    if (yych == 'O')+      goto yy193;+    if (yych != 'o')+      goto yy31;+  yy193:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy194:+    yych = *++p;+    if (yych == 'I')+      goto yy195;+    if (yych != 'i')+      goto yy31;+  yy195:+    yych = *++p;+    if (yych == 'C')+      goto yy196;+    if (yych != 'c')+      goto yy31;+  yy196:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy197:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy198:+    yych = *++p;+    if (yych == 'P')+      goto yy199;+    if (yych != 'p')+      goto yy31;+  yy199:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy200:+    yych = *++p;+    if (yych == 'P')+      goto yy204;+    if (yych == 'p')+      goto yy204;+    goto yy31;+  yy201:+    yych = *++p;+    if (yych == 'D')+      goto yy202;+    if (yych != 'd')+      goto yy31;+  yy202:+    yych = *++p;+    if (yych == 'A')+      goto yy203;+    if (yych != 'a')+      goto yy31;+  yy203:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy204:+    yych = *++p;+    if (yych != '.')+      goto yy31;+    yych = *++p;+    if (yych == 'B')+      goto yy206;+    if (yych != 'b')+      goto yy31;+  yy206:+    yych = *++p;+    if (yych == 'E')+      goto yy207;+    if (yych != 'e')+      goto yy31;+  yy207:+    yych = *++p;+    if (yych == 'E')+      goto yy208;+    if (yych != 'e')+      goto yy31;+  yy208:+    yych = *++p;+    if (yych == 'P')+      goto yy209;+    if (yych != 'p')+      goto yy31;+  yy209:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy210:+    yych = *++p;+    if (yych == 'T')+      goto yy211;+    if (yych != 't')+      goto yy31;+  yy211:+    yych = *++p;+    if (yych == 'I')+      goto yy212;+    if (yych != 'i')+      goto yy31;+  yy212:+    yych = *++p;+    if (yych == 'F')+      goto yy213;+    if (yych != 'f')+      goto yy31;+  yy213:+    yych = *++p;+    if (yych == 'Y')+      goto yy41;+    if (yych == 'y')+      goto yy41;+    goto yy31;+  yy214:+    yych = *++p;+    if (yych == 'A')+      goto yy215;+    if (yych != 'a')+      goto yy31;+  yy215:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy216:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'M')+        goto yy228;+      if (yych <= 'R')+        goto yy31;+      goto yy227;+    } else {+      if (yych <= 'm') {+        if (yych <= 'l')+          goto yy31;+        goto yy228;+      } else {+        if (yych == 's')+          goto yy227;+        goto yy31;+      }+    }+  yy217:+    yych = *++p;+    if (yych == 'Y')+      goto yy225;+    if (yych == 'y')+      goto yy225;+    goto yy31;+  yy218:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy219:+    yych = *++p;+    if (yych == 'S')+      goto yy220;+    if (yych != 's')+      goto yy31;+  yy220:+    yych = *++p;+    if (yych <= 'N') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'O')+        goto yy221;+      if (yych != 'o')+        goto yy31;+    }+  yy221:+    yych = *++p;+    if (yych == 'U')+      goto yy222;+    if (yych != 'u')+      goto yy31;+  yy222:+    yych = *++p;+    if (yych == 'R')+      goto yy223;+    if (yych != 'r')+      goto yy31;+  yy223:+    yych = *++p;+    if (yych == 'C')+      goto yy224;+    if (yych != 'c')+      goto yy31;+  yy224:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy225:+    yych = *++p;+    if (yych == 'N')+      goto yy226;+    if (yych != 'n')+      goto yy31;+  yy226:+    yych = *++p;+    if (yych == 'C')+      goto yy41;+    if (yych == 'c')+      goto yy41;+    goto yy31;+  yy227:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy228:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy229:+    yych = *++p;+    if (yych == 'Y')+      goto yy249;+    if (yych == 'y')+      goto yy249;+    goto yy31;+  yy230:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'E')+        goto yy246;+      if (yych <= 'N')+        goto yy31;+      goto yy247;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy31;+        goto yy246;+      } else {+        if (yych == 'o')+          goto yy247;+        goto yy31;+      }+    }+  yy231:+    yych = *++p;+    if (yych == 'A')+      goto yy241;+    if (yych == 'a')+      goto yy241;+    goto yy31;+  yy232:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy234;+      if (yych <= 'O')+        goto yy31;+      goto yy235;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy31;+        goto yy234;+      } else {+        if (yych == 'p')+          goto yy235;+        goto yy31;+      }+    }+  yy233:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy234:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy235:+    yych = *++p;+    if (yych == 'A')+      goto yy236;+    if (yych != 'a')+      goto yy31;+  yy236:+    yych = *++p;+    if (yych == 'R')+      goto yy237;+    if (yych != 'r')+      goto yy31;+  yy237:+    yych = *++p;+    if (yych == 'A')+      goto yy238;+    if (yych != 'a')+      goto yy31;+  yy238:+    yych = *++p;+    if (yych == 'Z')+      goto yy239;+    if (yych != 'z')+      goto yy31;+  yy239:+    yych = *++p;+    if (yych == 'Z')+      goto yy240;+    if (yych != 'z')+      goto yy31;+  yy240:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy241:+    yych = *++p;+    if (yych == 'T')+      goto yy242;+    if (yych != 't')+      goto yy31;+  yy242:+    yych = *++p;+    if (yych == 'F')+      goto yy243;+    if (yych != 'f')+      goto yy31;+  yy243:+    yych = *++p;+    if (yych == 'O')+      goto yy244;+    if (yych != 'o')+      goto yy31;+  yy244:+    yych = *++p;+    if (yych == 'R')+      goto yy245;+    if (yych != 'r')+      goto yy31;+  yy245:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy246:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy247:+    yych = *++p;+    if (yych == 'X')+      goto yy248;+    if (yych != 'x')+      goto yy31;+  yy248:+    yych = *++p;+    if (yych == 'Y')+      goto yy41;+    if (yych == 'y')+      goto yy41;+    goto yy31;+  yy249:+    yych = *++p;+    if (yych == 'C')+      goto yy41;+    if (yych == 'c')+      goto yy41;+    goto yy31;+  yy250:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy251:+    yych = *++p;+    if (yych == 'A')+      goto yy252;+    if (yych != 'a')+      goto yy31;+  yy252:+    yych = *++p;+    if (yych == 'Q')+      goto yy253;+    if (yych != 'q')+      goto yy31;+  yy253:+    yych = *++p;+    if (yych == 'U')+      goto yy254;+    if (yych != 'u')+      goto yy31;+  yy254:+    yych = *++p;+    if (yych == 'E')+      goto yy255;+    if (yych != 'e')+      goto yy31;+  yy255:+    yych = *++p;+    if (yych == 'L')+      goto yy256;+    if (yych != 'l')+      goto yy31;+  yy256:+    yych = *++p;+    if (yych == 'O')+      goto yy257;+    if (yych != 'o')+      goto yy31;+  yy257:+    yych = *++p;+    if (yych == 'C')+      goto yy258;+    if (yych != 'c')+      goto yy31;+  yy258:+    yych = *++p;+    if (yych == 'K')+      goto yy259;+    if (yych != 'k')+      goto yy31;+  yy259:+    yych = *++p;+    if (yych == 'T')+      goto yy260;+    if (yych != 't')+      goto yy31;+  yy260:+    yych = *++p;+    if (yych == 'O')+      goto yy261;+    if (yych != 'o')+      goto yy31;+  yy261:+    yych = *++p;+    if (yych == 'K')+      goto yy262;+    if (yych != 'k')+      goto yy31;+  yy262:+    yych = *++p;+    if (yych == 'E')+      goto yy263;+    if (yych != 'e')+      goto yy31;+  yy263:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy264:+    yych = *++p;+    if (yych == 'T')+      goto yy271;+    if (yych == 't')+      goto yy271;+    goto yy31;+  yy265:+    yych = *++p;+    if (yych == 'T')+      goto yy270;+    if (yych == 't')+      goto yy270;+    goto yy31;+  yy266:+    yych = *++p;+    if (yych <= 'G') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'H')+        goto yy41;+      if (yych == 'h')+        goto yy41;+      goto yy31;+    }+  yy267:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy268:+    yych = *++p;+    if (yych == 'W')+      goto yy269;+    if (yych != 'w')+      goto yy31;+  yy269:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy270:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy271:+    yych = *++p;+    if (yych == 'E')+      goto yy272;+    if (yych != 'e')+      goto yy31;+  yy272:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy273:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy274:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'M')+        goto yy305;+      if (yych <= 'O')+        goto yy31;+      goto yy304;+    } else {+      if (yych <= 'm') {+        if (yych <= 'l')+          goto yy31;+        goto yy305;+      } else {+        if (yych == 'p')+          goto yy304;+        goto yy31;+      }+    }+  yy275:+    yych = *++p;+    if (yych <= 'Q') {+      if (yych <= '-') {+        if (yych <= ',')+          goto yy31;+        goto yy297;+      } else {+        if (yych == 'N')+          goto yy298;+        goto yy31;+      }+    } else {+      if (yych <= 'n') {+        if (yych <= 'R')+          goto yy296;+        if (yych <= 'm')+          goto yy31;+        goto yy298;+      } else {+        if (yych == 'r')+          goto yy296;+        goto yy31;+      }+    }+  yy276:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy277:+    yych = *++p;+    if (yych == 'S')+      goto yy292;+    if (yych == 's')+      goto yy292;+    goto yy31;+  yy278:+    yych = *++p;+    switch (yych) {+    case 'G':+    case 'g':+      goto yy283;+    case 'I':+    case 'i':+      goto yy282;+    case 'P':+    case 'p':+      goto yy284;+    case 'R':+    case 'r':+      goto yy285;+    default:+      goto yy31;+    }+  yy279:+    yych = *++p;+    if (yych == 'Q')+      goto yy281;+    if (yych == 'q')+      goto yy281;+    goto yy31;+  yy280:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy281:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy282:+    yych = *++p;+    if (yych == 'L')+      goto yy290;+    if (yych == 'l')+      goto yy290;+    goto yy31;+  yy283:+    yych = *++p;+    if (yych == 'N')+      goto yy288;+    if (yych == 'n')+      goto yy288;+    goto yy31;+  yy284:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy285:+    yych = *++p;+    if (yych == 'K')+      goto yy286;+    if (yych != 'k')+      goto yy31;+  yy286:+    yych = *++p;+    if (yych == 'E')+      goto yy287;+    if (yych != 'e')+      goto yy31;+  yy287:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy288:+    yych = *++p;+    if (yych == 'E')+      goto yy289;+    if (yych != 'e')+      goto yy31;+  yy289:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy290:+    yych = *++p;+    if (yych == 'T')+      goto yy291;+    if (yych != 't')+      goto yy31;+  yy291:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy292:+    yych = *++p;+    if (yych == 'S')+      goto yy293;+    if (yych != 's')+      goto yy31;+  yy293:+    yych = *++p;+    if (yych == 'A')+      goto yy294;+    if (yych != 'a')+      goto yy31;+  yy294:+    yych = *++p;+    if (yych == 'G')+      goto yy295;+    if (yych != 'g')+      goto yy31;+  yy295:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy296:+    yych = *++p;+    if (yych == 'P')+      goto yy303;+    if (yych == 'p')+      goto yy303;+    goto yy31;+  yy297:+    yych = *++p;+    if (yych == 'H')+      goto yy300;+    if (yych == 'h')+      goto yy300;+    goto yy31;+  yy298:+    yych = *++p;+    if (yych == 'I')+      goto yy299;+    if (yych != 'i')+      goto yy31;+  yy299:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy300:+    yych = *++p;+    if (yych == 'E')+      goto yy301;+    if (yych != 'e')+      goto yy31;+  yy301:+    yych = *++p;+    if (yych == 'L')+      goto yy302;+    if (yych != 'l')+      goto yy31;+  yy302:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy303:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy304:+    yych = *++p;+    if (yych == 'D')+      goto yy308;+    if (yych == 'd')+      goto yy308;+    goto yy31;+  yy305:+    yych = *++p;+    if (yych == 'B')+      goto yy306;+    if (yych != 'b')+      goto yy31;+  yy306:+    yych = *++p;+    if (yych == 'L')+      goto yy307;+    if (yych != 'l')+      goto yy31;+  yy307:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy308:+    yych = *++p;+    if (yych == 'A')+      goto yy309;+    if (yych != 'a')+      goto yy31;+  yy309:+    yych = *++p;+    if (yych == 'T')+      goto yy310;+    if (yych != 't')+      goto yy31;+  yy310:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy311:+    yych = *++p;+    if (yych == 'A')+      goto yy316;+    if (yych == 'a')+      goto yy316;+    goto yy31;+  yy312:+    yych = *++p;+    if (yych == 'S')+      goto yy313;+    if (yych != 's')+      goto yy31;+  yy313:+    yych = *++p;+    if (yych == 'T')+      goto yy314;+    if (yych != 't')+      goto yy31;+  yy314:+    yych = *++p;+    if (yych == 'F')+      goto yy315;+    if (yych != 'f')+      goto yy31;+  yy315:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy316:+    yych = *++p;+    if (yych == 'P')+      goto yy317;+    if (yych != 'p')+      goto yy31;+  yy317:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy318:+    yych = *++p;+    if (yych == 'M')+      goto yy341;+    if (yych == 'm')+      goto yy341;+    goto yy31;+  yy319:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'C')+        goto yy330;+      if (yych <= 'H')+        goto yy31;+      goto yy329;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy31;+        goto yy330;+      } else {+        if (yych == 'i')+          goto yy329;+        goto yy31;+      }+    }+  yy320:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'N')+        goto yy41;+      if (yych <= 'O')+        goto yy31;+      goto yy41;+    } else {+      if (yych <= 'n') {+        if (yych <= 'm')+          goto yy31;+        goto yy41;+      } else {+        if (yych == 'p')+          goto yy41;+        goto yy31;+      }+    }+  yy321:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'A')+        goto yy327;+      if (yych <= 'N')+        goto yy31;+      goto yy328;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy31;+        goto yy327;+      } else {+        if (yych == 'o')+          goto yy328;+        goto yy31;+      }+    }+  yy322:+    yych = *++p;+    if (yych == 'F')+      goto yy326;+    if (yych == 'f')+      goto yy326;+    goto yy31;+  yy323:+    yych = *++p;+    if (yych <= '@') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'A')+        goto yy325;+      if (yych == 'a')+        goto yy325;+      goto yy31;+    }+  yy324:+    yych = *++p;+    if (yych == 'X')+      goto yy41;+    if (yych == 'x')+      goto yy41;+    goto yy31;+  yy325:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy326:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy327:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy328:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy329:+    yych = *++p;+    if (yych == 'S')+      goto yy331;+    if (yych == 's')+      goto yy331;+    goto yy31;+  yy330:+    yych = *++p;+    if (yych <= ':') {+      if (yych == '6')+        goto yy41;+      if (yych <= '9')+        goto yy31;+      goto yy42;+    } else {+      if (yych <= 'S') {+        if (yych <= 'R')+          goto yy31;+        goto yy41;+      } else {+        if (yych == 's')+          goto yy41;+        goto yy31;+      }+    }+  yy331:+    yych = *++p;+    if (yych == '.')+      goto yy332;+    if (yych == ':')+      goto yy42;+    goto yy31;+  yy332:+    yych = *++p;+    if (yych <= 'X') {+      if (yych <= 'K') {+        if (yych == 'B')+          goto yy335;+        goto yy31;+      } else {+        if (yych <= 'L')+          goto yy333;+        if (yych <= 'W')+          goto yy31;+        goto yy334;+      }+    } else {+      if (yych <= 'k') {+        if (yych == 'b')+          goto yy335;+        goto yy31;+      } else {+        if (yych <= 'l')+          goto yy333;+        if (yych == 'x')+          goto yy334;+        goto yy31;+      }+    }+  yy333:+    yych = *++p;+    if (yych == 'W')+      goto yy340;+    if (yych == 'w')+      goto yy340;+    goto yy31;+  yy334:+    yych = *++p;+    if (yych == 'P')+      goto yy338;+    if (yych == 'p')+      goto yy338;+    goto yy31;+  yy335:+    yych = *++p;+    if (yych == 'E')+      goto yy336;+    if (yych != 'e')+      goto yy31;+  yy336:+    yych = *++p;+    if (yych == 'E')+      goto yy337;+    if (yych != 'e')+      goto yy31;+  yy337:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy338:+    yych = *++p;+    if (yych == 'C')+      goto yy339;+    if (yych != 'c')+      goto yy31;+  yy339:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy340:+    yych = *++p;+    if (yych == 'Z')+      goto yy41;+    if (yych == 'z')+      goto yy41;+    goto yy31;+  yy341:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy342:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy343:+    yych = *++p;+    if (yych == 'T')+      goto yy346;+    if (yych == 't')+      goto yy346;+    goto yy31;+  yy344:+    yych = *++p;+    if (yych != '2')+      goto yy31;+    yych = *++p;+    if (yych == '3')+      goto yy41;+    goto yy31;+  yy346:+    yych = *++p;+    if (yych == 'P')+      goto yy347;+    if (yych != 'p')+      goto yy31;+  yy347:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy348:+    yych = *++p;+    if (yych == 'A')+      goto yy364;+    if (yych == 'a')+      goto yy364;+    goto yy31;+  yy349:+    yych = *++p;+    if (yych <= 'Z') {+      if (yych == 'T')+        goto yy41;+      if (yych <= 'Y')+        goto yy31;+      goto yy355;+    } else {+      if (yych <= 't') {+        if (yych <= 's')+          goto yy31;+        goto yy41;+      } else {+        if (yych == 'z')+          goto yy355;+        goto yy31;+      }+    }+  yy350:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'P')+        goto yy352;+      if (yych == 'p')+        goto yy352;+      goto yy31;+    }+  yy351:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy352:+    yych = *++p;+    if (yych == 'H')+      goto yy353;+    if (yych != 'h')+      goto yy31;+  yy353:+    yych = *++p;+    if (yych == 'E')+      goto yy354;+    if (yych != 'e')+      goto yy31;+  yy354:+    yych = *++p;+    if (yych == 'R')+      goto yy41;+    if (yych == 'r')+      goto yy41;+    goto yy31;+  yy355:+    yych = *++p;+    if (yych == 'M')+      goto yy356;+    if (yych != 'm')+      goto yy31;+  yy356:+    yych = *++p;+    if (yych == 'O')+      goto yy357;+    if (yych != 'o')+      goto yy31;+  yy357:+    yych = *++p;+    if (yych == 'P')+      goto yy358;+    if (yych != 'p')+      goto yy31;+  yy358:+    yych = *++p;+    if (yych == 'R')+      goto yy359;+    if (yych != 'r')+      goto yy31;+  yy359:+    yych = *++p;+    if (yych == 'O')+      goto yy360;+    if (yych != 'o')+      goto yy31;+  yy360:+    yych = *++p;+    if (yych == 'J')+      goto yy361;+    if (yych != 'j')+      goto yy31;+  yy361:+    yych = *++p;+    if (yych == 'E')+      goto yy362;+    if (yych != 'e')+      goto yy31;+  yy362:+    yych = *++p;+    if (yych == 'C')+      goto yy363;+    if (yych != 'c')+      goto yy31;+  yy363:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy364:+    yych = *++p;+    if (yych == 'L')+      goto yy365;+    if (yych != 'l')+      goto yy31;+  yy365:+    yych = *++p;+    if (yych == 'K')+      goto yy41;+    if (yych == 'k')+      goto yy41;+    goto yy31;+  yy366:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'M') {+        if (yych == 'L')+          goto yy376;+        goto yy31;+      } else {+        if (yych <= 'N')+          goto yy377;+        if (yych <= 'R')+          goto yy31;+        goto yy378;+      }+    } else {+      if (yych <= 'm') {+        if (yych == 'l')+          goto yy376;+        goto yy31;+      } else {+        if (yych <= 'n')+          goto yy377;+        if (yych == 's')+          goto yy378;+        goto yy31;+      }+    }+  yy367:+    yych = *++p;+    if (yych == 'E')+      goto yy375;+    if (yych == 'e')+      goto yy375;+    goto yy31;+  yy368:+    yych = *++p;+    if (yych == 'C')+      goto yy370;+    if (yych == 'c')+      goto yy370;+    goto yy31;+  yy369:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy370:+    yych = *++p;+    if (yych == 'E')+      goto yy371;+    if (yych != 'e')+      goto yy31;+  yy371:+    yych = *++p;+    if (yych == 'T')+      goto yy372;+    if (yych != 't')+      goto yy31;+  yy372:+    yych = *++p;+    if (yych == 'I')+      goto yy373;+    if (yych != 'i')+      goto yy31;+  yy373:+    yych = *++p;+    if (yych == 'M')+      goto yy374;+    if (yych != 'm')+      goto yy31;+  yy374:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy375:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy376:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy377:+    yych = *++p;+    if (yych == 'G')+      goto yy379;+    if (yych == 'g')+      goto yy379;+    goto yy31;+  yy378:+    yych = *++p;+    if (yych == 'H')+      goto yy41;+    if (yych == 'h')+      goto yy41;+    goto yy31;+  yy379:+    yych = *++p;+    if (yych == 'E')+      goto yy380;+    if (yych != 'e')+      goto yy31;+  yy380:+    yych = *++p;+    if (yych == 'R')+      goto yy41;+    if (yych == 'r')+      goto yy41;+    goto yy31;+  yy381:+    yych = *++p;+    if (yych == 'T')+      goto yy399;+    if (yych == 't')+      goto yy399;+    goto yy31;+  yy382:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy383:+    yych = *++p;+    if (yych == 'M')+      goto yy41;+    if (yych == 'm')+      goto yy41;+    goto yy31;+  yy384:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'P')+        goto yy41;+      if (yych <= 'R')+        goto yy31;+      goto yy41;+    } else {+      if (yych <= 'p') {+        if (yych <= 'o')+          goto yy31;+        goto yy41;+      } else {+        if (yych == 's')+          goto yy41;+        goto yy31;+      }+    }+  yy385:+    yych = *++p;+    if (yych == 'I')+      goto yy393;+    if (yych == 'i')+      goto yy393;+    goto yy31;+  yy386:+    yych = *++p;+    if (yych == 'A')+      goto yy392;+    if (yych == 'a')+      goto yy392;+    goto yy31;+  yy387:+    yych = *++p;+    if (yych == 'O')+      goto yy390;+    if (yych == 'o')+      goto yy390;+    goto yy31;+  yy388:+    yych = *++p;+    if (yych == 'A')+      goto yy389;+    if (yych != 'a')+      goto yy31;+  yy389:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy42;+      goto yy31;+    } else {+      if (yych <= 'S')+        goto yy41;+      if (yych == 's')+        goto yy41;+      goto yy31;+    }+  yy390:+    yych = *++p;+    if (yych == 'U')+      goto yy391;+    if (yych != 'u')+      goto yy31;+  yy391:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy392:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy393:+    yych = *++p;+    if (yych == 'U')+      goto yy394;+    if (yych != 'u')+      goto yy31;+  yy394:+    yych = *++p;+    if (yych == 'M')+      goto yy395;+    if (yych != 'm')+      goto yy31;+  yy395:+    yych = *++p;+    if (yych == 'X')+      goto yy396;+    if (yych != 'x')+      goto yy31;+  yy396:+    yych = *++p;+    if (yych == 'T')+      goto yy397;+    if (yych != 't')+      goto yy31;+  yy397:+    yych = *++p;+    if (yych == 'R')+      goto yy398;+    if (yych != 'r')+      goto yy31;+  yy398:+    yych = *++p;+    if (yych == 'A')+      goto yy41;+    if (yych == 'a')+      goto yy41;+    goto yy31;+  yy399:+    yych = *++p;+    if (yych == 'A')+      goto yy400;+    if (yych != 'a')+      goto yy31;+  yy400:+    yych = *++p;+    if (yych == 'C')+      goto yy401;+    if (yych != 'c')+      goto yy31;+  yy401:+    yych = *++p;+    if (yych == 'H')+      goto yy402;+    if (yych != 'h')+      goto yy31;+  yy402:+    yych = *++p;+    if (yych == 'M')+      goto yy403;+    if (yych != 'm')+      goto yy31;+  yy403:+    yych = *++p;+    if (yych == 'E')+      goto yy404;+    if (yych != 'e')+      goto yy31;+  yy404:+    yych = *++p;+    if (yych == 'N')+      goto yy405;+    if (yych != 'n')+      goto yy31;+  yy405:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy406:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy407:+    yych = *++p;+    if (yych <= 'V') {+      if (yych == 'R')+        goto yy41;+      if (yych <= 'U')+        goto yy31;+    } else {+      if (yych <= 'r') {+        if (yych <= 'q')+          goto yy31;+        goto yy41;+      } else {+        if (yych != 'v')+          goto yy31;+      }+    }+    yych = *++p;+    if (yych == 'A')+      goto yy409;+    if (yych != 'a')+      goto yy31;+  yy409:+    yych = *++p;+    if (yych == 'S')+      goto yy410;+    if (yych != 's')+      goto yy31;+  yy410:+    yych = *++p;+    if (yych == 'C')+      goto yy411;+    if (yych != 'c')+      goto yy31;+  yy411:+    yych = *++p;+    if (yych == 'R')+      goto yy412;+    if (yych != 'r')+      goto yy31;+  yy412:+    yych = *++p;+    if (yych == 'I')+      goto yy413;+    if (yych != 'i')+      goto yy31;+  yy413:+    yych = *++p;+    if (yych == 'P')+      goto yy414;+    if (yych != 'p')+      goto yy31;+  yy414:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy415:+    yych = *++p;+    if (yych == 'B')+      goto yy41;+    if (yych == 'b')+      goto yy41;+    goto yy31;+  yy416:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy417:+    yych = *++p;+    if (yych == 'N')+      goto yy424;+    if (yych == 'n')+      goto yy424;+    goto yy31;+  yy418:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy419:+    yych = *++p;+    if (yych == 'C')+      goto yy423;+    if (yych == 'c')+      goto yy423;+    goto yy31;+  yy420:+    yych = *++p;+    if (yych <= 'V') {+      if (yych == 'T')+        goto yy422;+      if (yych <= 'U')+        goto yy31;+      goto yy41;+    } else {+      if (yych <= 't') {+        if (yych <= 's')+          goto yy31;+        goto yy422;+      } else {+        if (yych == 'v')+          goto yy41;+        goto yy31;+      }+    }+  yy421:+    yych = *++p;+    if (yych == 'I')+      goto yy41;+    if (yych == 'i')+      goto yy41;+    goto yy31;+  yy422:+    yych = *++p;+    if (yych == 'A')+      goto yy41;+    if (yych == 'a')+      goto yy41;+    goto yy31;+  yy423:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy424:+    yych = *++p;+    if (yych == 'A')+      goto yy425;+    if (yych != 'a')+      goto yy31;+  yy425:+    yych = *++p;+    if (yych != '-')+      goto yy31;+    yych = *++p;+    if (yych == 'P')+      goto yy427;+    if (yych != 'p')+      goto yy31;+  yy427:+    yych = *++p;+    if (yych == 'L')+      goto yy428;+    if (yych != 'l')+      goto yy31;+  yy428:+    yych = *++p;+    if (yych == 'A')+      goto yy429;+    if (yych != 'a')+      goto yy31;+  yy429:+    yych = *++p;+    if (yych == 'Y')+      goto yy430;+    if (yych != 'y')+      goto yy31;+  yy430:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'C')+        goto yy431;+      if (yych <= 'R')+        goto yy31;+      goto yy432;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy31;+      } else {+        if (yych == 's')+          goto yy432;+        goto yy31;+      }+    }+  yy431:+    yych = *++p;+    if (yych == 'O')+      goto yy437;+    if (yych == 'o')+      goto yy437;+    goto yy31;+  yy432:+    yych = *++p;+    if (yych == 'I')+      goto yy433;+    if (yych != 'i')+      goto yy31;+  yy433:+    yych = *++p;+    if (yych == 'N')+      goto yy434;+    if (yych != 'n')+      goto yy31;+  yy434:+    yych = *++p;+    if (yych == 'G')+      goto yy435;+    if (yych != 'g')+      goto yy31;+  yy435:+    yych = *++p;+    if (yych == 'L')+      goto yy436;+    if (yych != 'l')+      goto yy31;+  yy436:+    yych = *++p;+    if (yych == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  yy437:+    yych = *++p;+    if (yych == 'N')+      goto yy438;+    if (yych != 'n')+      goto yy31;+  yy438:+    yych = *++p;+    if (yych == 'T')+      goto yy439;+    if (yych != 't')+      goto yy31;+  yy439:+    yych = *++p;+    if (yych == 'A')+      goto yy440;+    if (yych != 'a')+      goto yy31;+  yy440:+    yych = *++p;+    if (yych == 'I')+      goto yy441;+    if (yych != 'i')+      goto yy31;+  yy441:+    yych = *++p;+    if (yych == 'N')+      goto yy442;+    if (yych != 'n')+      goto yy31;+  yy442:+    yych = *++p;+    if (yych == 'E')+      goto yy443;+    if (yych != 'e')+      goto yy31;+  yy443:+    yych = *++p;+    if (yych == 'R')+      goto yy41;+    if (yych == 'r')+      goto yy41;+    goto yy31;+  yy444:+    yych = *++p;+    if (yych == 'S')+      goto yy41;+    if (yych == 's')+      goto yy41;+    goto yy31;+  yy445:+    yych = *++p;+    if (yych <= 'N') {+      if (yych <= 'A') {+        if (yych <= '@')+          goto yy31;+        goto yy467;+      } else {+        if (yych <= 'L')+          goto yy31;+        if (yych <= 'M')+          goto yy468;+        goto yy469;+      }+    } else {+      if (yych <= 'l') {+        if (yych == 'a')+          goto yy467;+        goto yy31;+      } else {+        if (yych <= 'm')+          goto yy468;+        if (yych <= 'n')+          goto yy469;+        goto yy31;+      }+    }+  yy446:+    yych = *++p;+    if (yych == 'R')+      goto yy454;+    if (yych == 'r')+      goto yy454;+    goto yy31;+  yy447:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy451;+      if (yych <= 'O')+        goto yy31;+      goto yy41;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy31;+        goto yy451;+      } else {+        if (yych == 'p')+          goto yy41;+        goto yy31;+      }+    }+  yy448:+    yych = *++p;+    if (yych == 'I')+      goto yy450;+    if (yych == 'i')+      goto yy450;+    goto yy31;+  yy449:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy450:+    yych = *++p;+    if (yych == 'D')+      goto yy41;+    if (yych == 'd')+      goto yy41;+    goto yy31;+  yy451:+    yych = *++p;+    if (yych == 'L')+      goto yy452;+    if (yych != 'l')+      goto yy31;+  yy452:+    yych = *++p;+    if (yych == 'T')+      goto yy453;+    if (yych != 't')+      goto yy31;+  yy453:+    yych = *++p;+    if (yych == 'O')+      goto yy41;+    if (yych == 'o')+      goto yy41;+    goto yy31;+  yy454:+    yych = *++p;+    if (yych == 'O')+      goto yy455;+    if (yych != 'o')+      goto yy31;+  yy455:+    yych = *++p;+    if (yych == 'M')+      goto yy456;+    if (yych != 'm')+      goto yy31;+  yy456:+    yych = *++p;+    if (yych == 'E')+      goto yy457;+    if (yych != 'e')+      goto yy31;+  yy457:+    yych = *++p;+    if (yych == '-')+      goto yy458;+    if (yych == ':')+      goto yy42;+    goto yy31;+  yy458:+    yych = *++p;+    if (yych == 'E')+      goto yy459;+    if (yych != 'e')+      goto yy31;+  yy459:+    yych = *++p;+    if (yych == 'X')+      goto yy460;+    if (yych != 'x')+      goto yy31;+  yy460:+    yych = *++p;+    if (yych == 'T')+      goto yy461;+    if (yych != 't')+      goto yy31;+  yy461:+    yych = *++p;+    if (yych == 'E')+      goto yy462;+    if (yych != 'e')+      goto yy31;+  yy462:+    yych = *++p;+    if (yych == 'N')+      goto yy463;+    if (yych != 'n')+      goto yy31;+  yy463:+    yych = *++p;+    if (yych == 'S')+      goto yy464;+    if (yych != 's')+      goto yy31;+  yy464:+    yych = *++p;+    if (yych == 'I')+      goto yy465;+    if (yych != 'i')+      goto yy31;+  yy465:+    yych = *++p;+    if (yych == 'O')+      goto yy466;+    if (yych != 'o')+      goto yy31;+  yy466:+    yych = *++p;+    if (yych == 'N')+      goto yy41;+    if (yych == 'n')+      goto yy41;+    goto yy31;+  yy467:+    yych = *++p;+    if (yych == 'P')+      goto yy41;+    if (yych == 'p')+      goto yy41;+    goto yy31;+  yy468:+    yych = *++p;+    if (yych == '-')+      goto yy473;+    goto yy31;+  yy469:+    yych = *++p;+    if (yych == 'T')+      goto yy470;+    if (yych != 't')+      goto yy31;+  yy470:+    yych = *++p;+    if (yych == 'E')+      goto yy471;+    if (yych != 'e')+      goto yy31;+  yy471:+    yych = *++p;+    if (yych == 'N')+      goto yy472;+    if (yych != 'n')+      goto yy31;+  yy472:+    yych = *++p;+    if (yych == 'T')+      goto yy41;+    if (yych == 't')+      goto yy41;+    goto yy31;+  yy473:+    yych = *++p;+    if (yych == 'E')+      goto yy474;+    if (yych != 'e')+      goto yy31;+  yy474:+    yych = *++p;+    if (yych == 'V')+      goto yy475;+    if (yych != 'v')+      goto yy31;+  yy475:+    yych = *++p;+    if (yych == 'E')+      goto yy476;+    if (yych != 'e')+      goto yy31;+  yy476:+    yych = *++p;+    if (yych == 'N')+      goto yy477;+    if (yych != 'n')+      goto yy31;+  yy477:+    yych = *++p;+    if (yych == 'T')+      goto yy478;+    if (yych != 't')+      goto yy31;+  yy478:+    yych = *++p;+    if (yych == 'B')+      goto yy479;+    if (yych != 'b')+      goto yy31;+  yy479:+    yych = *++p;+    if (yych == 'R')+      goto yy480;+    if (yych != 'r')+      goto yy31;+  yy480:+    yych = *++p;+    if (yych == 'I')+      goto yy481;+    if (yych != 'i')+      goto yy31;+  yy481:+    yych = *++p;+    if (yych == 'T')+      goto yy482;+    if (yych != 't')+      goto yy31;+  yy482:+    yych = *++p;+    if (yych == 'E')+      goto yy483;+    if (yych != 'e')+      goto yy31;+  yy483:+    yych = *++p;+    if (yych != '-')+      goto yy31;+    yych = *++p;+    if (yych == 'A')+      goto yy485;+    if (yych != 'a')+      goto yy31;+  yy485:+    yych = *++p;+    if (yych == 'T')+      goto yy486;+    if (yych != 't')+      goto yy31;+  yy486:+    yych = *++p;+    if (yych == 'T')+      goto yy487;+    if (yych != 't')+      goto yy31;+  yy487:+    yych = *++p;+    if (yych == 'E')+      goto yy488;+    if (yych != 'e')+      goto yy31;+  yy488:+    yych = *++p;+    if (yych == 'N')+      goto yy489;+    if (yych != 'n')+      goto yy31;+  yy489:+    yych = *++p;+    if (yych == 'D')+      goto yy490;+    if (yych != 'd')+      goto yy31;+  yy490:+    yych = *++p;+    if (yych == 'E')+      goto yy491;+    if (yych != 'e')+      goto yy31;+  yy491:+    ++p;+    if ((yych = *p) == 'E')+      goto yy41;+    if (yych == 'e')+      goto yy41;+    goto yy31;+  }+}++// 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 = *(marker = p);+    if (yych <= 'c') {+      if (yych <= 'M') {+        if (yych <= 'E') {+          if (yych <= 'A') {+            if (yych == '\n')+              goto yy494;+            if (yych <= '@')+              goto yy521;+            goto yy498;+          } else {+            if (yych <= 'B')+              goto yy516;+            if (yych <= 'C')+              goto yy495;+            if (yych <= 'D')+              goto yy496;+            goto yy517;+          }+        } else {+          if (yych <= 'I') {+            if (yych <= 'F')+              goto yy499;+            if (yych <= 'G')+              goto yy500;+            if (yych <= 'H')+              goto yy501;+            goto yy502;+          } else {+            if (yych <= 'J')+              goto yy497;+            if (yych <= 'K')+              goto yy518;+            if (yych <= 'L')+              goto yy503;+            goto yy504;+          }+        }+      } else {+        if (yych <= 'U') {+          if (yych <= 'Q') {+            if (yych <= 'N')+              goto yy505;+            if (yych <= 'O')+              goto yy506;+            if (yych <= 'P')+              goto yy507;+            goto yy519;+          } else {+            if (yych <= 'R')+              goto yy508;+            if (yych <= 'S')+              goto yy509;+            if (yych <= 'T')+              goto yy510;+            goto yy511;+          }+        } else {+          if (yych <= 'Y') {+            if (yych <= 'V')+              goto yy512;+            if (yych <= 'W')+              goto yy513;+            if (yych <= 'X')+              goto yy514;+            goto yy520;+          } else {+            if (yych <= '`') {+              if (yych <= 'Z')+                goto yy515;+              goto yy521;+            } else {+              if (yych <= 'a')+                goto yy498;+              if (yych <= 'b')+                goto yy516;+              goto yy495;+            }+          }+        }+      }+    } else {+      if (yych <= 't') {+        if (yych <= 'k') {+          if (yych <= 'g') {+            if (yych <= 'd')+              goto yy496;+            if (yych <= 'e')+              goto yy517;+            if (yych <= 'f')+              goto yy499;+            goto yy500;+          } else {+            if (yych <= 'h')+              goto yy501;+            if (yych <= 'i')+              goto yy502;+            if (yych <= 'j')+              goto yy497;+            goto yy518;+          }+        } else {+          if (yych <= 'o') {+            if (yych <= 'l')+              goto yy503;+            if (yych <= 'm')+              goto yy504;+            if (yych <= 'n')+              goto yy505;+            goto yy506;+          } else {+            if (yych <= 'q') {+              if (yych <= 'p')+                goto yy507;+              goto yy519;+            } else {+              if (yych <= 'r')+                goto yy508;+              if (yych <= 's')+                goto yy509;+              goto yy510;+            }+          }+        }+      } else {+        if (yych <= 0xC1) {+          if (yych <= 'x') {+            if (yych <= 'u')+              goto yy511;+            if (yych <= 'v')+              goto yy512;+            if (yych <= 'w')+              goto yy513;+            goto yy514;+          } else {+            if (yych <= 'y')+              goto yy520;+            if (yych <= 'z')+              goto yy515;+            if (yych <= 0x7F)+              goto yy521;+          }+        } else {+          if (yych <= 0xED) {+            if (yych <= 0xDF)+              goto yy522;+            if (yych <= 0xE0)+              goto yy524;+            if (yych <= 0xEC)+              goto yy525;+            goto yy529;+          } else {+            if (yych <= 0xF0) {+              if (yych <= 0xEF)+                goto yy525;+              goto yy526;+            } else {+              if (yych <= 0xF3)+                goto yy527;+              if (yych <= 0xF4)+                goto yy528;+            }+          }+        }+      }+    }+  yy494 : { return 0; }+  yy495:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy948;+    case 'H':+    case 'h':+      goto yy947;+    case 'I':+    case 'i':+      goto yy950;+    case 'O':+    case 'o':+      goto yy946;+    case 'R':+    case 'r':+      goto yy949;+    case 'V':+    case 'v':+      goto yy945;+    default:+      goto yy494;+    }+  yy496:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy921;+    case 'I':+    case 'i':+      goto yy920;+    case 'L':+    case 'l':+      goto yy918;+    case 'N':+    case 'n':+      goto yy919;+    case 'O':+    case 'o':+      goto yy922;+    case 'T':+    case 't':+      goto yy917;+    case 'V':+    case 'v':+      goto yy916;+    default:+      goto yy494;+    }+  yy497:+    yych = *(marker = ++p);+    if (yych <= 'M') {+      if (yych == 'A')+        goto yy908;+      if (yych <= 'L')+        goto yy494;+      goto yy907;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy494;+        goto yy908;+      } else {+        if (yych == 'm')+          goto yy907;+        goto yy494;+      }+    }+  yy498:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy889;+    case 'B':+    case 'b':+      goto yy888;+    case 'C':+    case 'c':+      goto yy887;+    case 'D':+    case 'd':+      goto yy886;+    case 'F':+    case 'f':+      goto yy885;+    case 'I':+    case 'i':+      goto yy884;+    case 'P':+    case 'p':+      goto yy883;+    case 'T':+    case 't':+      goto yy882;+    case 'W':+    case 'w':+      goto yy533;+    default:+      goto yy494;+    }+  yy499:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'E') {+        if (yych == 'A')+          goto yy869;+        if (yych <= 'D')+          goto yy494;+        goto yy868;+      } else {+        if (yych == 'I')+          goto yy867;+        if (yych <= 'S')+          goto yy494;+        goto yy870;+      }+    } else {+      if (yych <= 'e') {+        if (yych == 'a')+          goto yy869;+        if (yych <= 'd')+          goto yy494;+        goto yy868;+      } else {+        if (yych <= 'i') {+          if (yych <= 'h')+            goto yy494;+          goto yy867;+        } else {+          if (yych == 't')+            goto yy870;+          goto yy494;+        }+      }+    }+  yy500:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy852;+    case 'G':+    case 'g':+      goto yy533;+    case 'I':+    case 'i':+      goto yy850;+    case 'O':+    case 'o':+      goto yy851;+    case 'T':+    case 't':+      goto yy849;+    default:+      goto yy494;+    }+  yy501:+    yych = *(marker = ++p);+    if (yych <= 'S') {+      if (yych <= '3') {+        if (yych <= '2')+          goto yy494;+        goto yy845;+      } else {+        if (yych == 'C')+          goto yy843;+        goto yy494;+      }+    } else {+      if (yych <= 'c') {+        if (yych <= 'T')+          goto yy844;+        if (yych <= 'b')+          goto yy494;+        goto yy843;+      } else {+        if (yych == 't')+          goto yy844;+        goto yy494;+      }+    }+  yy502:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy825;+    case 'C':+    case 'c':+      goto yy822;+    case 'M':+    case 'm':+      goto yy824;+    case 'N':+    case 'n':+      goto yy823;+    case 'P':+    case 'p':+      goto yy821;+    case 'R':+    case 'r':+      goto yy820;+    case 'T':+    case 't':+      goto yy819;+    default:+      goto yy494;+    }+  yy503:+    yych = *(marker = ++p);+    if (yych <= 'D') {+      if (yych == 'A')+        goto yy813;+      if (yych <= 'C')+        goto yy494;+      goto yy812;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy494;+        goto yy813;+      } else {+        if (yych == 'd')+          goto yy812;+        goto yy494;+      }+    }+  yy504:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy779;+    case 'E':+    case 'e':+      goto yy778;+    case 'I':+    case 'i':+      goto yy781;+    case 'M':+    case 'm':+      goto yy777;+    case 'S':+    case 's':+      goto yy776;+    case 'T':+    case 't':+      goto yy780;+    case 'U':+    case 'u':+      goto yy775;+    case 'V':+    case 'v':+      goto yy774;+    default:+      goto yy494;+    }+  yy505:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy769;+    case 'F':+    case 'f':+      goto yy768;+    case 'I':+    case 'i':+      goto yy767;+    case 'N':+    case 'n':+      goto yy766;+    case 'O':+    case 'o':+      goto yy765;+    default:+      goto yy494;+    }+  yy506:+    yych = *(marker = ++p);+    if (yych <= 'P') {+      if (yych == 'I')+        goto yy751;+      if (yych <= 'O')+        goto yy494;+      goto yy752;+    } else {+      if (yych <= 'i') {+        if (yych <= 'h')+          goto yy494;+        goto yy751;+      } else {+        if (yych == 'p')+          goto yy752;+        goto yy494;+      }+    }+  yy507:+    yych = *(marker = ++p);+    if (yych <= 'S') {+      if (yych <= 'L') {+        if (yych == 'A')+          goto yy733;+        if (yych <= 'K')+          goto yy494;+        goto yy732;+      } else {+        if (yych <= 'O') {+          if (yych <= 'N')+            goto yy494;+          goto yy734;+        } else {+          if (yych <= 'Q')+            goto yy494;+          if (yych <= 'R')+            goto yy731;+          goto yy730;+        }+      }+    } else {+      if (yych <= 'n') {+        if (yych <= 'a') {+          if (yych <= '`')+            goto yy494;+          goto yy733;+        } else {+          if (yych == 'l')+            goto yy732;+          goto yy494;+        }+      } else {+        if (yych <= 'q') {+          if (yych <= 'o')+            goto yy734;+          goto yy494;+        } else {+          if (yych <= 'r')+            goto yy731;+          if (yych <= 's')+            goto yy730;+          goto yy494;+        }+      }+    }+  yy508:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'L') {+        if (yych == 'E')+          goto yy720;+        goto yy494;+      } else {+        if (yych <= 'M')+          goto yy719;+        if (yych <= 'R')+          goto yy494;+        if (yych <= 'S')+          goto yy718;+        goto yy717;+      }+    } else {+      if (yych <= 'm') {+        if (yych == 'e')+          goto yy720;+        if (yych <= 'l')+          goto yy494;+        goto yy719;+      } else {+        if (yych <= 'r')+          goto yy494;+        if (yych <= 's')+          goto yy718;+        if (yych <= 't')+          goto yy717;+        goto yy494;+      }+    }+  yy509:+    yych = *(marker = ++p);+    switch (yych) {+    case 'E':+    case 'e':+      goto yy673;+    case 'F':+    case 'f':+      goto yy672;+    case 'G':+    case 'g':+      goto yy671;+    case 'H':+    case 'h':+      goto yy676;+    case 'I':+    case 'i':+      goto yy675;+    case 'K':+    case 'k':+      goto yy670;+    case 'M':+    case 'm':+      goto yy669;+    case 'N':+    case 'n':+      goto yy674;+    case 'O':+    case 'o':+      goto yy668;+    case 'P':+    case 'p':+      goto yy667;+    case 'S':+    case 's':+      goto yy666;+    case 'T':+    case 't':+      goto yy665;+    case 'V':+    case 'v':+      goto yy664;+    default:+      goto yy494;+    }+  yy510:+    yych = *(marker = ++p);+    switch (yych) {+    case 'A':+    case 'a':+      goto yy640;+    case 'E':+    case 'e':+      goto yy636;+    case 'F':+    case 'f':+      goto yy639;+    case 'H':+    case 'h':+      goto yy635;+    case 'I':+    case 'i':+      goto yy637;+    case 'N':+    case 'n':+      goto yy638;+    case 'V':+    case 'v':+      goto yy533;+    default:+      goto yy494;+    }+  yy511:+    yych = *(marker = ++p);+    if (yych <= 'T') {+      if (yych <= 'N') {+        if (yych == 'D')+          goto yy627;+        if (yych <= 'M')+          goto yy494;+        goto yy626;+      } else {+        if (yych == 'R')+          goto yy628;+        if (yych <= 'S')+          goto yy494;+        goto yy625;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'd')+          goto yy627;+        if (yych <= 'm')+          goto yy494;+        goto yy626;+      } else {+        if (yych <= 'r') {+          if (yych <= 'q')+            goto yy494;+          goto yy628;+        } else {+          if (yych == 't')+            goto yy625;+          goto yy494;+        }+      }+    }+  yy512:+    yych = *(marker = ++p);+    if (yych <= 'I') {+      if (yych == 'E')+        goto yy609;+      if (yych <= 'H')+        goto yy494;+      goto yy608;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy494;+        goto yy609;+      } else {+        if (yych == 'i')+          goto yy608;+        goto yy494;+      }+    }+  yy513:+    yych = *(marker = ++p);+    if (yych <= 'Y') {+      if (yych <= 'R') {+        if (yych == 'E')+          goto yy598;+        goto yy494;+      } else {+        if (yych <= 'S')+          goto yy599;+        if (yych <= 'T')+          goto yy597;+        if (yych <= 'X')+          goto yy494;+        goto yy596;+      }+    } else {+      if (yych <= 's') {+        if (yych == 'e')+          goto yy598;+        if (yych <= 'r')+          goto yy494;+        goto yy599;+      } else {+        if (yych <= 't')+          goto yy597;+        if (yych == 'y')+          goto yy596;+        goto yy494;+      }+    }+  yy514:+    yych = *(marker = ++p);+    if (yych <= 'R') {+      if (yych <= 'F') {+        if (yych == 'C')+          goto yy575;+        if (yych <= 'E')+          goto yy494;+        goto yy573;+      } else {+        if (yych == 'M')+          goto yy574;+        if (yych <= 'Q')+          goto yy494;+        goto yy572;+      }+    } else {+      if (yych <= 'f') {+        if (yych == 'c')+          goto yy575;+        if (yych <= 'e')+          goto yy494;+        goto yy573;+      } else {+        if (yych <= 'm') {+          if (yych <= 'l')+            goto yy494;+          goto yy574;+        } else {+          if (yych == 'r')+            goto yy572;+          goto yy494;+        }+      }+    }+  yy515:+    yych = *(marker = ++p);+    if (yych == '3')+      goto yy567;+    goto yy494;+  yy516:+    yych = *(marker = ++p);+    if (yych <= 'O') {+      if (yych <= 'H') {+        if (yych == 'E')+          goto yy557;+        goto yy494;+      } else {+        if (yych <= 'I')+          goto yy556;+        if (yych <= 'N')+          goto yy494;+        goto yy555;+      }+    } else {+      if (yych <= 'h') {+        if (yych == 'e')+          goto yy557;+        goto yy494;+      } else {+        if (yych <= 'i')+          goto yy556;+        if (yych == 'o')+          goto yy555;+        goto yy494;+      }+    }+  yy517:+    yych = *(marker = ++p);+    if (yych == 'D')+      goto yy553;+    if (yych == 'd')+      goto yy553;+    goto yy494;+  yy518:+    yych = *(marker = ++p);+    if (yych == 'E')+      goto yy548;+    if (yych == 'e')+      goto yy548;+    goto yy494;+  yy519:+    yych = *(marker = ++p);+    if (yych == 'U')+      goto yy545;+    if (yych == 'u')+      goto yy545;+    goto yy494;+  yy520:+    yych = *(marker = ++p);+    if (yych == 'M')+      goto yy530;+    if (yych == 'm')+      goto yy530;+    goto yy494;+  yy521:+    yych = *++p;+    goto yy494;+  yy522:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy521;+  yy523:+    p = marker;+    goto yy494;+  yy524:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy522;+    goto yy523;+  yy525:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy522;+    goto yy523;+  yy526:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy525;+    goto yy523;+  yy527:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy525;+    goto yy523;+  yy528:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0x8F)+      goto yy525;+    goto yy523;+  yy529:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0x9F)+      goto yy522;+    goto yy523;+  yy530:+    yych = *++p;+    if (yych == 'S')+      goto yy531;+    if (yych != 's')+      goto yy523;+  yy531:+    yych = *++p;+    if (yych == 'G')+      goto yy532;+    if (yych != 'g')+      goto yy523;+  yy532:+    yych = *++p;+    if (yych == 'R')+      goto yy533;+    if (yych != 'r')+      goto yy523;+  yy533:+    yych = *++p;+    if (yych != ':')+      goto yy523;+  yy534:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy534;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '<')+          goto yy523;+        if (yych <= '>')+          goto yy543;+        goto yy523;+      } else {+        if (yych <= 0xDF)+          goto yy536;+        if (yych <= 0xE0)+          goto yy537;+        goto yy538;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy542;+        if (yych <= 0xEF)+          goto yy538;+        goto yy539;+      } else {+        if (yych <= 0xF3)+          goto yy540;+        if (yych <= 0xF4)+          goto yy541;+        goto yy523;+      }+    }+  yy536:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy534;+    goto yy523;+  yy537:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy536;+    goto yy523;+  yy538:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy536;+    goto yy523;+  yy539:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy538;+    goto yy523;+  yy540:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0xBF)+      goto yy538;+    goto yy523;+  yy541:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0x8F)+      goto yy538;+    goto yy523;+  yy542:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy523;+    if (yych <= 0x9F)+      goto yy536;+    goto yy523;+  yy543:+    ++p;+    { return (bufsize_t)(p - start); }+  yy545:+    yych = *++p;+    if (yych == 'E')+      goto yy546;+    if (yych != 'e')+      goto yy523;+  yy546:+    yych = *++p;+    if (yych == 'R')+      goto yy547;+    if (yych != 'r')+      goto yy523;+  yy547:+    yych = *++p;+    if (yych == 'Y')+      goto yy533;+    if (yych == 'y')+      goto yy533;+    goto yy523;+  yy548:+    yych = *++p;+    if (yych == 'Y')+      goto yy549;+    if (yych != 'y')+      goto yy523;+  yy549:+    yych = *++p;+    if (yych == 'P')+      goto yy550;+    if (yych != 'p')+      goto yy523;+  yy550:+    yych = *++p;+    if (yych == 'A')+      goto yy551;+    if (yych != 'a')+      goto yy523;+  yy551:+    yych = *++p;+    if (yych == 'R')+      goto yy552;+    if (yych != 'r')+      goto yy523;+  yy552:+    yych = *++p;+    if (yych == 'C')+      goto yy533;+    if (yych == 'c')+      goto yy533;+    goto yy523;+  yy553:+    yych = *++p;+    if (yych != '2')+      goto yy523;+    yych = *++p;+    if (yych == 'K')+      goto yy533;+    if (yych == 'k')+      goto yy533;+    goto yy523;+  yy555:+    yych = *++p;+    if (yych == 'L')+      goto yy566;+    if (yych == 'l')+      goto yy566;+    goto yy523;+  yy556:+    yych = *++p;+    if (yych == 'T')+      goto yy562;+    if (yych == 't')+      goto yy562;+    goto yy523;+  yy557:+    yych = *++p;+    if (yych == 'S')+      goto yy558;+    if (yych != 's')+      goto yy523;+  yy558:+    yych = *++p;+    if (yych == 'H')+      goto yy559;+    if (yych != 'h')+      goto yy523;+  yy559:+    yych = *++p;+    if (yych == 'A')+      goto yy560;+    if (yych != 'a')+      goto yy523;+  yy560:+    yych = *++p;+    if (yych == 'R')+      goto yy561;+    if (yych != 'r')+      goto yy523;+  yy561:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy562:+    yych = *++p;+    if (yych == 'C')+      goto yy563;+    if (yych != 'c')+      goto yy523;+  yy563:+    yych = *++p;+    if (yych == 'O')+      goto yy564;+    if (yych != 'o')+      goto yy523;+  yy564:+    yych = *++p;+    if (yych == 'I')+      goto yy565;+    if (yych != 'i')+      goto yy523;+  yy565:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy566:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy567:+    yych = *++p;+    if (yych != '9')+      goto yy523;+    yych = *++p;+    if (yych != '.')+      goto yy523;+    yych = *++p;+    if (yych != '5')+      goto yy523;+    yych = *++p;+    if (yych != '0')+      goto yy523;+    yych = *++p;+    if (yych <= 'Q')+      goto yy523;+    if (yych <= 'S')+      goto yy533;+    if (yych <= 'q')+      goto yy523;+    if (yych <= 's')+      goto yy533;+    goto yy523;+  yy572:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy573:+    yych = *++p;+    if (yych == 'I')+      goto yy594;+    if (yych == 'i')+      goto yy594;+    goto yy523;+  yy574:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy584;+      if (yych <= 'O')+        goto yy523;+      goto yy585;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy523;+        goto yy584;+      } else {+        if (yych == 'p')+          goto yy585;+        goto yy523;+      }+    }+  yy575:+    yych = *++p;+    if (yych == 'O')+      goto yy576;+    if (yych != 'o')+      goto yy523;+  yy576:+    yych = *++p;+    if (yych == 'N')+      goto yy577;+    if (yych != 'n')+      goto yy523;+  yy577:+    yych = *++p;+    if (yych == '-')+      goto yy578;+    if (yych == ':')+      goto yy534;+    goto yy523;+  yy578:+    yych = *++p;+    if (yych == 'U')+      goto yy579;+    if (yych != 'u')+      goto yy523;+  yy579:+    yych = *++p;+    if (yych == 'S')+      goto yy580;+    if (yych != 's')+      goto yy523;+  yy580:+    yych = *++p;+    if (yych == 'E')+      goto yy581;+    if (yych != 'e')+      goto yy523;+  yy581:+    yych = *++p;+    if (yych == 'R')+      goto yy582;+    if (yych != 'r')+      goto yy523;+  yy582:+    yych = *++p;+    if (yych == 'I')+      goto yy583;+    if (yych != 'i')+      goto yy523;+  yy583:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy584:+    yych = *++p;+    if (yych == 'R')+      goto yy586;+    if (yych == 'r')+      goto yy586;+    goto yy523;+  yy585:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy586:+    yych = *++p;+    if (yych == 'P')+      goto yy587;+    if (yych != 'p')+      goto yy523;+  yy587:+    yych = *++p;+    if (yych == 'C')+      goto yy588;+    if (yych != 'c')+      goto yy523;+  yy588:+    yych = *++p;+    if (yych != '.')+      goto yy523;+    yych = *++p;+    if (yych == 'B')+      goto yy590;+    if (yych != 'b')+      goto yy523;+  yy590:+    yych = *++p;+    if (yych == 'E')+      goto yy591;+    if (yych != 'e')+      goto yy523;+  yy591:+    yych = *++p;+    if (yych == 'E')+      goto yy592;+    if (yych != 'e')+      goto yy523;+  yy592:+    yych = *++p;+    if (yych == 'P')+      goto yy593;+    if (yych != 'p')+      goto yy523;+  yy593:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy594:+    yych = *++p;+    if (yych == 'R')+      goto yy595;+    if (yych != 'r')+      goto yy523;+  yy595:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy596:+    yych = *++p;+    if (yych == 'C')+      goto yy604;+    if (yych == 'c')+      goto yy604;+    goto yy523;+  yy597:+    yych = *++p;+    if (yych == 'A')+      goto yy603;+    if (yych == 'a')+      goto yy603;+    goto yy523;+  yy598:+    yych = *++p;+    if (yych == 'B')+      goto yy600;+    if (yych == 'b')+      goto yy600;+    goto yy523;+  yy599:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy600:+    yych = *++p;+    if (yych == 'C')+      goto yy601;+    if (yych != 'c')+      goto yy523;+  yy601:+    yych = *++p;+    if (yych == 'A')+      goto yy602;+    if (yych != 'a')+      goto yy523;+  yy602:+    yych = *++p;+    if (yych == 'L')+      goto yy533;+    if (yych == 'l')+      goto yy533;+    goto yy523;+  yy603:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy604:+    yych = *++p;+    if (yych == 'I')+      goto yy605;+    if (yych != 'i')+      goto yy523;+  yy605:+    yych = *++p;+    if (yych == 'W')+      goto yy606;+    if (yych != 'w')+      goto yy523;+  yy606:+    yych = *++p;+    if (yych == 'Y')+      goto yy607;+    if (yych != 'y')+      goto yy523;+  yy607:+    yych = *++p;+    if (yych == 'G')+      goto yy533;+    if (yych == 'g')+      goto yy533;+    goto yy523;+  yy608:+    yych = *++p;+    if (yych == 'E')+      goto yy617;+    if (yych == 'e')+      goto yy617;+    goto yy523;+  yy609:+    yych = *++p;+    if (yych <= 'N') {+      if (yych <= 'L')+        goto yy523;+      if (yych >= 'N')+        goto yy611;+    } else {+      if (yych <= 'l')+        goto yy523;+      if (yych <= 'm')+        goto yy610;+      if (yych <= 'n')+        goto yy611;+      goto yy523;+    }+  yy610:+    yych = *++p;+    if (yych == 'M')+      goto yy616;+    if (yych == 'm')+      goto yy616;+    goto yy523;+  yy611:+    yych = *++p;+    if (yych == 'T')+      goto yy612;+    if (yych != 't')+      goto yy523;+  yy612:+    yych = *++p;+    if (yych == 'R')+      goto yy613;+    if (yych != 'r')+      goto yy523;+  yy613:+    yych = *++p;+    if (yych == 'I')+      goto yy614;+    if (yych != 'i')+      goto yy523;+  yy614:+    yych = *++p;+    if (yych == 'L')+      goto yy615;+    if (yych != 'l')+      goto yy523;+  yy615:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy616:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy617:+    yych = *++p;+    if (yych == 'W')+      goto yy618;+    if (yych != 'w')+      goto yy523;+  yy618:+    yych = *++p;+    if (yych != '-')+      goto yy523;+    yych = *++p;+    if (yych == 'S')+      goto yy620;+    if (yych != 's')+      goto yy523;+  yy620:+    yych = *++p;+    if (yych == 'O')+      goto yy621;+    if (yych != 'o')+      goto yy523;+  yy621:+    yych = *++p;+    if (yych == 'U')+      goto yy622;+    if (yych != 'u')+      goto yy523;+  yy622:+    yych = *++p;+    if (yych == 'R')+      goto yy623;+    if (yych != 'r')+      goto yy523;+  yy623:+    yych = *++p;+    if (yych == 'C')+      goto yy624;+    if (yych != 'c')+      goto yy523;+  yy624:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy625:+    yych = *++p;+    if (yych == '2')+      goto yy632;+    goto yy523;+  yy626:+    yych = *++p;+    if (yych == 'R')+      goto yy629;+    if (yych == 'r')+      goto yy629;+    goto yy523;+  yy627:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy628:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy629:+    yych = *++p;+    if (yych == 'E')+      goto yy630;+    if (yych != 'e')+      goto yy523;+  yy630:+    yych = *++p;+    if (yych == 'A')+      goto yy631;+    if (yych != 'a')+      goto yy523;+  yy631:+    yych = *++p;+    if (yych == 'L')+      goto yy533;+    if (yych == 'l')+      goto yy533;+    goto yy523;+  yy632:+    yych = *++p;+    if (yych != '0')+      goto yy523;+    yych = *++p;+    if (yych != '0')+      goto yy523;+    yych = *++p;+    if (yych == '4')+      goto yy533;+    goto yy523;+  yy635:+    yych = *++p;+    if (yych == 'I')+      goto yy654;+    if (yych == 'i')+      goto yy654;+    goto yy523;+  yy636:+    yych = *++p;+    if (yych <= 'L') {+      if (yych == 'A')+        goto yy646;+      if (yych <= 'K')+        goto yy523;+      goto yy645;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy523;+        goto yy646;+      } else {+        if (yych == 'l')+          goto yy645;+        goto yy523;+      }+    }+  yy637:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy638:+    yych = *++p;+    if (yych == '3')+      goto yy642;+    goto yy523;+  yy639:+    yych = *++p;+    if (yych == 'T')+      goto yy641;+    if (yych == 't')+      goto yy641;+    goto yy523;+  yy640:+    yych = *++p;+    if (yych == 'G')+      goto yy533;+    if (yych == 'g')+      goto yy533;+    goto yy523;+  yy641:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy642:+    yych = *++p;+    if (yych != '2')+      goto yy523;+    yych = *++p;+    if (yych != '7')+      goto yy523;+    yych = *++p;+    if (yych == '0')+      goto yy533;+    goto yy523;+  yy645:+    yych = *++p;+    if (yych <= 'M') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'N')+        goto yy652;+      if (yych == 'n')+        goto yy652;+      goto yy523;+    }+  yy646:+    yych = *++p;+    if (yych == 'M')+      goto yy647;+    if (yych != 'm')+      goto yy523;+  yy647:+    yych = *++p;+    if (yych == 'S')+      goto yy648;+    if (yych != 's')+      goto yy523;+  yy648:+    yych = *++p;+    if (yych == 'P')+      goto yy649;+    if (yych != 'p')+      goto yy523;+  yy649:+    yych = *++p;+    if (yych == 'E')+      goto yy650;+    if (yych != 'e')+      goto yy523;+  yy650:+    yych = *++p;+    if (yych == 'A')+      goto yy651;+    if (yych != 'a')+      goto yy523;+  yy651:+    yych = *++p;+    if (yych == 'K')+      goto yy533;+    if (yych == 'k')+      goto yy533;+    goto yy523;+  yy652:+    yych = *++p;+    if (yych == 'E')+      goto yy653;+    if (yych != 'e')+      goto yy523;+  yy653:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy654:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'N')+        goto yy655;+      if (yych <= 'R')+        goto yy523;+      goto yy656;+    } else {+      if (yych <= 'n') {+        if (yych <= 'm')+          goto yy523;+      } else {+        if (yych == 's')+          goto yy656;+        goto yy523;+      }+    }+  yy655:+    yych = *++p;+    if (yych == 'G')+      goto yy663;+    if (yych == 'g')+      goto yy663;+    goto yy523;+  yy656:+    yych = *++p;+    if (yych == 'M')+      goto yy657;+    if (yych != 'm')+      goto yy523;+  yy657:+    yych = *++p;+    if (yych == 'E')+      goto yy658;+    if (yych != 'e')+      goto yy523;+  yy658:+    yych = *++p;+    if (yych == 'S')+      goto yy659;+    if (yych != 's')+      goto yy523;+  yy659:+    yych = *++p;+    if (yych == 'S')+      goto yy660;+    if (yych != 's')+      goto yy523;+  yy660:+    yych = *++p;+    if (yych == 'A')+      goto yy661;+    if (yych != 'a')+      goto yy523;+  yy661:+    yych = *++p;+    if (yych == 'G')+      goto yy662;+    if (yych != 'g')+      goto yy523;+  yy662:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy663:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy664:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy665:+    yych = *++p;+    if (yych == 'E')+      goto yy715;+    if (yych == 'e')+      goto yy715;+    goto yy523;+  yy666:+    yych = *++p;+    if (yych == 'H')+      goto yy533;+    if (yych == 'h')+      goto yy533;+    goto yy523;+  yy667:+    yych = *++p;+    if (yych == 'O')+      goto yy711;+    if (yych == 'o')+      goto yy711;+    goto yy523;+  yy668:+    yych = *++p;+    if (yych <= 'L') {+      if (yych == 'A')+        goto yy701;+      if (yych <= 'K')+        goto yy523;+      goto yy702;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy523;+        goto yy701;+      } else {+        if (yych == 'l')+          goto yy702;+        goto yy523;+      }+    }+  yy669:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'B')+        goto yy533;+      if (yych <= 'R')+        goto yy523;+      goto yy533;+    } else {+      if (yych <= 'b') {+        if (yych <= 'a')+          goto yy523;+        goto yy533;+      } else {+        if (yych == 's')+          goto yy533;+        goto yy523;+      }+    }+  yy670:+    yych = *++p;+    if (yych == 'Y')+      goto yy699;+    if (yych == 'y')+      goto yy699;+    goto yy523;+  yy671:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy672:+    yych = *++p;+    if (yych == 'T')+      goto yy698;+    if (yych == 't')+      goto yy698;+    goto yy523;+  yy673:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'C') {+        if (yych <= 'B')+          goto yy523;+        goto yy685;+      } else {+        if (yych <= 'Q')+          goto yy523;+        if (yych <= 'R')+          goto yy683;+        goto yy684;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'c')+          goto yy685;+        goto yy523;+      } else {+        if (yych <= 'r')+          goto yy683;+        if (yych <= 's')+          goto yy684;+        goto yy523;+      }+    }+  yy674:+    yych = *++p;+    if (yych == 'M')+      goto yy682;+    if (yych == 'm')+      goto yy682;+    goto yy523;+  yy675:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'E')+        goto yy679;+      if (yych <= 'O')+        goto yy523;+      goto yy680;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy523;+        goto yy679;+      } else {+        if (yych == 'p')+          goto yy680;+        goto yy523;+      }+    }+  yy676:+    yych = *++p;+    if (yych == 'T')+      goto yy677;+    if (yych != 't')+      goto yy523;+  yy677:+    yych = *++p;+    if (yych == 'T')+      goto yy678;+    if (yych != 't')+      goto yy523;+  yy678:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy679:+    yych = *++p;+    if (yych == 'V')+      goto yy681;+    if (yych == 'v')+      goto yy681;+    goto yy523;+  yy680:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy681:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy682:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy683:+    yych = *++p;+    if (yych == 'V')+      goto yy695;+    if (yych == 'v')+      goto yy695;+    goto yy523;+  yy684:+    yych = *++p;+    if (yych == 'S')+      goto yy692;+    if (yych == 's')+      goto yy692;+    goto yy523;+  yy685:+    yych = *++p;+    if (yych == 'O')+      goto yy686;+    if (yych != 'o')+      goto yy523;+  yy686:+    yych = *++p;+    if (yych == 'N')+      goto yy687;+    if (yych != 'n')+      goto yy523;+  yy687:+    yych = *++p;+    if (yych == 'D')+      goto yy688;+    if (yych != 'd')+      goto yy523;+  yy688:+    yych = *++p;+    if (yych == 'L')+      goto yy689;+    if (yych != 'l')+      goto yy523;+  yy689:+    yych = *++p;+    if (yych == 'I')+      goto yy690;+    if (yych != 'i')+      goto yy523;+  yy690:+    yych = *++p;+    if (yych == 'F')+      goto yy691;+    if (yych != 'f')+      goto yy523;+  yy691:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy692:+    yych = *++p;+    if (yych == 'I')+      goto yy693;+    if (yych != 'i')+      goto yy523;+  yy693:+    yych = *++p;+    if (yych == 'O')+      goto yy694;+    if (yych != 'o')+      goto yy523;+  yy694:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy695:+    yych = *++p;+    if (yych == 'I')+      goto yy696;+    if (yych != 'i')+      goto yy523;+  yy696:+    yych = *++p;+    if (yych == 'C')+      goto yy697;+    if (yych != 'c')+      goto yy523;+  yy697:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy698:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy699:+    yych = *++p;+    if (yych == 'P')+      goto yy700;+    if (yych != 'p')+      goto yy523;+  yy700:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy701:+    yych = *++p;+    if (yych == 'P')+      goto yy705;+    if (yych == 'p')+      goto yy705;+    goto yy523;+  yy702:+    yych = *++p;+    if (yych == 'D')+      goto yy703;+    if (yych != 'd')+      goto yy523;+  yy703:+    yych = *++p;+    if (yych == 'A')+      goto yy704;+    if (yych != 'a')+      goto yy523;+  yy704:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy705:+    yych = *++p;+    if (yych != '.')+      goto yy523;+    yych = *++p;+    if (yych == 'B')+      goto yy707;+    if (yych != 'b')+      goto yy523;+  yy707:+    yych = *++p;+    if (yych == 'E')+      goto yy708;+    if (yych != 'e')+      goto yy523;+  yy708:+    yych = *++p;+    if (yych == 'E')+      goto yy709;+    if (yych != 'e')+      goto yy523;+  yy709:+    yych = *++p;+    if (yych == 'P')+      goto yy710;+    if (yych != 'p')+      goto yy523;+  yy710:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy711:+    yych = *++p;+    if (yych == 'T')+      goto yy712;+    if (yych != 't')+      goto yy523;+  yy712:+    yych = *++p;+    if (yych == 'I')+      goto yy713;+    if (yych != 'i')+      goto yy523;+  yy713:+    yych = *++p;+    if (yych == 'F')+      goto yy714;+    if (yych != 'f')+      goto yy523;+  yy714:+    yych = *++p;+    if (yych == 'Y')+      goto yy533;+    if (yych == 'y')+      goto yy533;+    goto yy523;+  yy715:+    yych = *++p;+    if (yych == 'A')+      goto yy716;+    if (yych != 'a')+      goto yy523;+  yy716:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy717:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'M')+        goto yy729;+      if (yych <= 'R')+        goto yy523;+      goto yy728;+    } else {+      if (yych <= 'm') {+        if (yych <= 'l')+          goto yy523;+        goto yy729;+      } else {+        if (yych == 's')+          goto yy728;+        goto yy523;+      }+    }+  yy718:+    yych = *++p;+    if (yych == 'Y')+      goto yy726;+    if (yych == 'y')+      goto yy726;+    goto yy523;+  yy719:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy720:+    yych = *++p;+    if (yych == 'S')+      goto yy721;+    if (yych != 's')+      goto yy523;+  yy721:+    yych = *++p;+    if (yych <= 'N') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'O')+        goto yy722;+      if (yych != 'o')+        goto yy523;+    }+  yy722:+    yych = *++p;+    if (yych == 'U')+      goto yy723;+    if (yych != 'u')+      goto yy523;+  yy723:+    yych = *++p;+    if (yych == 'R')+      goto yy724;+    if (yych != 'r')+      goto yy523;+  yy724:+    yych = *++p;+    if (yych == 'C')+      goto yy725;+    if (yych != 'c')+      goto yy523;+  yy725:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy726:+    yych = *++p;+    if (yych == 'N')+      goto yy727;+    if (yych != 'n')+      goto yy523;+  yy727:+    yych = *++p;+    if (yych == 'C')+      goto yy533;+    if (yych == 'c')+      goto yy533;+    goto yy523;+  yy728:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy729:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy730:+    yych = *++p;+    if (yych == 'Y')+      goto yy750;+    if (yych == 'y')+      goto yy750;+    goto yy523;+  yy731:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'E')+        goto yy747;+      if (yych <= 'N')+        goto yy523;+      goto yy748;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy523;+        goto yy747;+      } else {+        if (yych == 'o')+          goto yy748;+        goto yy523;+      }+    }+  yy732:+    yych = *++p;+    if (yych == 'A')+      goto yy742;+    if (yych == 'a')+      goto yy742;+    goto yy523;+  yy733:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy735;+      if (yych <= 'O')+        goto yy523;+      goto yy736;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy523;+        goto yy735;+      } else {+        if (yych == 'p')+          goto yy736;+        goto yy523;+      }+    }+  yy734:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy735:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy736:+    yych = *++p;+    if (yych == 'A')+      goto yy737;+    if (yych != 'a')+      goto yy523;+  yy737:+    yych = *++p;+    if (yych == 'R')+      goto yy738;+    if (yych != 'r')+      goto yy523;+  yy738:+    yych = *++p;+    if (yych == 'A')+      goto yy739;+    if (yych != 'a')+      goto yy523;+  yy739:+    yych = *++p;+    if (yych == 'Z')+      goto yy740;+    if (yych != 'z')+      goto yy523;+  yy740:+    yych = *++p;+    if (yych == 'Z')+      goto yy741;+    if (yych != 'z')+      goto yy523;+  yy741:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy742:+    yych = *++p;+    if (yych == 'T')+      goto yy743;+    if (yych != 't')+      goto yy523;+  yy743:+    yych = *++p;+    if (yych == 'F')+      goto yy744;+    if (yych != 'f')+      goto yy523;+  yy744:+    yych = *++p;+    if (yych == 'O')+      goto yy745;+    if (yych != 'o')+      goto yy523;+  yy745:+    yych = *++p;+    if (yych == 'R')+      goto yy746;+    if (yych != 'r')+      goto yy523;+  yy746:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy747:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy748:+    yych = *++p;+    if (yych == 'X')+      goto yy749;+    if (yych != 'x')+      goto yy523;+  yy749:+    yych = *++p;+    if (yych == 'Y')+      goto yy533;+    if (yych == 'y')+      goto yy533;+    goto yy523;+  yy750:+    yych = *++p;+    if (yych == 'C')+      goto yy533;+    if (yych == 'c')+      goto yy533;+    goto yy523;+  yy751:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy752:+    yych = *++p;+    if (yych == 'A')+      goto yy753;+    if (yych != 'a')+      goto yy523;+  yy753:+    yych = *++p;+    if (yych == 'Q')+      goto yy754;+    if (yych != 'q')+      goto yy523;+  yy754:+    yych = *++p;+    if (yych == 'U')+      goto yy755;+    if (yych != 'u')+      goto yy523;+  yy755:+    yych = *++p;+    if (yych == 'E')+      goto yy756;+    if (yych != 'e')+      goto yy523;+  yy756:+    yych = *++p;+    if (yych == 'L')+      goto yy757;+    if (yych != 'l')+      goto yy523;+  yy757:+    yych = *++p;+    if (yych == 'O')+      goto yy758;+    if (yych != 'o')+      goto yy523;+  yy758:+    yych = *++p;+    if (yych == 'C')+      goto yy759;+    if (yych != 'c')+      goto yy523;+  yy759:+    yych = *++p;+    if (yych == 'K')+      goto yy760;+    if (yych != 'k')+      goto yy523;+  yy760:+    yych = *++p;+    if (yych == 'T')+      goto yy761;+    if (yych != 't')+      goto yy523;+  yy761:+    yych = *++p;+    if (yych == 'O')+      goto yy762;+    if (yych != 'o')+      goto yy523;+  yy762:+    yych = *++p;+    if (yych == 'K')+      goto yy763;+    if (yych != 'k')+      goto yy523;+  yy763:+    yych = *++p;+    if (yych == 'E')+      goto yy764;+    if (yych != 'e')+      goto yy523;+  yy764:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy765:+    yych = *++p;+    if (yych == 'T')+      goto yy772;+    if (yych == 't')+      goto yy772;+    goto yy523;+  yy766:+    yych = *++p;+    if (yych == 'T')+      goto yy771;+    if (yych == 't')+      goto yy771;+    goto yy523;+  yy767:+    yych = *++p;+    if (yych <= 'G') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'H')+        goto yy533;+      if (yych == 'h')+        goto yy533;+      goto yy523;+    }+  yy768:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy769:+    yych = *++p;+    if (yych == 'W')+      goto yy770;+    if (yych != 'w')+      goto yy523;+  yy770:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy771:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy772:+    yych = *++p;+    if (yych == 'E')+      goto yy773;+    if (yych != 'e')+      goto yy523;+  yy773:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy774:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy775:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'M')+        goto yy806;+      if (yych <= 'O')+        goto yy523;+      goto yy805;+    } else {+      if (yych <= 'm') {+        if (yych <= 'l')+          goto yy523;+        goto yy806;+      } else {+        if (yych == 'p')+          goto yy805;+        goto yy523;+      }+    }+  yy776:+    yych = *++p;+    if (yych <= 'Q') {+      if (yych <= '-') {+        if (yych <= ',')+          goto yy523;+        goto yy798;+      } else {+        if (yych == 'N')+          goto yy799;+        goto yy523;+      }+    } else {+      if (yych <= 'n') {+        if (yych <= 'R')+          goto yy797;+        if (yych <= 'm')+          goto yy523;+        goto yy799;+      } else {+        if (yych == 'r')+          goto yy797;+        goto yy523;+      }+    }+  yy777:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy778:+    yych = *++p;+    if (yych == 'S')+      goto yy793;+    if (yych == 's')+      goto yy793;+    goto yy523;+  yy779:+    yych = *++p;+    switch (yych) {+    case 'G':+    case 'g':+      goto yy784;+    case 'I':+    case 'i':+      goto yy783;+    case 'P':+    case 'p':+      goto yy785;+    case 'R':+    case 'r':+      goto yy786;+    default:+      goto yy523;+    }+  yy780:+    yych = *++p;+    if (yych == 'Q')+      goto yy782;+    if (yych == 'q')+      goto yy782;+    goto yy523;+  yy781:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy782:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy783:+    yych = *++p;+    if (yych == 'L')+      goto yy791;+    if (yych == 'l')+      goto yy791;+    goto yy523;+  yy784:+    yych = *++p;+    if (yych == 'N')+      goto yy789;+    if (yych == 'n')+      goto yy789;+    goto yy523;+  yy785:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy786:+    yych = *++p;+    if (yych == 'K')+      goto yy787;+    if (yych != 'k')+      goto yy523;+  yy787:+    yych = *++p;+    if (yych == 'E')+      goto yy788;+    if (yych != 'e')+      goto yy523;+  yy788:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy789:+    yych = *++p;+    if (yych == 'E')+      goto yy790;+    if (yych != 'e')+      goto yy523;+  yy790:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy791:+    yych = *++p;+    if (yych == 'T')+      goto yy792;+    if (yych != 't')+      goto yy523;+  yy792:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy793:+    yych = *++p;+    if (yych == 'S')+      goto yy794;+    if (yych != 's')+      goto yy523;+  yy794:+    yych = *++p;+    if (yych == 'A')+      goto yy795;+    if (yych != 'a')+      goto yy523;+  yy795:+    yych = *++p;+    if (yych == 'G')+      goto yy796;+    if (yych != 'g')+      goto yy523;+  yy796:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy797:+    yych = *++p;+    if (yych == 'P')+      goto yy804;+    if (yych == 'p')+      goto yy804;+    goto yy523;+  yy798:+    yych = *++p;+    if (yych == 'H')+      goto yy801;+    if (yych == 'h')+      goto yy801;+    goto yy523;+  yy799:+    yych = *++p;+    if (yych == 'I')+      goto yy800;+    if (yych != 'i')+      goto yy523;+  yy800:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy801:+    yych = *++p;+    if (yych == 'E')+      goto yy802;+    if (yych != 'e')+      goto yy523;+  yy802:+    yych = *++p;+    if (yych == 'L')+      goto yy803;+    if (yych != 'l')+      goto yy523;+  yy803:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy804:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy805:+    yych = *++p;+    if (yych == 'D')+      goto yy809;+    if (yych == 'd')+      goto yy809;+    goto yy523;+  yy806:+    yych = *++p;+    if (yych == 'B')+      goto yy807;+    if (yych != 'b')+      goto yy523;+  yy807:+    yych = *++p;+    if (yych == 'L')+      goto yy808;+    if (yych != 'l')+      goto yy523;+  yy808:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy809:+    yych = *++p;+    if (yych == 'A')+      goto yy810;+    if (yych != 'a')+      goto yy523;+  yy810:+    yych = *++p;+    if (yych == 'T')+      goto yy811;+    if (yych != 't')+      goto yy523;+  yy811:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy812:+    yych = *++p;+    if (yych == 'A')+      goto yy817;+    if (yych == 'a')+      goto yy817;+    goto yy523;+  yy813:+    yych = *++p;+    if (yych == 'S')+      goto yy814;+    if (yych != 's')+      goto yy523;+  yy814:+    yych = *++p;+    if (yych == 'T')+      goto yy815;+    if (yych != 't')+      goto yy523;+  yy815:+    yych = *++p;+    if (yych == 'F')+      goto yy816;+    if (yych != 'f')+      goto yy523;+  yy816:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy817:+    yych = *++p;+    if (yych == 'P')+      goto yy818;+    if (yych != 'p')+      goto yy523;+  yy818:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy819:+    yych = *++p;+    if (yych == 'M')+      goto yy842;+    if (yych == 'm')+      goto yy842;+    goto yy523;+  yy820:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'C')+        goto yy831;+      if (yych <= 'H')+        goto yy523;+      goto yy830;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy523;+        goto yy831;+      } else {+        if (yych == 'i')+          goto yy830;+        goto yy523;+      }+    }+  yy821:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'N')+        goto yy533;+      if (yych <= 'O')+        goto yy523;+      goto yy533;+    } else {+      if (yych <= 'n') {+        if (yych <= 'm')+          goto yy523;+        goto yy533;+      } else {+        if (yych == 'p')+          goto yy533;+        goto yy523;+      }+    }+  yy822:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'A')+        goto yy828;+      if (yych <= 'N')+        goto yy523;+      goto yy829;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy523;+        goto yy828;+      } else {+        if (yych == 'o')+          goto yy829;+        goto yy523;+      }+    }+  yy823:+    yych = *++p;+    if (yych == 'F')+      goto yy827;+    if (yych == 'f')+      goto yy827;+    goto yy523;+  yy824:+    yych = *++p;+    if (yych <= '@') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'A')+        goto yy826;+      if (yych == 'a')+        goto yy826;+      goto yy523;+    }+  yy825:+    yych = *++p;+    if (yych == 'X')+      goto yy533;+    if (yych == 'x')+      goto yy533;+    goto yy523;+  yy826:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy827:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy828:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy829:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy830:+    yych = *++p;+    if (yych == 'S')+      goto yy832;+    if (yych == 's')+      goto yy832;+    goto yy523;+  yy831:+    yych = *++p;+    if (yych <= ':') {+      if (yych == '6')+        goto yy533;+      if (yych <= '9')+        goto yy523;+      goto yy534;+    } else {+      if (yych <= 'S') {+        if (yych <= 'R')+          goto yy523;+        goto yy533;+      } else {+        if (yych == 's')+          goto yy533;+        goto yy523;+      }+    }+  yy832:+    yych = *++p;+    if (yych == '.')+      goto yy833;+    if (yych == ':')+      goto yy534;+    goto yy523;+  yy833:+    yych = *++p;+    if (yych <= 'X') {+      if (yych <= 'K') {+        if (yych == 'B')+          goto yy836;+        goto yy523;+      } else {+        if (yych <= 'L')+          goto yy834;+        if (yych <= 'W')+          goto yy523;+        goto yy835;+      }+    } else {+      if (yych <= 'k') {+        if (yych == 'b')+          goto yy836;+        goto yy523;+      } else {+        if (yych <= 'l')+          goto yy834;+        if (yych == 'x')+          goto yy835;+        goto yy523;+      }+    }+  yy834:+    yych = *++p;+    if (yych == 'W')+      goto yy841;+    if (yych == 'w')+      goto yy841;+    goto yy523;+  yy835:+    yych = *++p;+    if (yych == 'P')+      goto yy839;+    if (yych == 'p')+      goto yy839;+    goto yy523;+  yy836:+    yych = *++p;+    if (yych == 'E')+      goto yy837;+    if (yych != 'e')+      goto yy523;+  yy837:+    yych = *++p;+    if (yych == 'E')+      goto yy838;+    if (yych != 'e')+      goto yy523;+  yy838:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy839:+    yych = *++p;+    if (yych == 'C')+      goto yy840;+    if (yych != 'c')+      goto yy523;+  yy840:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy841:+    yych = *++p;+    if (yych == 'Z')+      goto yy533;+    if (yych == 'z')+      goto yy533;+    goto yy523;+  yy842:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy843:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy844:+    yych = *++p;+    if (yych == 'T')+      goto yy847;+    if (yych == 't')+      goto yy847;+    goto yy523;+  yy845:+    yych = *++p;+    if (yych != '2')+      goto yy523;+    yych = *++p;+    if (yych == '3')+      goto yy533;+    goto yy523;+  yy847:+    yych = *++p;+    if (yych == 'P')+      goto yy848;+    if (yych != 'p')+      goto yy523;+  yy848:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy849:+    yych = *++p;+    if (yych == 'A')+      goto yy865;+    if (yych == 'a')+      goto yy865;+    goto yy523;+  yy850:+    yych = *++p;+    if (yych <= 'Z') {+      if (yych == 'T')+        goto yy533;+      if (yych <= 'Y')+        goto yy523;+      goto yy856;+    } else {+      if (yych <= 't') {+        if (yych <= 's')+          goto yy523;+        goto yy533;+      } else {+        if (yych == 'z')+          goto yy856;+        goto yy523;+      }+    }+  yy851:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'P')+        goto yy853;+      if (yych == 'p')+        goto yy853;+      goto yy523;+    }+  yy852:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy853:+    yych = *++p;+    if (yych == 'H')+      goto yy854;+    if (yych != 'h')+      goto yy523;+  yy854:+    yych = *++p;+    if (yych == 'E')+      goto yy855;+    if (yych != 'e')+      goto yy523;+  yy855:+    yych = *++p;+    if (yych == 'R')+      goto yy533;+    if (yych == 'r')+      goto yy533;+    goto yy523;+  yy856:+    yych = *++p;+    if (yych == 'M')+      goto yy857;+    if (yych != 'm')+      goto yy523;+  yy857:+    yych = *++p;+    if (yych == 'O')+      goto yy858;+    if (yych != 'o')+      goto yy523;+  yy858:+    yych = *++p;+    if (yych == 'P')+      goto yy859;+    if (yych != 'p')+      goto yy523;+  yy859:+    yych = *++p;+    if (yych == 'R')+      goto yy860;+    if (yych != 'r')+      goto yy523;+  yy860:+    yych = *++p;+    if (yych == 'O')+      goto yy861;+    if (yych != 'o')+      goto yy523;+  yy861:+    yych = *++p;+    if (yych == 'J')+      goto yy862;+    if (yych != 'j')+      goto yy523;+  yy862:+    yych = *++p;+    if (yych == 'E')+      goto yy863;+    if (yych != 'e')+      goto yy523;+  yy863:+    yych = *++p;+    if (yych == 'C')+      goto yy864;+    if (yych != 'c')+      goto yy523;+  yy864:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy865:+    yych = *++p;+    if (yych == 'L')+      goto yy866;+    if (yych != 'l')+      goto yy523;+  yy866:+    yych = *++p;+    if (yych == 'K')+      goto yy533;+    if (yych == 'k')+      goto yy533;+    goto yy523;+  yy867:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'M') {+        if (yych == 'L')+          goto yy877;+        goto yy523;+      } else {+        if (yych <= 'N')+          goto yy878;+        if (yych <= 'R')+          goto yy523;+        goto yy879;+      }+    } else {+      if (yych <= 'm') {+        if (yych == 'l')+          goto yy877;+        goto yy523;+      } else {+        if (yych <= 'n')+          goto yy878;+        if (yych == 's')+          goto yy879;+        goto yy523;+      }+    }+  yy868:+    yych = *++p;+    if (yych == 'E')+      goto yy876;+    if (yych == 'e')+      goto yy876;+    goto yy523;+  yy869:+    yych = *++p;+    if (yych == 'C')+      goto yy871;+    if (yych == 'c')+      goto yy871;+    goto yy523;+  yy870:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy871:+    yych = *++p;+    if (yych == 'E')+      goto yy872;+    if (yych != 'e')+      goto yy523;+  yy872:+    yych = *++p;+    if (yych == 'T')+      goto yy873;+    if (yych != 't')+      goto yy523;+  yy873:+    yych = *++p;+    if (yych == 'I')+      goto yy874;+    if (yych != 'i')+      goto yy523;+  yy874:+    yych = *++p;+    if (yych == 'M')+      goto yy875;+    if (yych != 'm')+      goto yy523;+  yy875:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy876:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy877:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy878:+    yych = *++p;+    if (yych == 'G')+      goto yy880;+    if (yych == 'g')+      goto yy880;+    goto yy523;+  yy879:+    yych = *++p;+    if (yych == 'H')+      goto yy533;+    if (yych == 'h')+      goto yy533;+    goto yy523;+  yy880:+    yych = *++p;+    if (yych == 'E')+      goto yy881;+    if (yych != 'e')+      goto yy523;+  yy881:+    yych = *++p;+    if (yych == 'R')+      goto yy533;+    if (yych == 'r')+      goto yy533;+    goto yy523;+  yy882:+    yych = *++p;+    if (yych == 'T')+      goto yy900;+    if (yych == 't')+      goto yy900;+    goto yy523;+  yy883:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy884:+    yych = *++p;+    if (yych == 'M')+      goto yy533;+    if (yych == 'm')+      goto yy533;+    goto yy523;+  yy885:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'P')+        goto yy533;+      if (yych <= 'R')+        goto yy523;+      goto yy533;+    } else {+      if (yych <= 'p') {+        if (yych <= 'o')+          goto yy523;+        goto yy533;+      } else {+        if (yych == 's')+          goto yy533;+        goto yy523;+      }+    }+  yy886:+    yych = *++p;+    if (yych == 'I')+      goto yy894;+    if (yych == 'i')+      goto yy894;+    goto yy523;+  yy887:+    yych = *++p;+    if (yych == 'A')+      goto yy893;+    if (yych == 'a')+      goto yy893;+    goto yy523;+  yy888:+    yych = *++p;+    if (yych == 'O')+      goto yy891;+    if (yych == 'o')+      goto yy891;+    goto yy523;+  yy889:+    yych = *++p;+    if (yych == 'A')+      goto yy890;+    if (yych != 'a')+      goto yy523;+  yy890:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == ':')+        goto yy534;+      goto yy523;+    } else {+      if (yych <= 'S')+        goto yy533;+      if (yych == 's')+        goto yy533;+      goto yy523;+    }+  yy891:+    yych = *++p;+    if (yych == 'U')+      goto yy892;+    if (yych != 'u')+      goto yy523;+  yy892:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy893:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy894:+    yych = *++p;+    if (yych == 'U')+      goto yy895;+    if (yych != 'u')+      goto yy523;+  yy895:+    yych = *++p;+    if (yych == 'M')+      goto yy896;+    if (yych != 'm')+      goto yy523;+  yy896:+    yych = *++p;+    if (yych == 'X')+      goto yy897;+    if (yych != 'x')+      goto yy523;+  yy897:+    yych = *++p;+    if (yych == 'T')+      goto yy898;+    if (yych != 't')+      goto yy523;+  yy898:+    yych = *++p;+    if (yych == 'R')+      goto yy899;+    if (yych != 'r')+      goto yy523;+  yy899:+    yych = *++p;+    if (yych == 'A')+      goto yy533;+    if (yych == 'a')+      goto yy533;+    goto yy523;+  yy900:+    yych = *++p;+    if (yych == 'A')+      goto yy901;+    if (yych != 'a')+      goto yy523;+  yy901:+    yych = *++p;+    if (yych == 'C')+      goto yy902;+    if (yych != 'c')+      goto yy523;+  yy902:+    yych = *++p;+    if (yych == 'H')+      goto yy903;+    if (yych != 'h')+      goto yy523;+  yy903:+    yych = *++p;+    if (yych == 'M')+      goto yy904;+    if (yych != 'm')+      goto yy523;+  yy904:+    yych = *++p;+    if (yych == 'E')+      goto yy905;+    if (yych != 'e')+      goto yy523;+  yy905:+    yych = *++p;+    if (yych == 'N')+      goto yy906;+    if (yych != 'n')+      goto yy523;+  yy906:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy907:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy908:+    yych = *++p;+    if (yych <= 'V') {+      if (yych == 'R')+        goto yy533;+      if (yych <= 'U')+        goto yy523;+    } else {+      if (yych <= 'r') {+        if (yych <= 'q')+          goto yy523;+        goto yy533;+      } else {+        if (yych != 'v')+          goto yy523;+      }+    }+    yych = *++p;+    if (yych == 'A')+      goto yy910;+    if (yych != 'a')+      goto yy523;+  yy910:+    yych = *++p;+    if (yych == 'S')+      goto yy911;+    if (yych != 's')+      goto yy523;+  yy911:+    yych = *++p;+    if (yych == 'C')+      goto yy912;+    if (yych != 'c')+      goto yy523;+  yy912:+    yych = *++p;+    if (yych == 'R')+      goto yy913;+    if (yych != 'r')+      goto yy523;+  yy913:+    yych = *++p;+    if (yych == 'I')+      goto yy914;+    if (yych != 'i')+      goto yy523;+  yy914:+    yych = *++p;+    if (yych == 'P')+      goto yy915;+    if (yych != 'p')+      goto yy523;+  yy915:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy916:+    yych = *++p;+    if (yych == 'B')+      goto yy533;+    if (yych == 'b')+      goto yy533;+    goto yy523;+  yy917:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy918:+    yych = *++p;+    if (yych == 'N')+      goto yy925;+    if (yych == 'n')+      goto yy925;+    goto yy523;+  yy919:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy920:+    yych = *++p;+    if (yych == 'C')+      goto yy924;+    if (yych == 'c')+      goto yy924;+    goto yy523;+  yy921:+    yych = *++p;+    if (yych <= 'V') {+      if (yych == 'T')+        goto yy923;+      if (yych <= 'U')+        goto yy523;+      goto yy533;+    } else {+      if (yych <= 't') {+        if (yych <= 's')+          goto yy523;+        goto yy923;+      } else {+        if (yych == 'v')+          goto yy533;+        goto yy523;+      }+    }+  yy922:+    yych = *++p;+    if (yych == 'I')+      goto yy533;+    if (yych == 'i')+      goto yy533;+    goto yy523;+  yy923:+    yych = *++p;+    if (yych == 'A')+      goto yy533;+    if (yych == 'a')+      goto yy533;+    goto yy523;+  yy924:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy925:+    yych = *++p;+    if (yych == 'A')+      goto yy926;+    if (yych != 'a')+      goto yy523;+  yy926:+    yych = *++p;+    if (yych != '-')+      goto yy523;+    yych = *++p;+    if (yych == 'P')+      goto yy928;+    if (yych != 'p')+      goto yy523;+  yy928:+    yych = *++p;+    if (yych == 'L')+      goto yy929;+    if (yych != 'l')+      goto yy523;+  yy929:+    yych = *++p;+    if (yych == 'A')+      goto yy930;+    if (yych != 'a')+      goto yy523;+  yy930:+    yych = *++p;+    if (yych == 'Y')+      goto yy931;+    if (yych != 'y')+      goto yy523;+  yy931:+    yych = *++p;+    if (yych <= 'S') {+      if (yych == 'C')+        goto yy932;+      if (yych <= 'R')+        goto yy523;+      goto yy933;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy523;+      } else {+        if (yych == 's')+          goto yy933;+        goto yy523;+      }+    }+  yy932:+    yych = *++p;+    if (yych == 'O')+      goto yy938;+    if (yych == 'o')+      goto yy938;+    goto yy523;+  yy933:+    yych = *++p;+    if (yych == 'I')+      goto yy934;+    if (yych != 'i')+      goto yy523;+  yy934:+    yych = *++p;+    if (yych == 'N')+      goto yy935;+    if (yych != 'n')+      goto yy523;+  yy935:+    yych = *++p;+    if (yych == 'G')+      goto yy936;+    if (yych != 'g')+      goto yy523;+  yy936:+    yych = *++p;+    if (yych == 'L')+      goto yy937;+    if (yych != 'l')+      goto yy523;+  yy937:+    yych = *++p;+    if (yych == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  yy938:+    yych = *++p;+    if (yych == 'N')+      goto yy939;+    if (yych != 'n')+      goto yy523;+  yy939:+    yych = *++p;+    if (yych == 'T')+      goto yy940;+    if (yych != 't')+      goto yy523;+  yy940:+    yych = *++p;+    if (yych == 'A')+      goto yy941;+    if (yych != 'a')+      goto yy523;+  yy941:+    yych = *++p;+    if (yych == 'I')+      goto yy942;+    if (yych != 'i')+      goto yy523;+  yy942:+    yych = *++p;+    if (yych == 'N')+      goto yy943;+    if (yych != 'n')+      goto yy523;+  yy943:+    yych = *++p;+    if (yych == 'E')+      goto yy944;+    if (yych != 'e')+      goto yy523;+  yy944:+    yych = *++p;+    if (yych == 'R')+      goto yy533;+    if (yych == 'r')+      goto yy533;+    goto yy523;+  yy945:+    yych = *++p;+    if (yych == 'S')+      goto yy533;+    if (yych == 's')+      goto yy533;+    goto yy523;+  yy946:+    yych = *++p;+    if (yych <= 'N') {+      if (yych <= 'A') {+        if (yych <= '@')+          goto yy523;+        goto yy968;+      } else {+        if (yych <= 'L')+          goto yy523;+        if (yych <= 'M')+          goto yy969;+        goto yy970;+      }+    } else {+      if (yych <= 'l') {+        if (yych == 'a')+          goto yy968;+        goto yy523;+      } else {+        if (yych <= 'm')+          goto yy969;+        if (yych <= 'n')+          goto yy970;+        goto yy523;+      }+    }+  yy947:+    yych = *++p;+    if (yych == 'R')+      goto yy955;+    if (yych == 'r')+      goto yy955;+    goto yy523;+  yy948:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy952;+      if (yych <= 'O')+        goto yy523;+      goto yy533;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy523;+        goto yy952;+      } else {+        if (yych == 'p')+          goto yy533;+        goto yy523;+      }+    }+  yy949:+    yych = *++p;+    if (yych == 'I')+      goto yy951;+    if (yych == 'i')+      goto yy951;+    goto yy523;+  yy950:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy951:+    yych = *++p;+    if (yych == 'D')+      goto yy533;+    if (yych == 'd')+      goto yy533;+    goto yy523;+  yy952:+    yych = *++p;+    if (yych == 'L')+      goto yy953;+    if (yych != 'l')+      goto yy523;+  yy953:+    yych = *++p;+    if (yych == 'T')+      goto yy954;+    if (yych != 't')+      goto yy523;+  yy954:+    yych = *++p;+    if (yych == 'O')+      goto yy533;+    if (yych == 'o')+      goto yy533;+    goto yy523;+  yy955:+    yych = *++p;+    if (yych == 'O')+      goto yy956;+    if (yych != 'o')+      goto yy523;+  yy956:+    yych = *++p;+    if (yych == 'M')+      goto yy957;+    if (yych != 'm')+      goto yy523;+  yy957:+    yych = *++p;+    if (yych == 'E')+      goto yy958;+    if (yych != 'e')+      goto yy523;+  yy958:+    yych = *++p;+    if (yych == '-')+      goto yy959;+    if (yych == ':')+      goto yy534;+    goto yy523;+  yy959:+    yych = *++p;+    if (yych == 'E')+      goto yy960;+    if (yych != 'e')+      goto yy523;+  yy960:+    yych = *++p;+    if (yych == 'X')+      goto yy961;+    if (yych != 'x')+      goto yy523;+  yy961:+    yych = *++p;+    if (yych == 'T')+      goto yy962;+    if (yych != 't')+      goto yy523;+  yy962:+    yych = *++p;+    if (yych == 'E')+      goto yy963;+    if (yych != 'e')+      goto yy523;+  yy963:+    yych = *++p;+    if (yych == 'N')+      goto yy964;+    if (yych != 'n')+      goto yy523;+  yy964:+    yych = *++p;+    if (yych == 'S')+      goto yy965;+    if (yych != 's')+      goto yy523;+  yy965:+    yych = *++p;+    if (yych == 'I')+      goto yy966;+    if (yych != 'i')+      goto yy523;+  yy966:+    yych = *++p;+    if (yych == 'O')+      goto yy967;+    if (yych != 'o')+      goto yy523;+  yy967:+    yych = *++p;+    if (yych == 'N')+      goto yy533;+    if (yych == 'n')+      goto yy533;+    goto yy523;+  yy968:+    yych = *++p;+    if (yych == 'P')+      goto yy533;+    if (yych == 'p')+      goto yy533;+    goto yy523;+  yy969:+    yych = *++p;+    if (yych == '-')+      goto yy974;+    goto yy523;+  yy970:+    yych = *++p;+    if (yych == 'T')+      goto yy971;+    if (yych != 't')+      goto yy523;+  yy971:+    yych = *++p;+    if (yych == 'E')+      goto yy972;+    if (yych != 'e')+      goto yy523;+  yy972:+    yych = *++p;+    if (yych == 'N')+      goto yy973;+    if (yych != 'n')+      goto yy523;+  yy973:+    yych = *++p;+    if (yych == 'T')+      goto yy533;+    if (yych == 't')+      goto yy533;+    goto yy523;+  yy974:+    yych = *++p;+    if (yych == 'E')+      goto yy975;+    if (yych != 'e')+      goto yy523;+  yy975:+    yych = *++p;+    if (yych == 'V')+      goto yy976;+    if (yych != 'v')+      goto yy523;+  yy976:+    yych = *++p;+    if (yych == 'E')+      goto yy977;+    if (yych != 'e')+      goto yy523;+  yy977:+    yych = *++p;+    if (yych == 'N')+      goto yy978;+    if (yych != 'n')+      goto yy523;+  yy978:+    yych = *++p;+    if (yych == 'T')+      goto yy979;+    if (yych != 't')+      goto yy523;+  yy979:+    yych = *++p;+    if (yych == 'B')+      goto yy980;+    if (yych != 'b')+      goto yy523;+  yy980:+    yych = *++p;+    if (yych == 'R')+      goto yy981;+    if (yych != 'r')+      goto yy523;+  yy981:+    yych = *++p;+    if (yych == 'I')+      goto yy982;+    if (yych != 'i')+      goto yy523;+  yy982:+    yych = *++p;+    if (yych == 'T')+      goto yy983;+    if (yych != 't')+      goto yy523;+  yy983:+    yych = *++p;+    if (yych == 'E')+      goto yy984;+    if (yych != 'e')+      goto yy523;+  yy984:+    yych = *++p;+    if (yych != '-')+      goto yy523;+    yych = *++p;+    if (yych == 'A')+      goto yy986;+    if (yych != 'a')+      goto yy523;+  yy986:+    yych = *++p;+    if (yych == 'T')+      goto yy987;+    if (yych != 't')+      goto yy523;+  yy987:+    yych = *++p;+    if (yych == 'T')+      goto yy988;+    if (yych != 't')+      goto yy523;+  yy988:+    yych = *++p;+    if (yych == 'E')+      goto yy989;+    if (yych != 'e')+      goto yy523;+  yy989:+    yych = *++p;+    if (yych == 'N')+      goto yy990;+    if (yych != 'n')+      goto yy523;+  yy990:+    yych = *++p;+    if (yych == 'D')+      goto yy991;+    if (yych != 'd')+      goto yy523;+  yy991:+    yych = *++p;+    if (yych == 'E')+      goto yy992;+    if (yych != 'e')+      goto yy523;+  yy992:+    ++p;+    if ((yych = *p) == 'E')+      goto yy533;+    if (yych == 'e')+      goto yy533;+    goto yy523;+  }+}++// 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 = *(marker = p);+    if (yych <= '?') {+      if (yych <= ')') {+        if (yych <= ' ') {+          if (yych != '\n')+            goto yy997;+        } else {+          if (yych == '"')+            goto yy997;+          if (yych <= '\'')+            goto yy996;+          goto yy997;+        }+      } else {+        if (yych <= '9') {+          if (yych == ',')+            goto yy997;+          goto yy996;+        } else {+          if (yych == '=')+            goto yy996;+          if (yych <= '>')+            goto yy997;+          goto yy996;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= ']') {+          if (yych <= '@')+            goto yy997;+          if (yych <= 'Z')+            goto yy996;+          goto yy997;+        } else {+          if (yych <= '~')+            goto yy996;+          if (yych <= 0x7F)+            goto yy997;+          if (yych >= 0xC2)+            goto yy998;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1000;+          if (yych == 0xED)+            goto yy1005;+          goto yy1001;+        } else {+          if (yych <= 0xF0)+            goto yy1002;+          if (yych <= 0xF3)+            goto yy1003;+          if (yych <= 0xF4)+            goto yy1004;+        }+      }+    }+  yy995 : { return 0; }+  yy996:+    yych = *(marker = ++p);+    if (yych <= ',') {+      if (yych <= '"') {+        if (yych == '!')+          goto yy1008;+        goto yy995;+      } else {+        if (yych <= '\'')+          goto yy1008;+        if (yych <= ')')+          goto yy995;+        if (yych <= '+')+          goto yy1008;+        goto yy995;+      }+    } else {+      if (yych <= '>') {+        if (yych <= '9')+          goto yy1008;+        if (yych == '=')+          goto yy1008;+        goto yy995;+      } else {+        if (yych <= 'Z')+          goto yy1008;+        if (yych <= ']')+          goto yy995;+        if (yych <= '~')+          goto yy1008;+        goto yy995;+      }+    }+  yy997:+    yych = *++p;+    goto yy995;+  yy998:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy999;+    if (yych <= 0xBF)+      goto yy997;+  yy999:+    p = marker;+    goto yy995;+  yy1000:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy999;+    if (yych <= 0xBF)+      goto yy998;+    goto yy999;+  yy1001:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy999;+    if (yych <= 0xBF)+      goto yy998;+    goto yy999;+  yy1002:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy999;+    if (yych <= 0xBF)+      goto yy1001;+    goto yy999;+  yy1003:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy999;+    if (yych <= 0xBF)+      goto yy1001;+    goto yy999;+  yy1004:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy999;+    if (yych <= 0x8F)+      goto yy1001;+    goto yy999;+  yy1005:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy999;+    if (yych <= 0x9F)+      goto yy998;+    goto yy999;+  yy1006:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy999;+      if (yych <= '9')+        goto yy1009;+      goto yy999;+    } else {+      if (yych <= 'Z')+        goto yy1009;+      if (yych <= '`')+        goto yy999;+      if (yych <= 'z')+        goto yy1009;+      goto yy999;+    }+  yy1007:+    ++p;+    yych = *p;+  yy1008:+    if (yybm[0 + yych] & 128) {+      goto yy1007;+    }+    if (yych <= '>')+      goto yy999;+    if (yych <= '@')+      goto yy1006;+    goto yy999;+  yy1009:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1011;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1011;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1011;+        goto yy999;+      }+    }+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1139;+      if (yych <= '/')+        goto yy999;+      goto yy1140;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1140;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1140;+        goto yy999;+      }+    }+  yy1011:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych <= '-')+          goto yy1139;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1140;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1140;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1140;+        goto yy999;+      }+    }+  yy1012:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy999;+      if (yych <= '9')+        goto yy1015;+      goto yy999;+    } else {+      if (yych <= 'Z')+        goto yy1015;+      if (yych <= '`')+        goto yy999;+      if (yych <= 'z')+        goto yy1015;+      goto yy999;+    }+  yy1013:+    ++p;+    { return (bufsize_t)(p - start); }+  yy1015:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1017;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1017;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1017;+        goto yy999;+      }+    }+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1018;+      if (yych <= '/')+        goto yy999;+      goto yy1019;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1019;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1019;+        goto yy999;+      }+    }+  yy1017:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1019;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1019;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1019;+        goto yy999;+      }+    }+  yy1018:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1020;+      if (yych <= '/')+        goto yy999;+      goto yy1021;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1021;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1021;+        goto yy999;+      }+    }+  yy1019:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1021;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1021;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1021;+        goto yy999;+      }+    }+  yy1020:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1022;+      if (yych <= '/')+        goto yy999;+      goto yy1023;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1023;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1023;+        goto yy999;+      }+    }+  yy1021:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1023;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1023;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1023;+        goto yy999;+      }+    }+  yy1022:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1024;+      if (yych <= '/')+        goto yy999;+      goto yy1025;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1025;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1025;+        goto yy999;+      }+    }+  yy1023:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1025;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1025;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1025;+        goto yy999;+      }+    }+  yy1024:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1026;+      if (yych <= '/')+        goto yy999;+      goto yy1027;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1027;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1027;+        goto yy999;+      }+    }+  yy1025:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1027;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1027;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1027;+        goto yy999;+      }+    }+  yy1026:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1028;+      if (yych <= '/')+        goto yy999;+      goto yy1029;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1029;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1029;+        goto yy999;+      }+    }+  yy1027:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1029;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1029;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1029;+        goto yy999;+      }+    }+  yy1028:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1030;+      if (yych <= '/')+        goto yy999;+      goto yy1031;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1031;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1031;+        goto yy999;+      }+    }+  yy1029:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1031;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1031;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1031;+        goto yy999;+      }+    }+  yy1030:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1032;+      if (yych <= '/')+        goto yy999;+      goto yy1033;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1033;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1033;+        goto yy999;+      }+    }+  yy1031:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1033;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1033;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1033;+        goto yy999;+      }+    }+  yy1032:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1034;+      if (yych <= '/')+        goto yy999;+      goto yy1035;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1035;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1035;+        goto yy999;+      }+    }+  yy1033:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1035;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1035;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1035;+        goto yy999;+      }+    }+  yy1034:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1036;+      if (yych <= '/')+        goto yy999;+      goto yy1037;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1037;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1037;+        goto yy999;+      }+    }+  yy1035:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1037;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1037;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1037;+        goto yy999;+      }+    }+  yy1036:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1038;+      if (yych <= '/')+        goto yy999;+      goto yy1039;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1039;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1039;+        goto yy999;+      }+    }+  yy1037:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1039;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1039;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1039;+        goto yy999;+      }+    }+  yy1038:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1040;+      if (yych <= '/')+        goto yy999;+      goto yy1041;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1041;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1041;+        goto yy999;+      }+    }+  yy1039:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1041;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1041;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1041;+        goto yy999;+      }+    }+  yy1040:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1042;+      if (yych <= '/')+        goto yy999;+      goto yy1043;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1043;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1043;+        goto yy999;+      }+    }+  yy1041:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1043;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1043;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1043;+        goto yy999;+      }+    }+  yy1042:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1044;+      if (yych <= '/')+        goto yy999;+      goto yy1045;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1045;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1045;+        goto yy999;+      }+    }+  yy1043:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1045;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1045;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1045;+        goto yy999;+      }+    }+  yy1044:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1046;+      if (yych <= '/')+        goto yy999;+      goto yy1047;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1047;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1047;+        goto yy999;+      }+    }+  yy1045:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1047;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1047;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1047;+        goto yy999;+      }+    }+  yy1046:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1048;+      if (yych <= '/')+        goto yy999;+      goto yy1049;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1049;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1049;+        goto yy999;+      }+    }+  yy1047:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1049;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1049;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1049;+        goto yy999;+      }+    }+  yy1048:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1050;+      if (yych <= '/')+        goto yy999;+      goto yy1051;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1051;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1051;+        goto yy999;+      }+    }+  yy1049:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1051;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1051;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1051;+        goto yy999;+      }+    }+  yy1050:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1052;+      if (yych <= '/')+        goto yy999;+      goto yy1053;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1053;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1053;+        goto yy999;+      }+    }+  yy1051:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1053;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1053;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1053;+        goto yy999;+      }+    }+  yy1052:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1054;+      if (yych <= '/')+        goto yy999;+      goto yy1055;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1055;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1055;+        goto yy999;+      }+    }+  yy1053:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1055;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1055;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1055;+        goto yy999;+      }+    }+  yy1054:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1056;+      if (yych <= '/')+        goto yy999;+      goto yy1057;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1057;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1057;+        goto yy999;+      }+    }+  yy1055:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1057;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1057;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1057;+        goto yy999;+      }+    }+  yy1056:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1058;+      if (yych <= '/')+        goto yy999;+      goto yy1059;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1059;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1059;+        goto yy999;+      }+    }+  yy1057:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1059;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1059;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1059;+        goto yy999;+      }+    }+  yy1058:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1060;+      if (yych <= '/')+        goto yy999;+      goto yy1061;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1061;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1061;+        goto yy999;+      }+    }+  yy1059:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1061;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1061;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1061;+        goto yy999;+      }+    }+  yy1060:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1062;+      if (yych <= '/')+        goto yy999;+      goto yy1063;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1063;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1063;+        goto yy999;+      }+    }+  yy1061:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1063;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1063;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1063;+        goto yy999;+      }+    }+  yy1062:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1064;+      if (yych <= '/')+        goto yy999;+      goto yy1065;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1065;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1065;+        goto yy999;+      }+    }+  yy1063:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1065;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1065;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1065;+        goto yy999;+      }+    }+  yy1064:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1066;+      if (yych <= '/')+        goto yy999;+      goto yy1067;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1067;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1067;+        goto yy999;+      }+    }+  yy1065:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1067;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1067;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1067;+        goto yy999;+      }+    }+  yy1066:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1068;+      if (yych <= '/')+        goto yy999;+      goto yy1069;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1069;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1069;+        goto yy999;+      }+    }+  yy1067:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1069;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1069;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1069;+        goto yy999;+      }+    }+  yy1068:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1070;+      if (yych <= '/')+        goto yy999;+      goto yy1071;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1071;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1071;+        goto yy999;+      }+    }+  yy1069:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1071;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1071;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1071;+        goto yy999;+      }+    }+  yy1070:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1072;+      if (yych <= '/')+        goto yy999;+      goto yy1073;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1073;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1073;+        goto yy999;+      }+    }+  yy1071:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1073;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1073;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1073;+        goto yy999;+      }+    }+  yy1072:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1074;+      if (yych <= '/')+        goto yy999;+      goto yy1075;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1075;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1075;+        goto yy999;+      }+    }+  yy1073:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1075;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1075;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1075;+        goto yy999;+      }+    }+  yy1074:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1076;+      if (yych <= '/')+        goto yy999;+      goto yy1077;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1077;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1077;+        goto yy999;+      }+    }+  yy1075:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1077;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1077;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1077;+        goto yy999;+      }+    }+  yy1076:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1078;+      if (yych <= '/')+        goto yy999;+      goto yy1079;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1079;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1079;+        goto yy999;+      }+    }+  yy1077:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1079;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1079;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1079;+        goto yy999;+      }+    }+  yy1078:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1080;+      if (yych <= '/')+        goto yy999;+      goto yy1081;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1081;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1081;+        goto yy999;+      }+    }+  yy1079:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1081;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1081;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1081;+        goto yy999;+      }+    }+  yy1080:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1082;+      if (yych <= '/')+        goto yy999;+      goto yy1083;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1083;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1083;+        goto yy999;+      }+    }+  yy1081:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1083;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1083;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1083;+        goto yy999;+      }+    }+  yy1082:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1084;+      if (yych <= '/')+        goto yy999;+      goto yy1085;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1085;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1085;+        goto yy999;+      }+    }+  yy1083:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1085;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1085;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1085;+        goto yy999;+      }+    }+  yy1084:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1086;+      if (yych <= '/')+        goto yy999;+      goto yy1087;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1087;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1087;+        goto yy999;+      }+    }+  yy1085:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1087;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1087;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1087;+        goto yy999;+      }+    }+  yy1086:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1088;+      if (yych <= '/')+        goto yy999;+      goto yy1089;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1089;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1089;+        goto yy999;+      }+    }+  yy1087:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1089;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1089;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1089;+        goto yy999;+      }+    }+  yy1088:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1090;+      if (yych <= '/')+        goto yy999;+      goto yy1091;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1091;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1091;+        goto yy999;+      }+    }+  yy1089:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1091;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1091;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1091;+        goto yy999;+      }+    }+  yy1090:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1092;+      if (yych <= '/')+        goto yy999;+      goto yy1093;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1093;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1093;+        goto yy999;+      }+    }+  yy1091:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1093;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1093;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1093;+        goto yy999;+      }+    }+  yy1092:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1094;+      if (yych <= '/')+        goto yy999;+      goto yy1095;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1095;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1095;+        goto yy999;+      }+    }+  yy1093:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1095;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1095;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1095;+        goto yy999;+      }+    }+  yy1094:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1096;+      if (yych <= '/')+        goto yy999;+      goto yy1097;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1097;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1097;+        goto yy999;+      }+    }+  yy1095:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1097;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1097;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1097;+        goto yy999;+      }+    }+  yy1096:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1098;+      if (yych <= '/')+        goto yy999;+      goto yy1099;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1099;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1099;+        goto yy999;+      }+    }+  yy1097:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1099;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1099;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1099;+        goto yy999;+      }+    }+  yy1098:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1100;+      if (yych <= '/')+        goto yy999;+      goto yy1101;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1101;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1101;+        goto yy999;+      }+    }+  yy1099:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1101;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1101;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1101;+        goto yy999;+      }+    }+  yy1100:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1102;+      if (yych <= '/')+        goto yy999;+      goto yy1103;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1103;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1103;+        goto yy999;+      }+    }+  yy1101:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1103;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1103;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1103;+        goto yy999;+      }+    }+  yy1102:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1104;+      if (yych <= '/')+        goto yy999;+      goto yy1105;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1105;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1105;+        goto yy999;+      }+    }+  yy1103:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1105;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1105;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1105;+        goto yy999;+      }+    }+  yy1104:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1106;+      if (yych <= '/')+        goto yy999;+      goto yy1107;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1107;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1107;+        goto yy999;+      }+    }+  yy1105:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1107;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1107;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1107;+        goto yy999;+      }+    }+  yy1106:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1108;+      if (yych <= '/')+        goto yy999;+      goto yy1109;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1109;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1109;+        goto yy999;+      }+    }+  yy1107:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1109;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1109;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1109;+        goto yy999;+      }+    }+  yy1108:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1110;+      if (yych <= '/')+        goto yy999;+      goto yy1111;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1111;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1111;+        goto yy999;+      }+    }+  yy1109:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1111;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1111;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1111;+        goto yy999;+      }+    }+  yy1110:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1112;+      if (yych <= '/')+        goto yy999;+      goto yy1113;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1113;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1113;+        goto yy999;+      }+    }+  yy1111:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1113;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1113;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1113;+        goto yy999;+      }+    }+  yy1112:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1114;+      if (yych <= '/')+        goto yy999;+      goto yy1115;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1115;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1115;+        goto yy999;+      }+    }+  yy1113:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1115;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1115;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1115;+        goto yy999;+      }+    }+  yy1114:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1116;+      if (yych <= '/')+        goto yy999;+      goto yy1117;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1117;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1117;+        goto yy999;+      }+    }+  yy1115:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1117;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1117;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1117;+        goto yy999;+      }+    }+  yy1116:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1118;+      if (yych <= '/')+        goto yy999;+      goto yy1119;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1119;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1119;+        goto yy999;+      }+    }+  yy1117:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1119;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1119;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1119;+        goto yy999;+      }+    }+  yy1118:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1120;+      if (yych <= '/')+        goto yy999;+      goto yy1121;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1121;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1121;+        goto yy999;+      }+    }+  yy1119:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1121;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1121;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1121;+        goto yy999;+      }+    }+  yy1120:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1122;+      if (yych <= '/')+        goto yy999;+      goto yy1123;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1123;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1123;+        goto yy999;+      }+    }+  yy1121:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1123;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1123;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1123;+        goto yy999;+      }+    }+  yy1122:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1124;+      if (yych <= '/')+        goto yy999;+      goto yy1125;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1125;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1125;+        goto yy999;+      }+    }+  yy1123:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1125;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1125;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1125;+        goto yy999;+      }+    }+  yy1124:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1126;+      if (yych <= '/')+        goto yy999;+      goto yy1127;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1127;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1127;+        goto yy999;+      }+    }+  yy1125:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1127;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1127;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1127;+        goto yy999;+      }+    }+  yy1126:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1128;+      if (yych <= '/')+        goto yy999;+      goto yy1129;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1129;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1129;+        goto yy999;+      }+    }+  yy1127:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1129;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1129;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1129;+        goto yy999;+      }+    }+  yy1128:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1130;+      if (yych <= '/')+        goto yy999;+      goto yy1131;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1131;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1131;+        goto yy999;+      }+    }+  yy1129:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1131;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1131;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1131;+        goto yy999;+      }+    }+  yy1130:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1132;+      if (yych <= '/')+        goto yy999;+      goto yy1133;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1133;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1133;+        goto yy999;+      }+    }+  yy1131:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1133;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1133;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1133;+        goto yy999;+      }+    }+  yy1132:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1134;+      if (yych <= '/')+        goto yy999;+      goto yy1135;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1135;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1135;+        goto yy999;+      }+    }+  yy1133:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1135;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1135;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1135;+        goto yy999;+      }+    }+  yy1134:+    ++p;+    yych = *p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1136;+      if (yych <= '/')+        goto yy999;+      goto yy1137;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1137;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1137;+        goto yy999;+      }+    }+  yy1135:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1137;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1137;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1137;+        goto yy999;+      }+    }+  yy1136:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy999;+      if (yych <= '9')+        goto yy1138;+      goto yy999;+    } else {+      if (yych <= 'Z')+        goto yy1138;+      if (yych <= '`')+        goto yy999;+      if (yych <= 'z')+        goto yy1138;+      goto yy999;+    }+  yy1137:+    ++p;+    yych = *p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= '-')+          goto yy999;+        goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych >= ':')+          goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych >= '{')+          goto yy999;+      }+    }+  yy1138:+    ++p;+    yych = *p;+    if (yych == '.')+      goto yy1012;+    if (yych == '>')+      goto yy1013;+    goto yy999;+  yy1139:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1141;+      if (yych <= '/')+        goto yy999;+      goto yy1142;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1142;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1142;+        goto yy999;+      }+    }+  yy1140:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1142;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1142;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1142;+        goto yy999;+      }+    }+  yy1141:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1143;+      if (yych <= '/')+        goto yy999;+      goto yy1144;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1144;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1144;+        goto yy999;+      }+    }+  yy1142:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1144;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1144;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1144;+        goto yy999;+      }+    }+  yy1143:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1145;+      if (yych <= '/')+        goto yy999;+      goto yy1146;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1146;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1146;+        goto yy999;+      }+    }+  yy1144:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1146;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1146;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1146;+        goto yy999;+      }+    }+  yy1145:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1147;+      if (yych <= '/')+        goto yy999;+      goto yy1148;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1148;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1148;+        goto yy999;+      }+    }+  yy1146:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1148;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1148;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1148;+        goto yy999;+      }+    }+  yy1147:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1149;+      if (yych <= '/')+        goto yy999;+      goto yy1150;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1150;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1150;+        goto yy999;+      }+    }+  yy1148:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1150;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1150;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1150;+        goto yy999;+      }+    }+  yy1149:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1151;+      if (yych <= '/')+        goto yy999;+      goto yy1152;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1152;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1152;+        goto yy999;+      }+    }+  yy1150:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1152;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1152;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1152;+        goto yy999;+      }+    }+  yy1151:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1153;+      if (yych <= '/')+        goto yy999;+      goto yy1154;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1154;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1154;+        goto yy999;+      }+    }+  yy1152:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1154;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1154;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1154;+        goto yy999;+      }+    }+  yy1153:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1155;+      if (yych <= '/')+        goto yy999;+      goto yy1156;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1156;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1156;+        goto yy999;+      }+    }+  yy1154:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1156;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1156;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1156;+        goto yy999;+      }+    }+  yy1155:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1157;+      if (yych <= '/')+        goto yy999;+      goto yy1158;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1158;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1158;+        goto yy999;+      }+    }+  yy1156:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1158;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1158;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1158;+        goto yy999;+      }+    }+  yy1157:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1159;+      if (yych <= '/')+        goto yy999;+      goto yy1160;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1160;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1160;+        goto yy999;+      }+    }+  yy1158:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1160;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1160;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1160;+        goto yy999;+      }+    }+  yy1159:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1161;+      if (yych <= '/')+        goto yy999;+      goto yy1162;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1162;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1162;+        goto yy999;+      }+    }+  yy1160:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1162;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1162;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1162;+        goto yy999;+      }+    }+  yy1161:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1163;+      if (yych <= '/')+        goto yy999;+      goto yy1164;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1164;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1164;+        goto yy999;+      }+    }+  yy1162:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1164;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1164;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1164;+        goto yy999;+      }+    }+  yy1163:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1165;+      if (yych <= '/')+        goto yy999;+      goto yy1166;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1166;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1166;+        goto yy999;+      }+    }+  yy1164:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1166;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1166;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1166;+        goto yy999;+      }+    }+  yy1165:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1167;+      if (yych <= '/')+        goto yy999;+      goto yy1168;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1168;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1168;+        goto yy999;+      }+    }+  yy1166:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1168;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1168;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1168;+        goto yy999;+      }+    }+  yy1167:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1169;+      if (yych <= '/')+        goto yy999;+      goto yy1170;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1170;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1170;+        goto yy999;+      }+    }+  yy1168:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1170;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1170;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1170;+        goto yy999;+      }+    }+  yy1169:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1171;+      if (yych <= '/')+        goto yy999;+      goto yy1172;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1172;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1172;+        goto yy999;+      }+    }+  yy1170:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1172;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1172;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1172;+        goto yy999;+      }+    }+  yy1171:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1173;+      if (yych <= '/')+        goto yy999;+      goto yy1174;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1174;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1174;+        goto yy999;+      }+    }+  yy1172:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1174;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1174;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1174;+        goto yy999;+      }+    }+  yy1173:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1175;+      if (yych <= '/')+        goto yy999;+      goto yy1176;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1176;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1176;+        goto yy999;+      }+    }+  yy1174:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1176;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1176;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1176;+        goto yy999;+      }+    }+  yy1175:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1177;+      if (yych <= '/')+        goto yy999;+      goto yy1178;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1178;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1178;+        goto yy999;+      }+    }+  yy1176:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1178;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1178;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1178;+        goto yy999;+      }+    }+  yy1177:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1179;+      if (yych <= '/')+        goto yy999;+      goto yy1180;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1180;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1180;+        goto yy999;+      }+    }+  yy1178:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1180;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1180;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1180;+        goto yy999;+      }+    }+  yy1179:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1181;+      if (yych <= '/')+        goto yy999;+      goto yy1182;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1182;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1182;+        goto yy999;+      }+    }+  yy1180:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1182;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1182;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1182;+        goto yy999;+      }+    }+  yy1181:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1183;+      if (yych <= '/')+        goto yy999;+      goto yy1184;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1184;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1184;+        goto yy999;+      }+    }+  yy1182:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1184;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1184;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1184;+        goto yy999;+      }+    }+  yy1183:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1185;+      if (yych <= '/')+        goto yy999;+      goto yy1186;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1186;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1186;+        goto yy999;+      }+    }+  yy1184:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1186;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1186;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1186;+        goto yy999;+      }+    }+  yy1185:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1187;+      if (yych <= '/')+        goto yy999;+      goto yy1188;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1188;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1188;+        goto yy999;+      }+    }+  yy1186:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1188;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1188;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1188;+        goto yy999;+      }+    }+  yy1187:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1189;+      if (yych <= '/')+        goto yy999;+      goto yy1190;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1190;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1190;+        goto yy999;+      }+    }+  yy1188:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1190;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1190;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1190;+        goto yy999;+      }+    }+  yy1189:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1191;+      if (yych <= '/')+        goto yy999;+      goto yy1192;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1192;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1192;+        goto yy999;+      }+    }+  yy1190:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1192;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1192;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1192;+        goto yy999;+      }+    }+  yy1191:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1193;+      if (yych <= '/')+        goto yy999;+      goto yy1194;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1194;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1194;+        goto yy999;+      }+    }+  yy1192:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1194;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1194;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1194;+        goto yy999;+      }+    }+  yy1193:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1195;+      if (yych <= '/')+        goto yy999;+      goto yy1196;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1196;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1196;+        goto yy999;+      }+    }+  yy1194:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1196;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1196;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1196;+        goto yy999;+      }+    }+  yy1195:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1197;+      if (yych <= '/')+        goto yy999;+      goto yy1198;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1198;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1198;+        goto yy999;+      }+    }+  yy1196:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1198;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1198;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1198;+        goto yy999;+      }+    }+  yy1197:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1199;+      if (yych <= '/')+        goto yy999;+      goto yy1200;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1200;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1200;+        goto yy999;+      }+    }+  yy1198:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1200;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1200;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1200;+        goto yy999;+      }+    }+  yy1199:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1201;+      if (yych <= '/')+        goto yy999;+      goto yy1202;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1202;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1202;+        goto yy999;+      }+    }+  yy1200:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1202;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1202;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1202;+        goto yy999;+      }+    }+  yy1201:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1203;+      if (yych <= '/')+        goto yy999;+      goto yy1204;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1204;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1204;+        goto yy999;+      }+    }+  yy1202:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1204;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1204;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1204;+        goto yy999;+      }+    }+  yy1203:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1205;+      if (yych <= '/')+        goto yy999;+      goto yy1206;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1206;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1206;+        goto yy999;+      }+    }+  yy1204:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1206;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1206;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1206;+        goto yy999;+      }+    }+  yy1205:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1207;+      if (yych <= '/')+        goto yy999;+      goto yy1208;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1208;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1208;+        goto yy999;+      }+    }+  yy1206:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1208;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1208;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1208;+        goto yy999;+      }+    }+  yy1207:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1209;+      if (yych <= '/')+        goto yy999;+      goto yy1210;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1210;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1210;+        goto yy999;+      }+    }+  yy1208:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1210;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1210;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1210;+        goto yy999;+      }+    }+  yy1209:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1211;+      if (yych <= '/')+        goto yy999;+      goto yy1212;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1212;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1212;+        goto yy999;+      }+    }+  yy1210:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1212;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1212;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1212;+        goto yy999;+      }+    }+  yy1211:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1213;+      if (yych <= '/')+        goto yy999;+      goto yy1214;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1214;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1214;+        goto yy999;+      }+    }+  yy1212:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1214;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1214;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1214;+        goto yy999;+      }+    }+  yy1213:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1215;+      if (yych <= '/')+        goto yy999;+      goto yy1216;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1216;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1216;+        goto yy999;+      }+    }+  yy1214:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1216;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1216;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1216;+        goto yy999;+      }+    }+  yy1215:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1217;+      if (yych <= '/')+        goto yy999;+      goto yy1218;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1218;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1218;+        goto yy999;+      }+    }+  yy1216:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1218;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1218;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1218;+        goto yy999;+      }+    }+  yy1217:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1219;+      if (yych <= '/')+        goto yy999;+      goto yy1220;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1220;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1220;+        goto yy999;+      }+    }+  yy1218:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1220;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1220;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1220;+        goto yy999;+      }+    }+  yy1219:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1221;+      if (yych <= '/')+        goto yy999;+      goto yy1222;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1222;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1222;+        goto yy999;+      }+    }+  yy1220:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1222;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1222;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1222;+        goto yy999;+      }+    }+  yy1221:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1223;+      if (yych <= '/')+        goto yy999;+      goto yy1224;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1224;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1224;+        goto yy999;+      }+    }+  yy1222:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1224;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1224;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1224;+        goto yy999;+      }+    }+  yy1223:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1225;+      if (yych <= '/')+        goto yy999;+      goto yy1226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1226;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1226;+        goto yy999;+      }+    }+  yy1224:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1226;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1226;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1226;+        goto yy999;+      }+    }+  yy1225:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1227;+      if (yych <= '/')+        goto yy999;+      goto yy1228;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1228;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1228;+        goto yy999;+      }+    }+  yy1226:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1228;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1228;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1228;+        goto yy999;+      }+    }+  yy1227:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1229;+      if (yych <= '/')+        goto yy999;+      goto yy1230;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1230;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1230;+        goto yy999;+      }+    }+  yy1228:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1230;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1230;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1230;+        goto yy999;+      }+    }+  yy1229:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1231;+      if (yych <= '/')+        goto yy999;+      goto yy1232;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1232;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1232;+        goto yy999;+      }+    }+  yy1230:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1232;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1232;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1232;+        goto yy999;+      }+    }+  yy1231:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1233;+      if (yych <= '/')+        goto yy999;+      goto yy1234;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1234;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1234;+        goto yy999;+      }+    }+  yy1232:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1234;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1234;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1234;+        goto yy999;+      }+    }+  yy1233:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1235;+      if (yych <= '/')+        goto yy999;+      goto yy1236;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1236;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1236;+        goto yy999;+      }+    }+  yy1234:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1236;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1236;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1236;+        goto yy999;+      }+    }+  yy1235:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1237;+      if (yych <= '/')+        goto yy999;+      goto yy1238;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1238;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1238;+        goto yy999;+      }+    }+  yy1236:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1238;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1238;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1238;+        goto yy999;+      }+    }+  yy1237:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1239;+      if (yych <= '/')+        goto yy999;+      goto yy1240;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1240;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1240;+        goto yy999;+      }+    }+  yy1238:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1240;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1240;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1240;+        goto yy999;+      }+    }+  yy1239:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1241;+      if (yych <= '/')+        goto yy999;+      goto yy1242;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1242;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1242;+        goto yy999;+      }+    }+  yy1240:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1242;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1242;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1242;+        goto yy999;+      }+    }+  yy1241:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1243;+      if (yych <= '/')+        goto yy999;+      goto yy1244;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1244;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1244;+        goto yy999;+      }+    }+  yy1242:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1244;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1244;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1244;+        goto yy999;+      }+    }+  yy1243:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1245;+      if (yych <= '/')+        goto yy999;+      goto yy1246;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1246;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1246;+        goto yy999;+      }+    }+  yy1244:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1246;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1246;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1246;+        goto yy999;+      }+    }+  yy1245:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1247;+      if (yych <= '/')+        goto yy999;+      goto yy1248;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1248;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1248;+        goto yy999;+      }+    }+  yy1246:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1248;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1248;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1248;+        goto yy999;+      }+    }+  yy1247:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1249;+      if (yych <= '/')+        goto yy999;+      goto yy1250;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1250;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1250;+        goto yy999;+      }+    }+  yy1248:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1250;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1250;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1250;+        goto yy999;+      }+    }+  yy1249:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1251;+      if (yych <= '/')+        goto yy999;+      goto yy1252;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1252;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1252;+        goto yy999;+      }+    }+  yy1250:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1252;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1252;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1252;+        goto yy999;+      }+    }+  yy1251:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1253;+      if (yych <= '/')+        goto yy999;+      goto yy1254;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1254;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1254;+        goto yy999;+      }+    }+  yy1252:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1254;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1254;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1254;+        goto yy999;+      }+    }+  yy1253:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1255;+      if (yych <= '/')+        goto yy999;+      goto yy1256;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1256;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1256;+        goto yy999;+      }+    }+  yy1254:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1256;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1256;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1256;+        goto yy999;+      }+    }+  yy1255:+    yych = *++p;+    if (yych <= '9') {+      if (yych == '-')+        goto yy1257;+      if (yych <= '/')+        goto yy999;+      goto yy1258;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy999;+        goto yy1258;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1258;+        goto yy999;+      }+    }+  yy1256:+    yych = *++p;+    if (yych <= '=') {+      if (yych <= '.') {+        if (yych <= ',')+          goto yy999;+        if (yych >= '.')+          goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1258;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1258;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1258;+        goto yy999;+      }+    }+  yy1257:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy999;+      if (yych <= '9')+        goto yy1138;+      goto yy999;+    } else {+      if (yych <= 'Z')+        goto yy1138;+      if (yych <= '`')+        goto yy999;+      if (yych <= 'z')+        goto yy1138;+      goto yy999;+    }+  yy1258:+    ++p;+    if ((yych = *p) <= '=') {+      if (yych <= '.') {+        if (yych <= '-')+          goto yy999;+        goto yy1012;+      } else {+        if (yych <= '/')+          goto yy999;+        if (yych <= '9')+          goto yy1138;+        goto yy999;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1013;+        if (yych <= '@')+          goto yy999;+        goto yy1138;+      } else {+        if (yych <= '`')+          goto yy999;+        if (yych <= 'z')+          goto yy1138;+        goto yy999;+      }+    }+  }+}++// 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,   230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199,+        230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,+        230, 230, 230, 230, 199, 230, 70,  230, 230, 230, 230, 134, 230, 230,+        230, 230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254,+        254, 254, 246, 230, 198, 198, 196, 230, 230, 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, 230, 230, 226, 230, 246, 198, 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, 230, 230, 230,+        230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   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,   160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 32,  160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 128, 160, 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, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   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 = *(marker = p);+    if (yych <= '`') {+      if (yych <= '.') {+        if (yych <= '\n') {+          if (yych <= '\t')+            goto yy1266;+        } else {+          if (yych == '!')+            goto yy1264;+          goto yy1266;+        }+      } else {+        if (yych <= '?') {+          if (yych <= '/')+            goto yy1263;+          if (yych <= '>')+            goto yy1266;+          goto yy1265;+        } else {+          if (yych <= '@')+            goto yy1266;+          if (yych <= 'Z')+            goto yy1262;+          goto yy1266;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 'z')+            goto yy1262;+          if (yych <= 0x7F)+            goto yy1266;+        } else {+          if (yych <= 0xDF)+            goto yy1267;+          if (yych <= 0xE0)+            goto yy1269;+          goto yy1270;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1274;+          if (yych <= 0xEF)+            goto yy1270;+          goto yy1271;+        } else {+          if (yych <= 0xF3)+            goto yy1272;+          if (yych <= 0xF4)+            goto yy1273;+        }+      }+    }+  yy1261 : { return 0; }+  yy1262:+    yych = *(marker = ++p);+    if (yych <= '/') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1261;+        if (yych <= '\r')+          goto yy1366;+        if (yych <= 0x1F)+          goto yy1261;+        goto yy1366;+      } else {+        if (yych == '-')+          goto yy1364;+        if (yych <= '.')+          goto yy1261;+        goto yy1368;+      }+    } else {+      if (yych <= '@') {+        if (yych <= '9')+          goto yy1364;+        if (yych == '>')+          goto yy1285;+        goto yy1261;+      } else {+        if (yych <= 'Z')+          goto yy1364;+        if (yych <= '`')+          goto yy1261;+        if (yych <= 'z')+          goto yy1364;+        goto yy1261;+      }+    }+  yy1263:+    yych = *(marker = ++p);+    if (yych <= '@')+      goto yy1261;+    if (yych <= 'Z')+      goto yy1360;+    if (yych <= '`')+      goto yy1261;+    if (yych <= 'z')+      goto yy1360;+    goto yy1261;+  yy1264:+    yych = *(marker = ++p);+    if (yybm[256 + yych] & 64) {+      goto yy1295;+    }+    if (yych == '-')+      goto yy1297;+    if (yych <= '@')+      goto yy1261;+    if (yych <= '[')+      goto yy1294;+    goto yy1261;+  yy1265:+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy1261;+    if (yych <= 0x7F)+      goto yy1276;+    if (yych <= 0xC1)+      goto yy1261;+    if (yych <= 0xF4)+      goto yy1276;+    goto yy1261;+  yy1266:+    yych = *++p;+    goto yy1261;+  yy1267:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1266;+  yy1268:+    p = marker;+    goto yy1261;+  yy1269:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1267;+    goto yy1268;+  yy1270:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1267;+    goto yy1268;+  yy1271:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1270;+    goto yy1268;+  yy1272:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1270;+    goto yy1268;+  yy1273:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1270;+    goto yy1268;+  yy1274:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1267;+    goto yy1268;+  yy1275:+    ++p;+    yych = *p;+  yy1276:+    if (yybm[256 + yych] & 32) {+      goto yy1275;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '?')+          goto yy1284;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1277;+        if (yych <= 0xE0)+          goto yy1278;+        goto yy1279;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1283;+        if (yych <= 0xEF)+          goto yy1279;+        goto yy1280;+      } else {+        if (yych <= 0xF3)+          goto yy1281;+        if (yych <= 0xF4)+          goto yy1282;+        goto yy1268;+      }+    }+  yy1277:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1275;+    goto yy1268;+  yy1278:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1277;+    goto yy1268;+  yy1279:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1277;+    goto yy1268;+  yy1280:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1279;+    goto yy1268;+  yy1281:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1279;+    goto yy1268;+  yy1282:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1279;+    goto yy1268;+  yy1283:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1277;+    goto yy1268;+  yy1284:+    ++p;+    yych = *p;+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '=')+          goto yy1275;+      } else {+        if (yych <= 0x7F)+          goto yy1275;+        if (yych <= 0xC1)+          goto yy1268;+        if (yych <= 0xDF)+          goto yy1287;+        goto yy1288;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1293;+        goto yy1289;+      } else {+        if (yych <= 0xF0)+          goto yy1290;+        if (yych <= 0xF3)+          goto yy1291;+        if (yych <= 0xF4)+          goto yy1292;+        goto yy1268;+      }+    }+  yy1285:+    ++p;+    { return (bufsize_t)(p - start); }+  yy1287:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1275;+    goto yy1268;+  yy1288:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1287;+    goto yy1268;+  yy1289:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1287;+    goto yy1268;+  yy1290:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1289;+    goto yy1268;+  yy1291:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1289;+    goto yy1268;+  yy1292:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1289;+    goto yy1268;+  yy1293:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1287;+    goto yy1268;+  yy1294:+    yych = *++p;+    if (yych == 'C')+      goto yy1330;+    if (yych == 'c')+      goto yy1330;+    goto yy1268;+  yy1295:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 1) {+      goto yy1319;+    }+    if (yych <= '@')+      goto yy1268;+    if (yych <= 'Z')+      goto yy1295;+    goto yy1268;+  yy1297:+    yych = *++p;+    if (yych != '-')+      goto yy1268;+    yych = *++p;+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych != '-')+          goto yy1301;+      } else {+        if (yych <= '>')+          goto yy1268;+        if (yych <= 0xC1)+          goto yy1301;+        if (yych <= 0xDF)+          goto yy1302;+        goto yy1303;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1308;+        goto yy1304;+      } else {+        if (yych <= 0xF0)+          goto yy1305;+        if (yych <= 0xF3)+          goto yy1306;+        if (yych <= 0xF4)+          goto yy1307;+        goto yy1301;+      }+    }+    yych = *++p;+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych == '-')+          goto yy1318;+        goto yy1301;+      } else {+        if (yych <= '>')+          goto yy1268;+        if (yych <= 0xC1)+          goto yy1301;+        if (yych <= 0xDF)+          goto yy1302;+        goto yy1303;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1308;+        goto yy1304;+      } else {+        if (yych <= 0xF0)+          goto yy1305;+        if (yych <= 0xF3)+          goto yy1306;+        if (yych <= 0xF4)+          goto yy1307;+        goto yy1301;+      }+    }+  yy1300:+    ++p;+    yych = *p;+  yy1301:+    if (yybm[256 + yych] & 128) {+      goto yy1300;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '-')+          goto yy1309;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1310;+        if (yych <= 0xE0)+          goto yy1311;+        goto yy1312;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1316;+        if (yych <= 0xEF)+          goto yy1312;+        goto yy1313;+      } else {+        if (yych <= 0xF3)+          goto yy1314;+        if (yych <= 0xF4)+          goto yy1315;+        goto yy1268;+      }+    }+  yy1302:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1300;+    goto yy1268;+  yy1303:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1302;+    goto yy1268;+  yy1304:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1302;+    goto yy1268;+  yy1305:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1304;+    goto yy1268;+  yy1306:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1304;+    goto yy1268;+  yy1307:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1304;+    goto yy1268;+  yy1308:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1302;+    goto yy1268;+  yy1309:+    ++p;+    yych = *p;+    if (yybm[256 + yych] & 128) {+      goto yy1300;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '-')+          goto yy1317;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1310;+        if (yych <= 0xE0)+          goto yy1311;+        goto yy1312;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1316;+        if (yych <= 0xEF)+          goto yy1312;+        goto yy1313;+      } else {+        if (yych <= 0xF3)+          goto yy1314;+        if (yych <= 0xF4)+          goto yy1315;+        goto yy1268;+      }+    }+  yy1310:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1300;+    goto yy1268;+  yy1311:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1310;+    goto yy1268;+  yy1312:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1310;+    goto yy1268;+  yy1313:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1312;+    goto yy1268;+  yy1314:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1312;+    goto yy1268;+  yy1315:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1312;+    goto yy1268;+  yy1316:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1310;+    goto yy1268;+  yy1317:+    yych = *++p;+    if (yych == '>')+      goto yy1285;+    goto yy1268;+  yy1318:+    yych = *++p;+    if (yych == '>')+      goto yy1285;+    goto yy1268;+  yy1319:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 1) {+      goto yy1319;+    }+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych >= '>')+          goto yy1285;+      } else {+        if (yych <= 0x7F)+          goto yy1321;+        if (yych <= 0xC1)+          goto yy1268;+        if (yych <= 0xDF)+          goto yy1323;+        goto yy1324;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1329;+        goto yy1325;+      } else {+        if (yych <= 0xF0)+          goto yy1326;+        if (yych <= 0xF3)+          goto yy1327;+        if (yych <= 0xF4)+          goto yy1328;+        goto yy1268;+      }+    }+  yy1321:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 2) {+      goto yy1321;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '>')+          goto yy1285;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1323;+        if (yych <= 0xE0)+          goto yy1324;+        goto yy1325;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1329;+        if (yych <= 0xEF)+          goto yy1325;+        goto yy1326;+      } else {+        if (yych <= 0xF3)+          goto yy1327;+        if (yych <= 0xF4)+          goto yy1328;+        goto yy1268;+      }+    }+  yy1323:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1321;+    goto yy1268;+  yy1324:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1323;+    goto yy1268;+  yy1325:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1323;+    goto yy1268;+  yy1326:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1325;+    goto yy1268;+  yy1327:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1325;+    goto yy1268;+  yy1328:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1325;+    goto yy1268;+  yy1329:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1323;+    goto yy1268;+  yy1330:+    yych = *++p;+    if (yych == 'D')+      goto yy1331;+    if (yych != 'd')+      goto yy1268;+  yy1331:+    yych = *++p;+    if (yych == 'A')+      goto yy1332;+    if (yych != 'a')+      goto yy1268;+  yy1332:+    yych = *++p;+    if (yych == 'T')+      goto yy1333;+    if (yych != 't')+      goto yy1268;+  yy1333:+    yych = *++p;+    if (yych == 'A')+      goto yy1334;+    if (yych != 'a')+      goto yy1268;+  yy1334:+    yych = *++p;+    if (yych != '[')+      goto yy1268;+  yy1335:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 4) {+      goto yy1335;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= ']')+          goto yy1344;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1337;+        if (yych <= 0xE0)+          goto yy1338;+        goto yy1339;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1343;+        if (yych <= 0xEF)+          goto yy1339;+        goto yy1340;+      } else {+        if (yych <= 0xF3)+          goto yy1341;+        if (yych <= 0xF4)+          goto yy1342;+        goto yy1268;+      }+    }+  yy1337:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1335;+    goto yy1268;+  yy1338:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1337;+    goto yy1268;+  yy1339:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1337;+    goto yy1268;+  yy1340:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1339;+    goto yy1268;+  yy1341:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1339;+    goto yy1268;+  yy1342:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1339;+    goto yy1268;+  yy1343:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1337;+    goto yy1268;+  yy1344:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 4) {+      goto yy1335;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych >= '^')+          goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1346;+        if (yych <= 0xE0)+          goto yy1347;+        goto yy1348;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1352;+        if (yych <= 0xEF)+          goto yy1348;+        goto yy1349;+      } else {+        if (yych <= 0xF3)+          goto yy1350;+        if (yych <= 0xF4)+          goto yy1351;+        goto yy1268;+      }+    }+    ++p;+    yych = *p;+    if (yych <= 0xE0) {+      if (yych <= '>') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '=')+          goto yy1335;+        goto yy1285;+      } else {+        if (yych <= 0x7F)+          goto yy1335;+        if (yych <= 0xC1)+          goto yy1268;+        if (yych <= 0xDF)+          goto yy1353;+        goto yy1354;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1359;+        goto yy1355;+      } else {+        if (yych <= 0xF0)+          goto yy1356;+        if (yych <= 0xF3)+          goto yy1357;+        if (yych <= 0xF4)+          goto yy1358;+        goto yy1268;+      }+    }+  yy1346:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1335;+    goto yy1268;+  yy1347:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1346;+    goto yy1268;+  yy1348:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1346;+    goto yy1268;+  yy1349:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1348;+    goto yy1268;+  yy1350:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1348;+    goto yy1268;+  yy1351:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1348;+    goto yy1268;+  yy1352:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1346;+    goto yy1268;+  yy1353:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1335;+    goto yy1268;+  yy1354:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1353;+    goto yy1268;+  yy1355:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1353;+    goto yy1268;+  yy1356:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1355;+    goto yy1268;+  yy1357:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1355;+    goto yy1268;+  yy1358:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1355;+    goto yy1268;+  yy1359:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1353;+    goto yy1268;+  yy1360:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 8) {+      goto yy1360;+    }+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy1268;+      if (yych >= 0x0E)+        goto yy1268;+    } else {+      if (yych <= ' ')+        goto yy1362;+      if (yych == '>')+        goto yy1285;+      goto yy1268;+    }+  yy1362:+    ++p;+    yych = *p;+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy1268;+      if (yych <= '\r')+        goto yy1362;+      goto yy1268;+    } else {+      if (yych <= ' ')+        goto yy1362;+      if (yych == '>')+        goto yy1285;+      goto yy1268;+    }+  yy1364:+    ++p;+    yych = *p;+    if (yych <= '/') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1268;+        if (yych <= '\r')+          goto yy1366;+        if (yych <= 0x1F)+          goto yy1268;+      } else {+        if (yych == '-')+          goto yy1364;+        if (yych <= '.')+          goto yy1268;+        goto yy1368;+      }+    } else {+      if (yych <= '@') {+        if (yych <= '9')+          goto yy1364;+        if (yych == '>')+          goto yy1285;+        goto yy1268;+      } else {+        if (yych <= 'Z')+          goto yy1364;+        if (yych <= '`')+          goto yy1268;+        if (yych <= 'z')+          goto yy1364;+        goto yy1268;+      }+    }+  yy1366:+    ++p;+    yych = *p;+    if (yych <= ':') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1268;+        if (yych <= '\r')+          goto yy1366;+        if (yych <= 0x1F)+          goto yy1268;+        goto yy1366;+      } else {+        if (yych == '/')+          goto yy1368;+        if (yych <= '9')+          goto yy1268;+        goto yy1369;+      }+    } else {+      if (yych <= 'Z') {+        if (yych == '>')+          goto yy1285;+        if (yych <= '@')+          goto yy1268;+        goto yy1369;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy1268;+          goto yy1369;+        } else {+          if (yych <= '`')+            goto yy1268;+          if (yych <= 'z')+            goto yy1369;+          goto yy1268;+        }+      }+    }+  yy1368:+    yych = *++p;+    if (yych == '>')+      goto yy1285;+    goto yy1268;+  yy1369:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 16) {+      goto yy1369;+    }+    if (yych <= ',') {+      if (yych <= '\r') {+        if (yych <= 0x08)+          goto yy1268;+      } else {+        if (yych != ' ')+          goto yy1268;+      }+    } else {+      if (yych <= '<') {+        if (yych <= '/')+          goto yy1368;+        goto yy1268;+      } else {+        if (yych <= '=')+          goto yy1373;+        if (yych <= '>')+          goto yy1285;+        goto yy1268;+      }+    }+  yy1371:+    ++p;+    yych = *p;+    if (yych <= '<') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1268;+        if (yych <= '\r')+          goto yy1371;+        if (yych <= 0x1F)+          goto yy1268;+        goto yy1371;+      } else {+        if (yych <= '/') {+          if (yych <= '.')+            goto yy1268;+          goto yy1368;+        } else {+          if (yych == ':')+            goto yy1369;+          goto yy1268;+        }+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '=')+          goto yy1373;+        if (yych <= '>')+          goto yy1285;+        if (yych <= '@')+          goto yy1268;+        goto yy1369;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy1268;+          goto yy1369;+        } else {+          if (yych <= '`')+            goto yy1268;+          if (yych <= 'z')+            goto yy1369;+          goto yy1268;+        }+      }+    }+  yy1373:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1375;+    }+    if (yych <= 0xE0) {+      if (yych <= '"') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych >= '!')+          goto yy1386;+      } else {+        if (yych <= '\'')+          goto yy1384;+        if (yych <= 0xC1)+          goto yy1268;+        if (yych <= 0xDF)+          goto yy1377;+        goto yy1378;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1383;+        goto yy1379;+      } else {+        if (yych <= 0xF0)+          goto yy1380;+        if (yych <= 0xF3)+          goto yy1381;+        if (yych <= 0xF4)+          goto yy1382;+        goto yy1268;+      }+    }+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1375;+    }+    if (yych <= 0xDF) {+      if (yych <= '\'') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= ' ')+          goto yy1409;+        if (yych <= '"')+          goto yy1386;+        goto yy1384;+      } else {+        if (yych == '>')+          goto yy1285;+        if (yych <= 0xC1)+          goto yy1268;+        goto yy1377;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1378;+        if (yych == 0xED)+          goto yy1383;+        goto yy1379;+      } else {+        if (yych <= 0xF0)+          goto yy1380;+        if (yych <= 0xF3)+          goto yy1381;+        if (yych <= 0xF4)+          goto yy1382;+        goto yy1268;+      }+    }+  yy1375:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1375;+    }+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= ' ')+          goto yy1403;+        goto yy1268;+      } else {+        if (yych <= '>')+          goto yy1285;+        if (yych <= 0xC1)+          goto yy1268;+        if (yych >= 0xE0)+          goto yy1378;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1383;+        goto yy1379;+      } else {+        if (yych <= 0xF0)+          goto yy1380;+        if (yych <= 0xF3)+          goto yy1381;+        if (yych <= 0xF4)+          goto yy1382;+        goto yy1268;+      }+    }+  yy1377:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1375;+    goto yy1268;+  yy1378:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1377;+    goto yy1268;+  yy1379:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1377;+    goto yy1268;+  yy1380:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1379;+    goto yy1268;+  yy1381:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1379;+    goto yy1268;+  yy1382:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1379;+    goto yy1268;+  yy1383:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1377;+    goto yy1268;+  yy1384:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1384;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '\'')+          goto yy1395;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1396;+        if (yych <= 0xE0)+          goto yy1397;+        goto yy1398;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1402;+        if (yych <= 0xEF)+          goto yy1398;+        goto yy1399;+      } else {+        if (yych <= 0xF3)+          goto yy1400;+        if (yych <= 0xF4)+          goto yy1401;+        goto yy1268;+      }+    }+  yy1386:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1386;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1268;+        if (yych <= '"')+          goto yy1395;+        goto yy1268;+      } else {+        if (yych <= 0xDF)+          goto yy1388;+        if (yych <= 0xE0)+          goto yy1389;+        goto yy1390;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1394;+        if (yych <= 0xEF)+          goto yy1390;+        goto yy1391;+      } else {+        if (yych <= 0xF3)+          goto yy1392;+        if (yych <= 0xF4)+          goto yy1393;+        goto yy1268;+      }+    }+  yy1388:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1386;+    goto yy1268;+  yy1389:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1388;+    goto yy1268;+  yy1390:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1388;+    goto yy1268;+  yy1391:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1390;+    goto yy1268;+  yy1392:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1390;+    goto yy1268;+  yy1393:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1390;+    goto yy1268;+  yy1394:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1388;+    goto yy1268;+  yy1395:+    ++p;+    yych = *p;+    if (yych <= ' ') {+      if (yych <= 0x08)+        goto yy1268;+      if (yych <= '\r')+        goto yy1366;+      if (yych <= 0x1F)+        goto yy1268;+      goto yy1366;+    } else {+      if (yych <= '/') {+        if (yych <= '.')+          goto yy1268;+        goto yy1368;+      } else {+        if (yych == '>')+          goto yy1285;+        goto yy1268;+      }+    }+  yy1396:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1384;+    goto yy1268;+  yy1397:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1396;+    goto yy1268;+  yy1398:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1396;+    goto yy1268;+  yy1399:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1398;+    goto yy1268;+  yy1400:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0xBF)+      goto yy1398;+    goto yy1268;+  yy1401:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x8F)+      goto yy1398;+    goto yy1268;+  yy1402:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1268;+    if (yych <= 0x9F)+      goto yy1396;+    goto yy1268;+  yy1403:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '"') {+        if (yych <= '\r') {+          if (yych <= 0x00)+            goto yy1268;+          if (yych <= 0x08)+            goto yy1375;+          goto yy1403;+        } else {+          if (yych == ' ')+            goto yy1403;+          if (yych <= '!')+            goto yy1375;+          goto yy1268;+        }+      } else {+        if (yych <= ':') {+          if (yych == '\'')+            goto yy1268;+          if (yych <= '9')+            goto yy1375;+        } else {+          if (yych <= ';')+            goto yy1375;+          if (yych <= '=')+            goto yy1268;+          if (yych <= '>')+            goto yy1285;+          goto yy1375;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1405;+          if (yych <= '^')+            goto yy1375;+          if (yych >= '`')+            goto yy1268;+        } else {+          if (yych <= 'z')+            goto yy1405;+          if (yych <= 0x7F)+            goto yy1375;+          if (yych <= 0xC1)+            goto yy1268;+          goto yy1377;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1378;+          if (yych == 0xED)+            goto yy1383;+          goto yy1379;+        } else {+          if (yych <= 0xF0)+            goto yy1380;+          if (yych <= 0xF3)+            goto yy1381;+          if (yych <= 0xF4)+            goto yy1382;+          goto yy1268;+        }+      }+    }+  yy1405:+    ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= '&') {+        if (yych <= 0x1F) {+          if (yych <= 0x00)+            goto yy1268;+          if (yych <= 0x08)+            goto yy1375;+          if (yych >= 0x0E)+            goto yy1375;+        } else {+          if (yych <= ' ')+            goto yy1407;+          if (yych == '"')+            goto yy1268;+          goto yy1375;+        }+      } else {+        if (yych <= '/') {+          if (yych <= '\'')+            goto yy1268;+          if (yych <= ',')+            goto yy1375;+          if (yych <= '.')+            goto yy1405;+          goto yy1375;+        } else {+          if (yych <= ';') {+            if (yych <= ':')+              goto yy1405;+            goto yy1375;+          } else {+            if (yych <= '<')+              goto yy1268;+            if (yych <= '=')+              goto yy1373;+            goto yy1285;+          }+        }+      }+    } else {+      if (yych <= 0xC1) {+        if (yych <= '_') {+          if (yych <= '@')+            goto yy1375;+          if (yych <= 'Z')+            goto yy1405;+          if (yych <= '^')+            goto yy1375;+          goto yy1405;+        } else {+          if (yych <= '`')+            goto yy1268;+          if (yych <= 'z')+            goto yy1405;+          if (yych <= 0x7F)+            goto yy1375;+          goto yy1268;+        }+      } else {+        if (yych <= 0xED) {+          if (yych <= 0xDF)+            goto yy1377;+          if (yych <= 0xE0)+            goto yy1378;+          if (yych <= 0xEC)+            goto yy1379;+          goto yy1383;+        } else {+          if (yych <= 0xF0) {+            if (yych <= 0xEF)+              goto yy1379;+            goto yy1380;+          } else {+            if (yych <= 0xF3)+              goto yy1381;+            if (yych <= 0xF4)+              goto yy1382;+            goto yy1268;+          }+        }+      }+    }+  yy1407:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '&') {+        if (yych <= 0x1F) {+          if (yych <= 0x00)+            goto yy1268;+          if (yych <= 0x08)+            goto yy1375;+          if (yych <= '\r')+            goto yy1407;+          goto yy1375;+        } else {+          if (yych <= ' ')+            goto yy1407;+          if (yych == '"')+            goto yy1268;+          goto yy1375;+        }+      } else {+        if (yych <= ';') {+          if (yych <= '\'')+            goto yy1268;+          if (yych == ':')+            goto yy1405;+          goto yy1375;+        } else {+          if (yych <= '<')+            goto yy1268;+          if (yych <= '=')+            goto yy1373;+          if (yych <= '>')+            goto yy1285;+          goto yy1375;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1405;+          if (yych <= '^')+            goto yy1375;+          if (yych <= '_')+            goto yy1405;+          goto yy1268;+        } else {+          if (yych <= 'z')+            goto yy1405;+          if (yych <= 0x7F)+            goto yy1375;+          if (yych <= 0xC1)+            goto yy1268;+          goto yy1377;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1378;+          if (yych == 0xED)+            goto yy1383;+          goto yy1379;+        } else {+          if (yych <= 0xF0)+            goto yy1380;+          if (yych <= 0xF3)+            goto yy1381;+          if (yych <= 0xF4)+            goto yy1382;+          goto yy1268;+        }+      }+    }+  yy1409:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '"') {+        if (yych <= '\r') {+          if (yych <= 0x00)+            goto yy1268;+          if (yych <= 0x08)+            goto yy1375;+          goto yy1409;+        } else {+          if (yych == ' ')+            goto yy1409;+          if (yych <= '!')+            goto yy1375;+          goto yy1386;+        }+      } else {+        if (yych <= ':') {+          if (yych == '\'')+            goto yy1384;+          if (yych <= '9')+            goto yy1375;+          goto yy1405;+        } else {+          if (yych <= ';')+            goto yy1375;+          if (yych <= '=')+            goto yy1268;+          if (yych <= '>')+            goto yy1285;+          goto yy1375;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1405;+          if (yych <= '^')+            goto yy1375;+          if (yych <= '_')+            goto yy1405;+          goto yy1268;+        } else {+          if (yych <= 'z')+            goto yy1405;+          if (yych <= 0x7F)+            goto yy1375;+          if (yych <= 0xC1)+            goto yy1268;+          goto yy1377;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1378;+          if (yych == 0xED)+            goto yy1383;+          goto yy1379;+        } else {+          if (yych <= 0xF0)+            goto yy1380;+          if (yych <= 0xF3)+            goto yy1381;+          if (yych <= 0xF4)+            goto yy1382;+          goto yy1268;+        }+      }+    }+  }+}++// 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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= ';') {+        if (yych != '\n')+          goto yy1415;+      } else {+        if (yych <= '<')+          goto yy1414;+        if (yych <= 0x7F)+          goto yy1415;+        if (yych >= 0xC2)+          goto yy1416;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1418;+        if (yych == 0xED)+          goto yy1423;+        goto yy1419;+      } else {+        if (yych <= 0xF0)+          goto yy1420;+        if (yych <= 0xF3)+          goto yy1421;+        if (yych <= 0xF4)+          goto yy1422;+      }+    }+  yy1413 : { return 0; }+  yy1414:+    yych = *(marker = ++p);+    switch (yych) {+    case '!':+      goto yy1440;+    case '/':+      goto yy1424;+    case '?':+      goto yy1441;+    case 'A':+    case 'a':+      goto yy1426;+    case 'B':+    case 'b':+      goto yy1427;+    case 'C':+    case 'c':+      goto yy1428;+    case 'D':+    case 'd':+      goto yy1429;+    case 'F':+    case 'f':+      goto yy1430;+    case 'H':+    case 'h':+      goto yy1431;+    case 'I':+    case 'i':+      goto yy1432;+    case 'L':+    case 'l':+      goto yy1433;+    case 'M':+    case 'm':+      goto yy1434;+    case 'N':+    case 'n':+      goto yy1435;+    case 'O':+    case 'o':+      goto yy1436;+    case 'P':+    case 'p':+      goto yy1425;+    case 'S':+    case 's':+      goto yy1437;+    case 'T':+    case 't':+      goto yy1438;+    case 'U':+    case 'u':+      goto yy1439;+    default:+      goto yy1413;+    }+  yy1415:+    yych = *++p;+    goto yy1413;+  yy1416:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1417;+    if (yych <= 0xBF)+      goto yy1415;+  yy1417:+    p = marker;+    goto yy1413;+  yy1418:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1417;+    if (yych <= 0xBF)+      goto yy1416;+    goto yy1417;+  yy1419:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1417;+    if (yych <= 0xBF)+      goto yy1416;+    goto yy1417;+  yy1420:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1417;+    if (yych <= 0xBF)+      goto yy1419;+    goto yy1417;+  yy1421:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1417;+    if (yych <= 0xBF)+      goto yy1419;+    goto yy1417;+  yy1422:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1417;+    if (yych <= 0x8F)+      goto yy1419;+    goto yy1417;+  yy1423:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1417;+    if (yych <= 0x9F)+      goto yy1416;+    goto yy1417;+  yy1424:+    yych = *++p;+    switch (yych) {+    case 'A':+    case 'a':+      goto yy1426;+    case 'B':+    case 'b':+      goto yy1427;+    case 'C':+    case 'c':+      goto yy1428;+    case 'D':+    case 'd':+      goto yy1429;+    case 'F':+    case 'f':+      goto yy1430;+    case 'H':+    case 'h':+      goto yy1431;+    case 'I':+    case 'i':+      goto yy1432;+    case 'L':+    case 'l':+      goto yy1433;+    case 'M':+    case 'm':+      goto yy1434;+    case 'N':+    case 'n':+      goto yy1435;+    case 'O':+    case 'o':+      goto yy1436;+    case 'P':+    case 'p':+      goto yy1625;+    case 'S':+    case 's':+      goto yy1626;+    case 'T':+    case 't':+      goto yy1438;+    case 'U':+    case 'u':+      goto yy1439;+    default:+      goto yy1417;+    }+  yy1425:+    yych = *++p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        if (yych <= 0x1F)+          goto yy1417;+        goto yy1457;+      } else {+        if (yych == '/')+          goto yy1459;+        if (yych <= '=')+          goto yy1417;+        goto yy1457;+      }+    } else {+      if (yych <= 'R') {+        if (yych == 'A')+          goto yy1622;+        if (yych <= 'Q')+          goto yy1417;+        goto yy1621;+      } else {+        if (yych <= 'a') {+          if (yych <= '`')+            goto yy1417;+          goto yy1622;+        } else {+          if (yych == 'r')+            goto yy1621;+          goto yy1417;+        }+      }+    }+  yy1426:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'D') {+        if (yych <= 'C')+          goto yy1417;+        goto yy1610;+      } else {+        if (yych <= 'Q')+          goto yy1417;+        if (yych <= 'R')+          goto yy1609;+        goto yy1608;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'd')+          goto yy1610;+        goto yy1417;+      } else {+        if (yych <= 'r')+          goto yy1609;+        if (yych <= 's')+          goto yy1608;+        goto yy1417;+      }+    }+  yy1427:+    yych = *++p;+    if (yych <= 'O') {+      if (yych <= 'K') {+        if (yych == 'A')+          goto yy1594;+        goto yy1417;+      } else {+        if (yych <= 'L')+          goto yy1593;+        if (yych <= 'N')+          goto yy1417;+        goto yy1592;+      }+    } else {+      if (yych <= 'k') {+        if (yych == 'a')+          goto yy1594;+        goto yy1417;+      } else {+        if (yych <= 'l')+          goto yy1593;+        if (yych == 'o')+          goto yy1592;+        goto yy1417;+      }+    }+  yy1428:+    yych = *++p;+    if (yych <= 'O') {+      if (yych <= 'D') {+        if (yych == 'A')+          goto yy1579;+        goto yy1417;+      } else {+        if (yych <= 'E')+          goto yy1578;+        if (yych <= 'N')+          goto yy1417;+        goto yy1577;+      }+    } else {+      if (yych <= 'd') {+        if (yych == 'a')+          goto yy1579;+        goto yy1417;+      } else {+        if (yych <= 'e')+          goto yy1578;+        if (yych == 'o')+          goto yy1577;+        goto yy1417;+      }+    }+  yy1429:+    yych = *++p;+    switch (yych) {+    case 'D':+    case 'L':+    case 'T':+    case 'd':+    case 'l':+    case 't':+      goto yy1456;+    case 'E':+    case 'e':+      goto yy1569;+    case 'I':+    case 'i':+      goto yy1568;+    default:+      goto yy1417;+    }+  yy1430:+    yych = *++p;+    if (yych <= 'R') {+      if (yych <= 'N') {+        if (yych == 'I')+          goto yy1544;+        goto yy1417;+      } else {+        if (yych <= 'O')+          goto yy1543;+        if (yych <= 'Q')+          goto yy1417;+        goto yy1542;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'i')+          goto yy1544;+        goto yy1417;+      } else {+        if (yych <= 'o')+          goto yy1543;+        if (yych == 'r')+          goto yy1542;+        goto yy1417;+      }+    }+  yy1431:+    yych = *++p;+    if (yych <= 'S') {+      if (yych <= 'D') {+        if (yych == '1')+          goto yy1456;+        goto yy1417;+      } else {+        if (yych <= 'E')+          goto yy1537;+        if (yych == 'R')+          goto yy1456;+        goto yy1417;+      }+    } else {+      if (yych <= 'q') {+        if (yych <= 'T')+          goto yy1536;+        if (yych == 'e')+          goto yy1537;+        goto yy1417;+      } else {+        if (yych <= 'r')+          goto yy1456;+        if (yych == 't')+          goto yy1536;+        goto yy1417;+      }+    }+  yy1432:+    yych = *++p;+    if (yych == 'F')+      goto yy1532;+    if (yych == 'f')+      goto yy1532;+    goto yy1417;+  yy1433:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'E')+        goto yy1527;+      if (yych <= 'H')+        goto yy1417;+      goto yy1526;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy1417;+        goto yy1527;+      } else {+        if (yych == 'i')+          goto yy1526;+        goto yy1417;+      }+    }+  yy1434:+    yych = *++p;+    if (yych <= 'E') {+      if (yych == 'A')+        goto yy1518;+      if (yych <= 'D')+        goto yy1417;+      goto yy1517;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy1417;+        goto yy1518;+      } else {+        if (yych == 'e')+          goto yy1517;+        goto yy1417;+      }+    }+  yy1435:+    yych = *++p;+    if (yych <= 'O') {+      if (yych == 'A')+        goto yy1511;+      if (yych <= 'N')+        goto yy1417;+      goto yy1510;+    } else {+      if (yych <= 'a') {+        if (yych <= '`')+          goto yy1417;+        goto yy1511;+      } else {+        if (yych == 'o')+          goto yy1510;+        goto yy1417;+      }+    }+  yy1436:+    yych = *++p;+    if (yych <= 'P') {+      if (yych == 'L')+        goto yy1456;+      if (yych <= 'O')+        goto yy1417;+      goto yy1502;+    } else {+      if (yych <= 'l') {+        if (yych <= 'k')+          goto yy1417;+        goto yy1456;+      } else {+        if (yych == 'p')+          goto yy1502;+        goto yy1417;+      }+    }+  yy1437:+    yych = *++p;+    if (yych <= 'U') {+      if (yych <= 'E') {+        if (yych == 'C')+          goto yy1479;+        if (yych <= 'D')+          goto yy1417;+        goto yy1482;+      } else {+        if (yych <= 'O') {+          if (yych <= 'N')+            goto yy1417;+          goto yy1481;+        } else {+          if (yych <= 'S')+            goto yy1417;+          if (yych <= 'T')+            goto yy1478;+          goto yy1480;+        }+      }+    } else {+      if (yych <= 'n') {+        if (yych <= 'c') {+          if (yych <= 'b')+            goto yy1417;+          goto yy1479;+        } else {+          if (yych == 'e')+            goto yy1482;+          goto yy1417;+        }+      } else {+        if (yych <= 's') {+          if (yych <= 'o')+            goto yy1481;+          goto yy1417;+        } else {+          if (yych <= 't')+            goto yy1478;+          if (yych <= 'u')+            goto yy1480;+          goto yy1417;+        }+      }+    }+  yy1438:+    yych = *++p;+    switch (yych) {+    case 'A':+    case 'a':+      goto yy1465;+    case 'B':+    case 'b':+      goto yy1464;+    case 'D':+    case 'd':+      goto yy1456;+    case 'F':+    case 'f':+      goto yy1463;+    case 'H':+    case 'h':+      goto yy1462;+    case 'I':+    case 'i':+      goto yy1461;+    case 'R':+    case 'r':+      goto yy1460;+    default:+      goto yy1417;+    }+  yy1439:+    yych = *++p;+    if (yych == 'L')+      goto yy1456;+    if (yych == 'l')+      goto yy1456;+    goto yy1417;+  yy1440:+    yych = *++p;+    if (yych <= '@') {+      if (yych == '-')+        goto yy1443;+      goto yy1417;+    } else {+      if (yych <= 'Z')+        goto yy1444;+      if (yych <= '[')+        goto yy1446;+      goto yy1417;+    }+  yy1441:+    ++p;+    { return 3; }+  yy1443:+    yych = *++p;+    if (yych == '-')+      goto yy1454;+    goto yy1417;+  yy1444:+    ++p;+    { return 4; }+  yy1446:+    yych = *++p;+    if (yych == 'C')+      goto yy1447;+    if (yych != 'c')+      goto yy1417;+  yy1447:+    yych = *++p;+    if (yych == 'D')+      goto yy1448;+    if (yych != 'd')+      goto yy1417;+  yy1448:+    yych = *++p;+    if (yych == 'A')+      goto yy1449;+    if (yych != 'a')+      goto yy1417;+  yy1449:+    yych = *++p;+    if (yych == 'T')+      goto yy1450;+    if (yych != 't')+      goto yy1417;+  yy1450:+    yych = *++p;+    if (yych == 'A')+      goto yy1451;+    if (yych != 'a')+      goto yy1417;+  yy1451:+    yych = *++p;+    if (yych != '[')+      goto yy1417;+    ++p;+    { return 5; }+  yy1454:+    ++p;+    { return 2; }+  yy1456:+    yych = *++p;+    if (yych <= ' ') {+      if (yych <= 0x08)+        goto yy1417;+      if (yych <= '\r')+        goto yy1457;+      if (yych <= 0x1F)+        goto yy1417;+    } else {+      if (yych <= '/') {+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      } else {+        if (yych != '>')+          goto yy1417;+      }+    }+  yy1457:+    ++p;+    { return 6; }+  yy1459:+    yych = *++p;+    if (yych == '>')+      goto yy1457;+    goto yy1417;+  yy1460:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= '@') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'A')+          goto yy1476;+        if (yych == 'a')+          goto yy1476;+        goto yy1417;+      }+    }+  yy1461:+    yych = *++p;+    if (yych == 'T')+      goto yy1474;+    if (yych == 't')+      goto yy1474;+    goto yy1417;+  yy1462:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'D') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'E')+          goto yy1472;+        if (yych == 'e')+          goto yy1472;+        goto yy1417;+      }+    }+  yy1463:+    yych = *++p;+    if (yych == 'O')+      goto yy1470;+    if (yych == 'o')+      goto yy1470;+    goto yy1417;+  yy1464:+    yych = *++p;+    if (yych == 'O')+      goto yy1468;+    if (yych == 'o')+      goto yy1468;+    goto yy1417;+  yy1465:+    yych = *++p;+    if (yych == 'B')+      goto yy1466;+    if (yych != 'b')+      goto yy1417;+  yy1466:+    yych = *++p;+    if (yych == 'L')+      goto yy1467;+    if (yych != 'l')+      goto yy1417;+  yy1467:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1468:+    yych = *++p;+    if (yych == 'D')+      goto yy1469;+    if (yych != 'd')+      goto yy1417;+  yy1469:+    yych = *++p;+    if (yych == 'Y')+      goto yy1456;+    if (yych == 'y')+      goto yy1456;+    goto yy1417;+  yy1470:+    yych = *++p;+    if (yych == 'O')+      goto yy1471;+    if (yych != 'o')+      goto yy1417;+  yy1471:+    yych = *++p;+    if (yych == 'T')+      goto yy1456;+    if (yych == 't')+      goto yy1456;+    goto yy1417;+  yy1472:+    yych = *++p;+    if (yych == 'A')+      goto yy1473;+    if (yych != 'a')+      goto yy1417;+  yy1473:+    yych = *++p;+    if (yych == 'D')+      goto yy1456;+    if (yych == 'd')+      goto yy1456;+    goto yy1417;+  yy1474:+    yych = *++p;+    if (yych == 'L')+      goto yy1475;+    if (yych != 'l')+      goto yy1417;+  yy1475:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1476:+    yych = *++p;+    if (yych == 'C')+      goto yy1477;+    if (yych != 'c')+      goto yy1417;+  yy1477:+    yych = *++p;+    if (yych == 'K')+      goto yy1456;+    if (yych == 'k')+      goto yy1456;+    goto yy1417;+  yy1478:+    yych = *++p;+    if (yych == 'Y')+      goto yy1500;+    if (yych == 'y')+      goto yy1500;+    goto yy1417;+  yy1479:+    yych = *++p;+    if (yych == 'R')+      goto yy1494;+    if (yych == 'r')+      goto yy1494;+    goto yy1417;+  yy1480:+    yych = *++p;+    if (yych == 'M')+      goto yy1490;+    if (yych == 'm')+      goto yy1490;+    goto yy1417;+  yy1481:+    yych = *++p;+    if (yych == 'U')+      goto yy1487;+    if (yych == 'u')+      goto yy1487;+    goto yy1417;+  yy1482:+    yych = *++p;+    if (yych == 'C')+      goto yy1483;+    if (yych != 'c')+      goto yy1417;+  yy1483:+    yych = *++p;+    if (yych == 'T')+      goto yy1484;+    if (yych != 't')+      goto yy1417;+  yy1484:+    yych = *++p;+    if (yych == 'I')+      goto yy1485;+    if (yych != 'i')+      goto yy1417;+  yy1485:+    yych = *++p;+    if (yych == 'O')+      goto yy1486;+    if (yych != 'o')+      goto yy1417;+  yy1486:+    yych = *++p;+    if (yych == 'N')+      goto yy1456;+    if (yych == 'n')+      goto yy1456;+    goto yy1417;+  yy1487:+    yych = *++p;+    if (yych == 'R')+      goto yy1488;+    if (yych != 'r')+      goto yy1417;+  yy1488:+    yych = *++p;+    if (yych == 'C')+      goto yy1489;+    if (yych != 'c')+      goto yy1417;+  yy1489:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1490:+    yych = *++p;+    if (yych == 'M')+      goto yy1491;+    if (yych != 'm')+      goto yy1417;+  yy1491:+    yych = *++p;+    if (yych == 'A')+      goto yy1492;+    if (yych != 'a')+      goto yy1417;+  yy1492:+    yych = *++p;+    if (yych == 'R')+      goto yy1493;+    if (yych != 'r')+      goto yy1417;+  yy1493:+    yych = *++p;+    if (yych == 'Y')+      goto yy1456;+    if (yych == 'y')+      goto yy1456;+    goto yy1417;+  yy1494:+    yych = *++p;+    if (yych == 'I')+      goto yy1495;+    if (yych != 'i')+      goto yy1417;+  yy1495:+    yych = *++p;+    if (yych == 'P')+      goto yy1496;+    if (yych != 'p')+      goto yy1417;+  yy1496:+    yych = *++p;+    if (yych == 'T')+      goto yy1497;+    if (yych != 't')+      goto yy1417;+  yy1497:+    yych = *++p;+    if (yych <= 0x1F) {+      if (yych <= 0x08)+        goto yy1417;+      if (yych >= 0x0E)+        goto yy1417;+    } else {+      if (yych <= ' ')+        goto yy1498;+      if (yych != '>')+        goto yy1417;+    }+  yy1498:+    ++p;+    { return 1; }+  yy1500:+    yych = *++p;+    if (yych == 'L')+      goto yy1501;+    if (yych != 'l')+      goto yy1417;+  yy1501:+    yych = *++p;+    if (yych == 'E')+      goto yy1497;+    if (yych == 'e')+      goto yy1497;+    goto yy1417;+  yy1502:+    yych = *++p;+    if (yych == 'T')+      goto yy1503;+    if (yych != 't')+      goto yy1417;+  yy1503:+    yych = *++p;+    if (yych <= 'I') {+      if (yych == 'G')+        goto yy1505;+      if (yych <= 'H')+        goto yy1417;+    } else {+      if (yych <= 'g') {+        if (yych <= 'f')+          goto yy1417;+        goto yy1505;+      } else {+        if (yych != 'i')+          goto yy1417;+      }+    }+    yych = *++p;+    if (yych == 'O')+      goto yy1509;+    if (yych == 'o')+      goto yy1509;+    goto yy1417;+  yy1505:+    yych = *++p;+    if (yych == 'R')+      goto yy1506;+    if (yych != 'r')+      goto yy1417;+  yy1506:+    yych = *++p;+    if (yych == 'O')+      goto yy1507;+    if (yych != 'o')+      goto yy1417;+  yy1507:+    yych = *++p;+    if (yych == 'U')+      goto yy1508;+    if (yych != 'u')+      goto yy1417;+  yy1508:+    yych = *++p;+    if (yych == 'P')+      goto yy1456;+    if (yych == 'p')+      goto yy1456;+    goto yy1417;+  yy1509:+    yych = *++p;+    if (yych == 'N')+      goto yy1456;+    if (yych == 'n')+      goto yy1456;+    goto yy1417;+  yy1510:+    yych = *++p;+    if (yych == 'F')+      goto yy1512;+    if (yych == 'f')+      goto yy1512;+    goto yy1417;+  yy1511:+    yych = *++p;+    if (yych == 'V')+      goto yy1456;+    if (yych == 'v')+      goto yy1456;+    goto yy1417;+  yy1512:+    yych = *++p;+    if (yych == 'R')+      goto yy1513;+    if (yych != 'r')+      goto yy1417;+  yy1513:+    yych = *++p;+    if (yych == 'A')+      goto yy1514;+    if (yych != 'a')+      goto yy1417;+  yy1514:+    yych = *++p;+    if (yych == 'M')+      goto yy1515;+    if (yych != 'm')+      goto yy1417;+  yy1515:+    yych = *++p;+    if (yych == 'E')+      goto yy1516;+    if (yych != 'e')+      goto yy1417;+  yy1516:+    yych = *++p;+    if (yych == 'S')+      goto yy1456;+    if (yych == 's')+      goto yy1456;+    goto yy1417;+  yy1517:+    yych = *++p;+    if (yych <= 'T') {+      if (yych == 'N')+        goto yy1520;+      if (yych <= 'S')+        goto yy1417;+      goto yy1521;+    } else {+      if (yych <= 'n') {+        if (yych <= 'm')+          goto yy1417;+        goto yy1520;+      } else {+        if (yych == 't')+          goto yy1521;+        goto yy1417;+      }+    }+  yy1518:+    yych = *++p;+    if (yych == 'I')+      goto yy1519;+    if (yych != 'i')+      goto yy1417;+  yy1519:+    yych = *++p;+    if (yych == 'N')+      goto yy1456;+    if (yych == 'n')+      goto yy1456;+    goto yy1417;+  yy1520:+    yych = *++p;+    if (yych == 'U')+      goto yy1522;+    if (yych == 'u')+      goto yy1522;+    goto yy1417;+  yy1521:+    yych = *++p;+    if (yych == 'A')+      goto yy1456;+    if (yych == 'a')+      goto yy1456;+    goto yy1417;+  yy1522:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'H') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'I')+          goto yy1523;+        if (yych != 'i')+          goto yy1417;+      }+    }+  yy1523:+    yych = *++p;+    if (yych == 'T')+      goto yy1524;+    if (yych != 't')+      goto yy1417;+  yy1524:+    yych = *++p;+    if (yych == 'E')+      goto yy1525;+    if (yych != 'e')+      goto yy1417;+  yy1525:+    yych = *++p;+    if (yych == 'M')+      goto yy1456;+    if (yych == 'm')+      goto yy1456;+    goto yy1417;+  yy1526:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'M') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'N')+          goto yy1531;+        if (yych == 'n')+          goto yy1531;+        goto yy1417;+      }+    }+  yy1527:+    yych = *++p;+    if (yych == 'G')+      goto yy1528;+    if (yych != 'g')+      goto yy1417;+  yy1528:+    yych = *++p;+    if (yych == 'E')+      goto yy1529;+    if (yych != 'e')+      goto yy1417;+  yy1529:+    yych = *++p;+    if (yych == 'N')+      goto yy1530;+    if (yych != 'n')+      goto yy1417;+  yy1530:+    yych = *++p;+    if (yych == 'D')+      goto yy1456;+    if (yych == 'd')+      goto yy1456;+    goto yy1417;+  yy1531:+    yych = *++p;+    if (yych == 'K')+      goto yy1456;+    if (yych == 'k')+      goto yy1456;+    goto yy1417;+  yy1532:+    yych = *++p;+    if (yych == 'R')+      goto yy1533;+    if (yych != 'r')+      goto yy1417;+  yy1533:+    yych = *++p;+    if (yych == 'A')+      goto yy1534;+    if (yych != 'a')+      goto yy1417;+  yy1534:+    yych = *++p;+    if (yych == 'M')+      goto yy1535;+    if (yych != 'm')+      goto yy1417;+  yy1535:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1536:+    yych = *++p;+    if (yych == 'M')+      goto yy1541;+    if (yych == 'm')+      goto yy1541;+    goto yy1417;+  yy1537:+    yych = *++p;+    if (yych == 'A')+      goto yy1538;+    if (yych != 'a')+      goto yy1417;+  yy1538:+    yych = *++p;+    if (yych == 'D')+      goto yy1539;+    if (yych != 'd')+      goto yy1417;+  yy1539:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'D') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'E')+          goto yy1540;+        if (yych != 'e')+          goto yy1417;+      }+    }+  yy1540:+    yych = *++p;+    if (yych == 'R')+      goto yy1456;+    if (yych == 'r')+      goto yy1456;+    goto yy1417;+  yy1541:+    yych = *++p;+    if (yych == 'L')+      goto yy1456;+    if (yych == 'l')+      goto yy1456;+    goto yy1417;+  yy1542:+    yych = *++p;+    if (yych == 'A')+      goto yy1563;+    if (yych == 'a')+      goto yy1563;+    goto yy1417;+  yy1543:+    yych = *++p;+    if (yych <= 'R') {+      if (yych == 'O')+        goto yy1559;+      if (yych <= 'Q')+        goto yy1417;+      goto yy1560;+    } else {+      if (yych <= 'o') {+        if (yych <= 'n')+          goto yy1417;+        goto yy1559;+      } else {+        if (yych == 'r')+          goto yy1560;+        goto yy1417;+      }+    }+  yy1544:+    yych = *++p;+    if (yych <= 'G') {+      if (yych == 'E')+        goto yy1545;+      if (yych <= 'F')+        goto yy1417;+      goto yy1546;+    } else {+      if (yych <= 'e') {+        if (yych <= 'd')+          goto yy1417;+      } else {+        if (yych == 'g')+          goto yy1546;+        goto yy1417;+      }+    }+  yy1545:+    yych = *++p;+    if (yych == 'L')+      goto yy1555;+    if (yych == 'l')+      goto yy1555;+    goto yy1417;+  yy1546:+    yych = *++p;+    if (yych <= 'U') {+      if (yych == 'C')+        goto yy1548;+      if (yych <= 'T')+        goto yy1417;+    } else {+      if (yych <= 'c') {+        if (yych <= 'b')+          goto yy1417;+        goto yy1548;+      } else {+        if (yych != 'u')+          goto yy1417;+      }+    }+    yych = *++p;+    if (yych == 'R')+      goto yy1554;+    if (yych == 'r')+      goto yy1554;+    goto yy1417;+  yy1548:+    yych = *++p;+    if (yych == 'A')+      goto yy1549;+    if (yych != 'a')+      goto yy1417;+  yy1549:+    yych = *++p;+    if (yych == 'P')+      goto yy1550;+    if (yych != 'p')+      goto yy1417;+  yy1550:+    yych = *++p;+    if (yych == 'T')+      goto yy1551;+    if (yych != 't')+      goto yy1417;+  yy1551:+    yych = *++p;+    if (yych == 'I')+      goto yy1552;+    if (yych != 'i')+      goto yy1417;+  yy1552:+    yych = *++p;+    if (yych == 'O')+      goto yy1553;+    if (yych != 'o')+      goto yy1417;+  yy1553:+    yych = *++p;+    if (yych == 'N')+      goto yy1456;+    if (yych == 'n')+      goto yy1456;+    goto yy1417;+  yy1554:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1555:+    yych = *++p;+    if (yych == 'D')+      goto yy1556;+    if (yych != 'd')+      goto yy1417;+  yy1556:+    yych = *++p;+    if (yych == 'S')+      goto yy1557;+    if (yych != 's')+      goto yy1417;+  yy1557:+    yych = *++p;+    if (yych == 'E')+      goto yy1558;+    if (yych != 'e')+      goto yy1417;+  yy1558:+    yych = *++p;+    if (yych == 'T')+      goto yy1456;+    if (yych == 't')+      goto yy1456;+    goto yy1417;+  yy1559:+    yych = *++p;+    if (yych == 'T')+      goto yy1561;+    if (yych == 't')+      goto yy1561;+    goto yy1417;+  yy1560:+    yych = *++p;+    if (yych == 'M')+      goto yy1456;+    if (yych == 'm')+      goto yy1456;+    goto yy1417;+  yy1561:+    yych = *++p;+    if (yych == 'E')+      goto yy1562;+    if (yych != 'e')+      goto yy1417;+  yy1562:+    yych = *++p;+    if (yych == 'R')+      goto yy1456;+    if (yych == 'r')+      goto yy1456;+    goto yy1417;+  yy1563:+    yych = *++p;+    if (yych == 'M')+      goto yy1564;+    if (yych != 'm')+      goto yy1417;+  yy1564:+    yych = *++p;+    if (yych == 'E')+      goto yy1565;+    if (yych != 'e')+      goto yy1417;+  yy1565:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'R') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'S')+          goto yy1566;+        if (yych != 's')+          goto yy1417;+      }+    }+  yy1566:+    yych = *++p;+    if (yych == 'E')+      goto yy1567;+    if (yych != 'e')+      goto yy1417;+  yy1567:+    yych = *++p;+    if (yych == 'T')+      goto yy1456;+    if (yych == 't')+      goto yy1456;+    goto yy1417;+  yy1568:+    yych = *++p;+    if (yych <= 'V') {+      if (yych <= 'Q') {+        if (yych == 'A')+          goto yy1574;+        goto yy1417;+      } else {+        if (yych <= 'R')+          goto yy1456;+        if (yych <= 'U')+          goto yy1417;+        goto yy1456;+      }+    } else {+      if (yych <= 'q') {+        if (yych == 'a')+          goto yy1574;+        goto yy1417;+      } else {+        if (yych <= 'r')+          goto yy1456;+        if (yych == 'v')+          goto yy1456;+        goto yy1417;+      }+    }+  yy1569:+    yych = *++p;+    if (yych == 'T')+      goto yy1570;+    if (yych != 't')+      goto yy1417;+  yy1570:+    yych = *++p;+    if (yych == 'A')+      goto yy1571;+    if (yych != 'a')+      goto yy1417;+  yy1571:+    yych = *++p;+    if (yych == 'I')+      goto yy1572;+    if (yych != 'i')+      goto yy1417;+  yy1572:+    yych = *++p;+    if (yych == 'L')+      goto yy1573;+    if (yych != 'l')+      goto yy1417;+  yy1573:+    yych = *++p;+    if (yych == 'S')+      goto yy1456;+    if (yych == 's')+      goto yy1456;+    goto yy1417;+  yy1574:+    yych = *++p;+    if (yych == 'L')+      goto yy1575;+    if (yych != 'l')+      goto yy1417;+  yy1575:+    yych = *++p;+    if (yych == 'O')+      goto yy1576;+    if (yych != 'o')+      goto yy1417;+  yy1576:+    yych = *++p;+    if (yych == 'G')+      goto yy1456;+    if (yych == 'g')+      goto yy1456;+    goto yy1417;+  yy1577:+    yych = *++p;+    if (yych == 'L')+      goto yy1587;+    if (yych == 'l')+      goto yy1587;+    goto yy1417;+  yy1578:+    yych = *++p;+    if (yych == 'N')+      goto yy1584;+    if (yych == 'n')+      goto yy1584;+    goto yy1417;+  yy1579:+    yych = *++p;+    if (yych == 'P')+      goto yy1580;+    if (yych != 'p')+      goto yy1417;+  yy1580:+    yych = *++p;+    if (yych == 'T')+      goto yy1581;+    if (yych != 't')+      goto yy1417;+  yy1581:+    yych = *++p;+    if (yych == 'I')+      goto yy1582;+    if (yych != 'i')+      goto yy1417;+  yy1582:+    yych = *++p;+    if (yych == 'O')+      goto yy1583;+    if (yych != 'o')+      goto yy1417;+  yy1583:+    yych = *++p;+    if (yych == 'N')+      goto yy1456;+    if (yych == 'n')+      goto yy1456;+    goto yy1417;+  yy1584:+    yych = *++p;+    if (yych == 'T')+      goto yy1585;+    if (yych != 't')+      goto yy1417;+  yy1585:+    yych = *++p;+    if (yych == 'E')+      goto yy1586;+    if (yych != 'e')+      goto yy1417;+  yy1586:+    yych = *++p;+    if (yych == 'R')+      goto yy1456;+    if (yych == 'r')+      goto yy1456;+    goto yy1417;+  yy1587:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'F') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'G')+          goto yy1588;+        if (yych != 'g')+          goto yy1417;+      }+    }+  yy1588:+    yych = *++p;+    if (yych == 'R')+      goto yy1589;+    if (yych != 'r')+      goto yy1417;+  yy1589:+    yych = *++p;+    if (yych == 'O')+      goto yy1590;+    if (yych != 'o')+      goto yy1417;+  yy1590:+    yych = *++p;+    if (yych == 'U')+      goto yy1591;+    if (yych != 'u')+      goto yy1417;+  yy1591:+    yych = *++p;+    if (yych == 'P')+      goto yy1456;+    if (yych == 'p')+      goto yy1456;+    goto yy1417;+  yy1592:+    yych = *++p;+    if (yych == 'D')+      goto yy1607;+    if (yych == 'd')+      goto yy1607;+    goto yy1417;+  yy1593:+    yych = *++p;+    if (yych == 'O')+      goto yy1600;+    if (yych == 'o')+      goto yy1600;+    goto yy1417;+  yy1594:+    yych = *++p;+    if (yych == 'S')+      goto yy1595;+    if (yych != 's')+      goto yy1417;+  yy1595:+    yych = *++p;+    if (yych == 'E')+      goto yy1596;+    if (yych != 'e')+      goto yy1417;+  yy1596:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= 'E') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'F')+          goto yy1597;+        if (yych != 'f')+          goto yy1417;+      }+    }+  yy1597:+    yych = *++p;+    if (yych == 'O')+      goto yy1598;+    if (yych != 'o')+      goto yy1417;+  yy1598:+    yych = *++p;+    if (yych == 'N')+      goto yy1599;+    if (yych != 'n')+      goto yy1417;+  yy1599:+    yych = *++p;+    if (yych == 'T')+      goto yy1456;+    if (yych == 't')+      goto yy1456;+    goto yy1417;+  yy1600:+    yych = *++p;+    if (yych == 'C')+      goto yy1601;+    if (yych != 'c')+      goto yy1417;+  yy1601:+    yych = *++p;+    if (yych == 'K')+      goto yy1602;+    if (yych != 'k')+      goto yy1417;+  yy1602:+    yych = *++p;+    if (yych == 'Q')+      goto yy1603;+    if (yych != 'q')+      goto yy1417;+  yy1603:+    yych = *++p;+    if (yych == 'U')+      goto yy1604;+    if (yych != 'u')+      goto yy1417;+  yy1604:+    yych = *++p;+    if (yych == 'O')+      goto yy1605;+    if (yych != 'o')+      goto yy1417;+  yy1605:+    yych = *++p;+    if (yych == 'T')+      goto yy1606;+    if (yych != 't')+      goto yy1417;+  yy1606:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1607:+    yych = *++p;+    if (yych == 'Y')+      goto yy1456;+    if (yych == 'y')+      goto yy1456;+    goto yy1417;+  yy1608:+    yych = *++p;+    if (yych == 'I')+      goto yy1619;+    if (yych == 'i')+      goto yy1619;+    goto yy1417;+  yy1609:+    yych = *++p;+    if (yych == 'T')+      goto yy1615;+    if (yych == 't')+      goto yy1615;+    goto yy1417;+  yy1610:+    yych = *++p;+    if (yych == 'D')+      goto yy1611;+    if (yych != 'd')+      goto yy1417;+  yy1611:+    yych = *++p;+    if (yych == 'R')+      goto yy1612;+    if (yych != 'r')+      goto yy1417;+  yy1612:+    yych = *++p;+    if (yych == 'E')+      goto yy1613;+    if (yych != 'e')+      goto yy1417;+  yy1613:+    yych = *++p;+    if (yych == 'S')+      goto yy1614;+    if (yych != 's')+      goto yy1417;+  yy1614:+    yych = *++p;+    if (yych == 'S')+      goto yy1456;+    if (yych == 's')+      goto yy1456;+    goto yy1417;+  yy1615:+    yych = *++p;+    if (yych == 'I')+      goto yy1616;+    if (yych != 'i')+      goto yy1417;+  yy1616:+    yych = *++p;+    if (yych == 'C')+      goto yy1617;+    if (yych != 'c')+      goto yy1417;+  yy1617:+    yych = *++p;+    if (yych == 'L')+      goto yy1618;+    if (yych != 'l')+      goto yy1417;+  yy1618:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1619:+    yych = *++p;+    if (yych == 'D')+      goto yy1620;+    if (yych != 'd')+      goto yy1417;+  yy1620:+    yych = *++p;+    if (yych == 'E')+      goto yy1456;+    if (yych == 'e')+      goto yy1456;+    goto yy1417;+  yy1621:+    yych = *++p;+    if (yych == 'E')+      goto yy1497;+    if (yych == 'e')+      goto yy1497;+    goto yy1417;+  yy1622:+    yych = *++p;+    if (yych == 'R')+      goto yy1623;+    if (yych != 'r')+      goto yy1417;+  yy1623:+    yych = *++p;+    if (yych == 'A')+      goto yy1624;+    if (yych != 'a')+      goto yy1417;+  yy1624:+    yych = *++p;+    if (yych == 'M')+      goto yy1456;+    if (yych == 'm')+      goto yy1456;+    goto yy1417;+  yy1625:+    yych = *++p;+    if (yych <= '/') {+      if (yych <= 0x1F) {+        if (yych <= 0x08)+          goto yy1417;+        if (yych <= '\r')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= ' ')+          goto yy1457;+        if (yych <= '.')+          goto yy1417;+        goto yy1459;+      }+    } else {+      if (yych <= '@') {+        if (yych == '>')+          goto yy1457;+        goto yy1417;+      } else {+        if (yych <= 'A')+          goto yy1622;+        if (yych == 'a')+          goto yy1622;+        goto yy1417;+      }+    }+  yy1626:+    ++p;+    if ((yych = *p) <= 'U') {+      if (yych <= 'N') {+        if (yych == 'E')+          goto yy1482;+        goto yy1417;+      } else {+        if (yych <= 'O')+          goto yy1481;+        if (yych <= 'T')+          goto yy1417;+        goto yy1480;+      }+    } else {+      if (yych <= 'n') {+        if (yych == 'e')+          goto yy1482;+        goto yy1417;+      } else {+        if (yych <= 'o')+          goto yy1481;+        if (yych == 'u')+          goto yy1480;+        goto yy1417;+      }+    }+  }+}++// 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, 202, 194, 198, 194,+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+        224, 224, 224, 224, 198, 224, 64,  224, 224, 224, 224, 128, 224, 224,+        224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,+        241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,+        241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= ';') {+        if (yych != '\n')+          goto yy1631;+      } else {+        if (yych <= '<')+          goto yy1630;+        if (yych <= 0x7F)+          goto yy1631;+        if (yych >= 0xC2)+          goto yy1632;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1634;+        if (yych == 0xED)+          goto yy1639;+        goto yy1635;+      } else {+        if (yych <= 0xF0)+          goto yy1636;+        if (yych <= 0xF3)+          goto yy1637;+        if (yych <= 0xF4)+          goto yy1638;+      }+    }+  yy1629 : { return 0; }+  yy1630:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '@') {+      if (yych == '/')+        goto yy1642;+      goto yy1629;+    } else {+      if (yych <= 'Z')+        goto yy1640;+      if (yych <= '`')+        goto yy1629;+      if (yych <= 'z')+        goto yy1640;+      goto yy1629;+    }+  yy1631:+    yych = *++p;+    goto yy1629;+  yy1632:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1631;+  yy1633:+    p = marker;+    if (yyaccept == 0) {+      goto yy1629;+    } else {+      goto yy1651;+    }+  yy1634:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1632;+    goto yy1633;+  yy1635:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1632;+    goto yy1633;+  yy1636:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1635;+    goto yy1633;+  yy1637:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1635;+    goto yy1633;+  yy1638:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x8F)+      goto yy1635;+    goto yy1633;+  yy1639:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x9F)+      goto yy1632;+    goto yy1633;+  yy1640:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 1) {+      goto yy1640;+    }+    if (yych <= ' ') {+      if (yych <= 0x08)+        goto yy1633;+      if (yych <= '\r')+        goto yy1653;+      if (yych <= 0x1F)+        goto yy1633;+      goto yy1653;+    } else {+      if (yych <= '/') {+        if (yych <= '.')+          goto yy1633;+        goto yy1655;+      } else {+        if (yych == '>')+          goto yy1647;+        goto yy1633;+      }+    }+  yy1642:+    yych = *++p;+    if (yych <= '@')+      goto yy1633;+    if (yych <= 'Z')+      goto yy1643;+    if (yych <= '`')+      goto yy1633;+    if (yych >= '{')+      goto yy1633;+  yy1643:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 2) {+      goto yy1645;+    }+    if (yych <= '=') {+      if (yych <= '-') {+        if (yych <= ',')+          goto yy1633;+        goto yy1643;+      } else {+        if (yych <= '/')+          goto yy1633;+        if (yych <= '9')+          goto yy1643;+        goto yy1633;+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '>')+          goto yy1647;+        if (yych <= '@')+          goto yy1633;+        goto yy1643;+      } else {+        if (yych <= '`')+          goto yy1633;+        if (yych <= 'z')+          goto yy1643;+        goto yy1633;+      }+    }+  yy1645:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 2) {+      goto yy1645;+    }+    if (yych != '>')+      goto yy1633;+  yy1647:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 4) {+      goto yy1647;+    }+    if (yych <= 0x08)+      goto yy1633;+    if (yych <= '\n')+      goto yy1649;+    if (yych <= '\v')+      goto yy1633;+    if (yych <= '\r')+      goto yy1652;+    goto yy1633;+  yy1649:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 4) {+      goto yy1647;+    }+    if (yych <= 0x08)+      goto yy1651;+    if (yych <= '\n')+      goto yy1649;+    if (yych <= '\v')+      goto yy1651;+    if (yych <= '\r')+      goto yy1652;+  yy1651 : { return 7; }+  yy1652:+    yych = *++p;+    goto yy1651;+  yy1653:+    ++p;+    yych = *p;+    if (yych <= ':') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1633;+        if (yych <= '\r')+          goto yy1653;+        if (yych <= 0x1F)+          goto yy1633;+        goto yy1653;+      } else {+        if (yych == '/')+          goto yy1655;+        if (yych <= '9')+          goto yy1633;+        goto yy1656;+      }+    } else {+      if (yych <= 'Z') {+        if (yych == '>')+          goto yy1647;+        if (yych <= '@')+          goto yy1633;+        goto yy1656;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy1633;+          goto yy1656;+        } else {+          if (yych <= '`')+            goto yy1633;+          if (yych <= 'z')+            goto yy1656;+          goto yy1633;+        }+      }+    }+  yy1655:+    yych = *++p;+    if (yych == '>')+      goto yy1647;+    goto yy1633;+  yy1656:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 16) {+      goto yy1656;+    }+    if (yych <= ',') {+      if (yych <= '\r') {+        if (yych <= 0x08)+          goto yy1633;+      } else {+        if (yych != ' ')+          goto yy1633;+      }+    } else {+      if (yych <= '<') {+        if (yych <= '/')+          goto yy1655;+        goto yy1633;+      } else {+        if (yych <= '=')+          goto yy1660;+        if (yych <= '>')+          goto yy1647;+        goto yy1633;+      }+    }+  yy1658:+    ++p;+    yych = *p;+    if (yych <= '<') {+      if (yych <= ' ') {+        if (yych <= 0x08)+          goto yy1633;+        if (yych <= '\r')+          goto yy1658;+        if (yych <= 0x1F)+          goto yy1633;+        goto yy1658;+      } else {+        if (yych <= '/') {+          if (yych <= '.')+            goto yy1633;+          goto yy1655;+        } else {+          if (yych == ':')+            goto yy1656;+          goto yy1633;+        }+      }+    } else {+      if (yych <= 'Z') {+        if (yych <= '=')+          goto yy1660;+        if (yych <= '>')+          goto yy1647;+        if (yych <= '@')+          goto yy1633;+        goto yy1656;+      } else {+        if (yych <= '_') {+          if (yych <= '^')+            goto yy1633;+          goto yy1656;+        } else {+          if (yych <= '`')+            goto yy1633;+          if (yych <= 'z')+            goto yy1656;+          goto yy1633;+        }+      }+    }+  yy1660:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1662;+    }+    if (yych <= 0xE0) {+      if (yych <= '"') {+        if (yych <= 0x00)+          goto yy1633;+        if (yych >= '!')+          goto yy1673;+      } else {+        if (yych <= '\'')+          goto yy1671;+        if (yych <= 0xC1)+          goto yy1633;+        if (yych <= 0xDF)+          goto yy1664;+        goto yy1665;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1670;+        goto yy1666;+      } else {+        if (yych <= 0xF0)+          goto yy1667;+        if (yych <= 0xF3)+          goto yy1668;+        if (yych <= 0xF4)+          goto yy1669;+        goto yy1633;+      }+    }+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1662;+    }+    if (yych <= 0xDF) {+      if (yych <= '\'') {+        if (yych <= 0x00)+          goto yy1633;+        if (yych <= ' ')+          goto yy1696;+        if (yych <= '"')+          goto yy1673;+        goto yy1671;+      } else {+        if (yych == '>')+          goto yy1647;+        if (yych <= 0xC1)+          goto yy1633;+        goto yy1664;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1665;+        if (yych == 0xED)+          goto yy1670;+        goto yy1666;+      } else {+        if (yych <= 0xF0)+          goto yy1667;+        if (yych <= 0xF3)+          goto yy1668;+        if (yych <= 0xF4)+          goto yy1669;+        goto yy1633;+      }+    }+  yy1662:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1662;+    }+    if (yych <= 0xE0) {+      if (yych <= '=') {+        if (yych <= 0x00)+          goto yy1633;+        if (yych <= ' ')+          goto yy1690;+        goto yy1633;+      } else {+        if (yych <= '>')+          goto yy1647;+        if (yych <= 0xC1)+          goto yy1633;+        if (yych >= 0xE0)+          goto yy1665;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1670;+        goto yy1666;+      } else {+        if (yych <= 0xF0)+          goto yy1667;+        if (yych <= 0xF3)+          goto yy1668;+        if (yych <= 0xF4)+          goto yy1669;+        goto yy1633;+      }+    }+  yy1664:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1662;+    goto yy1633;+  yy1665:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1664;+    goto yy1633;+  yy1666:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1664;+    goto yy1633;+  yy1667:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1666;+    goto yy1633;+  yy1668:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1666;+    goto yy1633;+  yy1669:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x8F)+      goto yy1666;+    goto yy1633;+  yy1670:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x9F)+      goto yy1664;+    goto yy1633;+  yy1671:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1671;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1633;+        if (yych <= '\'')+          goto yy1682;+        goto yy1633;+      } else {+        if (yych <= 0xDF)+          goto yy1683;+        if (yych <= 0xE0)+          goto yy1684;+        goto yy1685;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1689;+        if (yych <= 0xEF)+          goto yy1685;+        goto yy1686;+      } else {+        if (yych <= 0xF3)+          goto yy1687;+        if (yych <= 0xF4)+          goto yy1688;+        goto yy1633;+      }+    }+  yy1673:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1673;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy1633;+        if (yych <= '"')+          goto yy1682;+        goto yy1633;+      } else {+        if (yych <= 0xDF)+          goto yy1675;+        if (yych <= 0xE0)+          goto yy1676;+        goto yy1677;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1681;+        if (yych <= 0xEF)+          goto yy1677;+        goto yy1678;+      } else {+        if (yych <= 0xF3)+          goto yy1679;+        if (yych <= 0xF4)+          goto yy1680;+        goto yy1633;+      }+    }+  yy1675:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1673;+    goto yy1633;+  yy1676:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1675;+    goto yy1633;+  yy1677:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1675;+    goto yy1633;+  yy1678:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1677;+    goto yy1633;+  yy1679:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1677;+    goto yy1633;+  yy1680:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x8F)+      goto yy1677;+    goto yy1633;+  yy1681:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x9F)+      goto yy1675;+    goto yy1633;+  yy1682:+    ++p;+    yych = *p;+    if (yych <= ' ') {+      if (yych <= 0x08)+        goto yy1633;+      if (yych <= '\r')+        goto yy1653;+      if (yych <= 0x1F)+        goto yy1633;+      goto yy1653;+    } else {+      if (yych <= '/') {+        if (yych <= '.')+          goto yy1633;+        goto yy1655;+      } else {+        if (yych == '>')+          goto yy1647;+        goto yy1633;+      }+    }+  yy1683:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1671;+    goto yy1633;+  yy1684:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1683;+    goto yy1633;+  yy1685:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1683;+    goto yy1633;+  yy1686:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1685;+    goto yy1633;+  yy1687:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0xBF)+      goto yy1685;+    goto yy1633;+  yy1688:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x8F)+      goto yy1685;+    goto yy1633;+  yy1689:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1633;+    if (yych <= 0x9F)+      goto yy1683;+    goto yy1633;+  yy1690:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '"') {+        if (yych <= '\r') {+          if (yych <= 0x00)+            goto yy1633;+          if (yych <= 0x08)+            goto yy1662;+          goto yy1690;+        } else {+          if (yych == ' ')+            goto yy1690;+          if (yych <= '!')+            goto yy1662;+          goto yy1633;+        }+      } else {+        if (yych <= ':') {+          if (yych == '\'')+            goto yy1633;+          if (yych <= '9')+            goto yy1662;+        } else {+          if (yych <= ';')+            goto yy1662;+          if (yych <= '=')+            goto yy1633;+          if (yych <= '>')+            goto yy1647;+          goto yy1662;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1692;+          if (yych <= '^')+            goto yy1662;+          if (yych >= '`')+            goto yy1633;+        } else {+          if (yych <= 'z')+            goto yy1692;+          if (yych <= 0x7F)+            goto yy1662;+          if (yych <= 0xC1)+            goto yy1633;+          goto yy1664;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1665;+          if (yych == 0xED)+            goto yy1670;+          goto yy1666;+        } else {+          if (yych <= 0xF0)+            goto yy1667;+          if (yych <= 0xF3)+            goto yy1668;+          if (yych <= 0xF4)+            goto yy1669;+          goto yy1633;+        }+      }+    }+  yy1692:+    ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= '&') {+        if (yych <= 0x1F) {+          if (yych <= 0x00)+            goto yy1633;+          if (yych <= 0x08)+            goto yy1662;+          if (yych >= 0x0E)+            goto yy1662;+        } else {+          if (yych <= ' ')+            goto yy1694;+          if (yych == '"')+            goto yy1633;+          goto yy1662;+        }+      } else {+        if (yych <= '/') {+          if (yych <= '\'')+            goto yy1633;+          if (yych <= ',')+            goto yy1662;+          if (yych <= '.')+            goto yy1692;+          goto yy1662;+        } else {+          if (yych <= ';') {+            if (yych <= ':')+              goto yy1692;+            goto yy1662;+          } else {+            if (yych <= '<')+              goto yy1633;+            if (yych <= '=')+              goto yy1660;+            goto yy1647;+          }+        }+      }+    } else {+      if (yych <= 0xC1) {+        if (yych <= '_') {+          if (yych <= '@')+            goto yy1662;+          if (yych <= 'Z')+            goto yy1692;+          if (yych <= '^')+            goto yy1662;+          goto yy1692;+        } else {+          if (yych <= '`')+            goto yy1633;+          if (yych <= 'z')+            goto yy1692;+          if (yych <= 0x7F)+            goto yy1662;+          goto yy1633;+        }+      } else {+        if (yych <= 0xED) {+          if (yych <= 0xDF)+            goto yy1664;+          if (yych <= 0xE0)+            goto yy1665;+          if (yych <= 0xEC)+            goto yy1666;+          goto yy1670;+        } else {+          if (yych <= 0xF0) {+            if (yych <= 0xEF)+              goto yy1666;+            goto yy1667;+          } else {+            if (yych <= 0xF3)+              goto yy1668;+            if (yych <= 0xF4)+              goto yy1669;+            goto yy1633;+          }+        }+      }+    }+  yy1694:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '&') {+        if (yych <= 0x1F) {+          if (yych <= 0x00)+            goto yy1633;+          if (yych <= 0x08)+            goto yy1662;+          if (yych <= '\r')+            goto yy1694;+          goto yy1662;+        } else {+          if (yych <= ' ')+            goto yy1694;+          if (yych == '"')+            goto yy1633;+          goto yy1662;+        }+      } else {+        if (yych <= ';') {+          if (yych <= '\'')+            goto yy1633;+          if (yych == ':')+            goto yy1692;+          goto yy1662;+        } else {+          if (yych <= '<')+            goto yy1633;+          if (yych <= '=')+            goto yy1660;+          if (yych <= '>')+            goto yy1647;+          goto yy1662;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1692;+          if (yych <= '^')+            goto yy1662;+          if (yych <= '_')+            goto yy1692;+          goto yy1633;+        } else {+          if (yych <= 'z')+            goto yy1692;+          if (yych <= 0x7F)+            goto yy1662;+          if (yych <= 0xC1)+            goto yy1633;+          goto yy1664;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1665;+          if (yych == 0xED)+            goto yy1670;+          goto yy1666;+        } else {+          if (yych <= 0xF0)+            goto yy1667;+          if (yych <= 0xF3)+            goto yy1668;+          if (yych <= 0xF4)+            goto yy1669;+          goto yy1633;+        }+      }+    }+  yy1696:+    ++p;+    yych = *p;+    if (yych <= '@') {+      if (yych <= '"') {+        if (yych <= '\r') {+          if (yych <= 0x00)+            goto yy1633;+          if (yych <= 0x08)+            goto yy1662;+          goto yy1696;+        } else {+          if (yych == ' ')+            goto yy1696;+          if (yych <= '!')+            goto yy1662;+          goto yy1673;+        }+      } else {+        if (yych <= ':') {+          if (yych == '\'')+            goto yy1671;+          if (yych <= '9')+            goto yy1662;+          goto yy1692;+        } else {+          if (yych <= ';')+            goto yy1662;+          if (yych <= '=')+            goto yy1633;+          if (yych <= '>')+            goto yy1647;+          goto yy1662;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= '`') {+          if (yych <= 'Z')+            goto yy1692;+          if (yych <= '^')+            goto yy1662;+          if (yych <= '_')+            goto yy1692;+          goto yy1633;+        } else {+          if (yych <= 'z')+            goto yy1692;+          if (yych <= 0x7F)+            goto yy1662;+          if (yych <= 0xC1)+            goto yy1633;+          goto yy1664;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy1665;+          if (yych == 0xED)+            goto yy1670;+          goto yy1666;+        } else {+          if (yych <= 0xF0)+            goto yy1667;+          if (yych <= 0xF3)+            goto yy1668;+          if (yych <= 0xF4)+            goto yy1669;+          goto yy1633;+        }+      }+    }+  }+}++// 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[] = {+        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, 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,+        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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= ';') {+        if (yych != '\n')+          goto yy1701;+      } else {+        if (yych <= '<')+          goto yy1702;+        if (yych <= 0x7F)+          goto yy1701;+        if (yych >= 0xC2)+          goto yy1703;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1705;+        if (yych == 0xED)+          goto yy1710;+        goto yy1706;+      } else {+        if (yych <= 0xF0)+          goto yy1707;+        if (yych <= 0xF3)+          goto yy1708;+        if (yych <= 0xF4)+          goto yy1709;+      }+    }+  yy1700 : { return 0; }+  yy1701:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1700;+      goto yy1715;+    } else {+      if (yych <= 0xC1)+        goto yy1700;+      if (yych <= 0xF4)+        goto yy1715;+      goto yy1700;+    }+  yy1702:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '/') {+      if (yych == '\n')+        goto yy1700;+      if (yych <= '.')+        goto yy1715;+      goto yy1711;+    } else {+      if (yych <= 0x7F)+        goto yy1715;+      if (yych <= 0xC1)+        goto yy1700;+      if (yych <= 0xF4)+        goto yy1715;+      goto yy1700;+    }+  yy1703:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1701;+  yy1704:+    p = marker;+    if (yyaccept == 0) {+      goto yy1700;+    } else {+      goto yy1732;+    }+  yy1705:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1703;+    goto yy1704;+  yy1706:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1703;+    goto yy1704;+  yy1707:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1706;+    goto yy1704;+  yy1708:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1706;+    goto yy1704;+  yy1709:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0x8F)+      goto yy1706;+    goto yy1704;+  yy1710:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0x9F)+      goto yy1703;+    goto yy1704;+  yy1711:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 's') {+      if (yych <= 'R') {+        if (yych <= '\n') {+          if (yych <= '\t')+            goto yy1714;+          goto yy1704;+        } else {+          if (yych == 'P')+            goto yy1723;+          goto yy1714;+        }+      } else {+        if (yych <= 'o') {+          if (yych <= 'S')+            goto yy1724;+          goto yy1714;+        } else {+          if (yych <= 'p')+            goto yy1723;+          if (yych <= 'r')+            goto yy1714;+          goto yy1724;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 0x7F)+            goto yy1714;+          goto yy1704;+        } else {+          if (yych <= 0xDF)+            goto yy1716;+          if (yych <= 0xE0)+            goto yy1717;+          goto yy1718;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1722;+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1712:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xDF) {+      if (yych <= '.') {+        if (yych == '\n')+          goto yy1704;+      } else {+        if (yych <= '/')+          goto yy1711;+        if (yych <= 0x7F)+          goto yy1714;+        if (yych <= 0xC1)+          goto yy1704;+        goto yy1716;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1717;+        if (yych == 0xED)+          goto yy1722;+        goto yy1718;+      } else {+        if (yych <= 0xF0)+          goto yy1719;+        if (yych <= 0xF3)+          goto yy1720;+        if (yych <= 0xF4)+          goto yy1721;+        goto yy1704;+      }+    }+  yy1714:+    ++p;+    yych = *p;+  yy1715:+    if (yybm[0 + yych] & 128) {+      goto yy1714;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1704;+        if (yych <= '<')+          goto yy1712;+        goto yy1704;+      } else {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        goto yy1718;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1722;+        if (yych <= 0xEF)+          goto yy1718;+        goto yy1719;+      } else {+        if (yych <= 0xF3)+          goto yy1720;+        if (yych <= 0xF4)+          goto yy1721;+        goto yy1704;+      }+    }+  yy1716:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1714;+    goto yy1704;+  yy1717:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1716;+    goto yy1704;+  yy1718:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1716;+    goto yy1704;+  yy1719:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1718;+    goto yy1704;+  yy1720:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0xBF)+      goto yy1718;+    goto yy1704;+  yy1721:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0x8F)+      goto yy1718;+    goto yy1704;+  yy1722:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1704;+    if (yych <= 0x9F)+      goto yy1716;+    goto yy1704;+  yy1723:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'R') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'Q')+          goto yy1714;+        goto yy1735;+      } else {+        if (yych == 'r')+          goto yy1735;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1724:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 't') {+      if (yych <= 'S') {+        if (yych <= '\n') {+          if (yych <= '\t')+            goto yy1714;+          goto yy1704;+        } else {+          if (yych == 'C')+            goto yy1726;+          goto yy1714;+        }+      } else {+        if (yych <= 'b') {+          if (yych >= 'U')+            goto yy1714;+        } else {+          if (yych <= 'c')+            goto yy1726;+          if (yych <= 's')+            goto yy1714;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 0x7F)+            goto yy1714;+          goto yy1704;+        } else {+          if (yych <= 0xDF)+            goto yy1716;+          if (yych <= 0xE0)+            goto yy1717;+          goto yy1718;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1722;+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'Y') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'X')+          goto yy1714;+        goto yy1733;+      } else {+        if (yych == 'y')+          goto yy1733;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1726:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'R') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'Q')+          goto yy1714;+      } else {+        if (yych == 'r')+          goto yy1727;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1727:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'I') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'H')+          goto yy1714;+      } else {+        if (yych == 'i')+          goto yy1728;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1728:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'P') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'O')+          goto yy1714;+      } else {+        if (yych == 'p')+          goto yy1729;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1729:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'T') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'S')+          goto yy1714;+      } else {+        if (yych == 't')+          goto yy1730;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1730:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych == '\n')+          goto yy1704;+        goto yy1714;+      } else {+        if (yych <= '>')+          goto yy1731;+        if (yych <= 0x7F)+          goto yy1714;+        if (yych <= 0xC1)+          goto yy1704;+        goto yy1716;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1717;+        if (yych == 0xED)+          goto yy1722;+        goto yy1718;+      } else {+        if (yych <= 0xF0)+          goto yy1719;+        if (yych <= 0xF3)+          goto yy1720;+        if (yych <= 0xF4)+          goto yy1721;+        goto yy1704;+      }+    }+  yy1731:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1714;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1732;+        if (yych <= '<')+          goto yy1712;+      } else {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        goto yy1718;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1722;+        if (yych <= 0xEF)+          goto yy1718;+        goto yy1719;+      } else {+        if (yych <= 0xF3)+          goto yy1720;+        if (yych <= 0xF4)+          goto yy1721;+      }+    }+  yy1732 : { return (bufsize_t)(p - start); }+  yy1733:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'L') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'K')+          goto yy1714;+      } else {+        if (yych == 'l')+          goto yy1734;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1734:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'E') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'D')+          goto yy1714;+        goto yy1730;+      } else {+        if (yych == 'e')+          goto yy1730;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  yy1735:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1712;+    }+    if (yych <= 0xC1) {+      if (yych <= 'E') {+        if (yych == '\n')+          goto yy1704;+        if (yych <= 'D')+          goto yy1714;+        goto yy1730;+      } else {+        if (yych == 'e')+          goto yy1730;+        if (yych <= 0x7F)+          goto yy1714;+        goto yy1704;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1716;+        if (yych <= 0xE0)+          goto yy1717;+        if (yych <= 0xEC)+          goto yy1718;+        goto yy1722;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1718;+          goto yy1719;+        } else {+          if (yych <= 0xF3)+            goto yy1720;+          if (yych <= 0xF4)+            goto yy1721;+          goto yy1704;+        }+      }+    }+  }+}++// 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[] = {+        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, 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, 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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= ',') {+        if (yych != '\n')+          goto yy1739;+      } else {+        if (yych <= '-')+          goto yy1740;+        if (yych <= 0x7F)+          goto yy1739;+        if (yych >= 0xC2)+          goto yy1741;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1743;+        if (yych == 0xED)+          goto yy1748;+        goto yy1744;+      } else {+        if (yych <= 0xF0)+          goto yy1745;+        if (yych <= 0xF3)+          goto yy1746;+        if (yych <= 0xF4)+          goto yy1747;+      }+    }+  yy1738 : { return 0; }+  yy1739:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1738;+      goto yy1752;+    } else {+      if (yych <= 0xC1)+        goto yy1738;+      if (yych <= 0xF4)+        goto yy1752;+      goto yy1738;+    }+  yy1740:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy1749;+    }+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1738;+      goto yy1752;+    } else {+      if (yych <= 0xC1)+        goto yy1738;+      if (yych <= 0xF4)+        goto yy1752;+      goto yy1738;+    }+  yy1741:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1739;+  yy1742:+    p = marker;+    if (yyaccept == 0) {+      goto yy1738;+    } else {+      goto yy1762;+    }+  yy1743:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1741;+    goto yy1742;+  yy1744:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1741;+    goto yy1742;+  yy1745:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1744;+    goto yy1742;+  yy1746:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1744;+    goto yy1742;+  yy1747:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0x8F)+      goto yy1744;+    goto yy1742;+  yy1748:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0x9F)+      goto yy1741;+    goto yy1742;+  yy1749:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1749;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych == '\n')+          goto yy1742;+      } else {+        if (yych <= '>')+          goto yy1761;+        if (yych <= 0x7F)+          goto yy1751;+        if (yych <= 0xC1)+          goto yy1742;+        goto yy1753;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1754;+        if (yych == 0xED)+          goto yy1759;+        goto yy1755;+      } else {+        if (yych <= 0xF0)+          goto yy1756;+        if (yych <= 0xF3)+          goto yy1757;+        if (yych <= 0xF4)+          goto yy1758;+        goto yy1742;+      }+    }+  yy1751:+    ++p;+    yych = *p;+  yy1752:+    if (yybm[0 + yych] & 128) {+      goto yy1751;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1742;+        if (yych <= '-')+          goto yy1760;+        goto yy1742;+      } else {+        if (yych <= 0xDF)+          goto yy1753;+        if (yych <= 0xE0)+          goto yy1754;+        goto yy1755;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1759;+        if (yych <= 0xEF)+          goto yy1755;+        goto yy1756;+      } else {+        if (yych <= 0xF3)+          goto yy1757;+        if (yych <= 0xF4)+          goto yy1758;+        goto yy1742;+      }+    }+  yy1753:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1751;+    goto yy1742;+  yy1754:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1753;+    goto yy1742;+  yy1755:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1753;+    goto yy1742;+  yy1756:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1755;+    goto yy1742;+  yy1757:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0xBF)+      goto yy1755;+    goto yy1742;+  yy1758:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0x8F)+      goto yy1755;+    goto yy1742;+  yy1759:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1742;+    if (yych <= 0x9F)+      goto yy1753;+    goto yy1742;+  yy1760:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1751;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1742;+        if (yych <= '-')+          goto yy1749;+        goto yy1742;+      } else {+        if (yych <= 0xDF)+          goto yy1753;+        if (yych <= 0xE0)+          goto yy1754;+        goto yy1755;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1759;+        if (yych <= 0xEF)+          goto yy1755;+        goto yy1756;+      } else {+        if (yych <= 0xF3)+          goto yy1757;+        if (yych <= 0xF4)+          goto yy1758;+        goto yy1742;+      }+    }+  yy1761:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1751;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1762;+        if (yych <= '-')+          goto yy1760;+      } else {+        if (yych <= 0xDF)+          goto yy1753;+        if (yych <= 0xE0)+          goto yy1754;+        goto yy1755;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1759;+        if (yych <= 0xEF)+          goto yy1755;+        goto yy1756;+      } else {+        if (yych <= 0xF3)+          goto yy1757;+        if (yych <= 0xF4)+          goto yy1758;+      }+    }+  yy1762 : { 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[] = {+        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, 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, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= '>') {+        if (yych != '\n')+          goto yy1766;+      } else {+        if (yych <= '?')+          goto yy1767;+        if (yych <= 0x7F)+          goto yy1766;+        if (yych >= 0xC2)+          goto yy1768;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1770;+        if (yych == 0xED)+          goto yy1775;+        goto yy1771;+      } else {+        if (yych <= 0xF0)+          goto yy1772;+        if (yych <= 0xF3)+          goto yy1773;+        if (yych <= 0xF4)+          goto yy1774;+      }+    }+  yy1765 : { return 0; }+  yy1766:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1765;+      goto yy1781;+    } else {+      if (yych <= 0xC1)+        goto yy1765;+      if (yych <= 0xF4)+        goto yy1781;+      goto yy1765;+    }+  yy1767:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= '>') {+      if (yych == '\n')+        goto yy1765;+      if (yych <= '=')+        goto yy1781;+      goto yy1776;+    } else {+      if (yych <= 0x7F)+        goto yy1781;+      if (yych <= 0xC1)+        goto yy1765;+      if (yych <= 0xF4)+        goto yy1781;+      goto yy1765;+    }+  yy1768:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1766;+  yy1769:+    p = marker;+    if (yyaccept == 0) {+      goto yy1765;+    } else {+      goto yy1777;+    }+  yy1770:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1768;+    goto yy1769;+  yy1771:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1768;+    goto yy1769;+  yy1772:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1771;+    goto yy1769;+  yy1773:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1771;+    goto yy1769;+  yy1774:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0x8F)+      goto yy1771;+    goto yy1769;+  yy1775:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0x9F)+      goto yy1768;+    goto yy1769;+  yy1776:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1780;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1777;+        if (yych <= '?')+          goto yy1778;+      } else {+        if (yych <= 0xDF)+          goto yy1782;+        if (yych <= 0xE0)+          goto yy1783;+        goto yy1784;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1788;+        if (yych <= 0xEF)+          goto yy1784;+        goto yy1785;+      } else {+        if (yych <= 0xF3)+          goto yy1786;+        if (yych <= 0xF4)+          goto yy1787;+      }+    }+  yy1777 : { return (bufsize_t)(p - start); }+  yy1778:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1778;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych == '\n')+          goto yy1769;+      } else {+        if (yych <= '>')+          goto yy1776;+        if (yych <= 0x7F)+          goto yy1780;+        if (yych <= 0xC1)+          goto yy1769;+        goto yy1782;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1783;+        if (yych == 0xED)+          goto yy1788;+        goto yy1784;+      } else {+        if (yych <= 0xF0)+          goto yy1785;+        if (yych <= 0xF3)+          goto yy1786;+        if (yych <= 0xF4)+          goto yy1787;+        goto yy1769;+      }+    }+  yy1780:+    ++p;+    yych = *p;+  yy1781:+    if (yybm[0 + yych] & 128) {+      goto yy1780;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1769;+        if (yych <= '?')+          goto yy1778;+        goto yy1769;+      } else {+        if (yych <= 0xDF)+          goto yy1782;+        if (yych <= 0xE0)+          goto yy1783;+        goto yy1784;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1788;+        if (yych <= 0xEF)+          goto yy1784;+        goto yy1785;+      } else {+        if (yych <= 0xF3)+          goto yy1786;+        if (yych <= 0xF4)+          goto yy1787;+        goto yy1769;+      }+    }+  yy1782:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1780;+    goto yy1769;+  yy1783:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1782;+    goto yy1769;+  yy1784:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1782;+    goto yy1769;+  yy1785:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1784;+    goto yy1769;+  yy1786:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0xBF)+      goto yy1784;+    goto yy1769;+  yy1787:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0x8F)+      goto yy1784;+    goto yy1769;+  yy1788:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1769;+    if (yych <= 0x9F)+      goto yy1782;+    goto yy1769;+  }+}++// 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[] = {+        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, 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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych != '\n')+          goto yy1792;+      } else {+        if (yych <= '>')+          goto yy1793;+        if (yych <= 0x7F)+          goto yy1792;+        if (yych >= 0xC2)+          goto yy1795;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1797;+        if (yych == 0xED)+          goto yy1802;+        goto yy1798;+      } else {+        if (yych <= 0xF0)+          goto yy1799;+        if (yych <= 0xF3)+          goto yy1800;+        if (yych <= 0xF4)+          goto yy1801;+      }+    }+  yy1791 : { return 0; }+  yy1792:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1791;+      goto yy1806;+    } else {+      if (yych <= 0xC1)+        goto yy1791;+      if (yych <= 0xF4)+        goto yy1806;+      goto yy1791;+    }+  yy1793:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych != '\n')+        goto yy1806;+    } else {+      if (yych <= 0xC1)+        goto yy1794;+      if (yych <= 0xF4)+        goto yy1806;+    }+  yy1794 : { return (bufsize_t)(p - start); }+  yy1795:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1792;+  yy1796:+    p = marker;+    if (yyaccept == 0) {+      goto yy1791;+    } else {+      goto yy1794;+    }+  yy1797:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1795;+    goto yy1796;+  yy1798:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1795;+    goto yy1796;+  yy1799:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1798;+    goto yy1796;+  yy1800:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1798;+    goto yy1796;+  yy1801:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0x8F)+      goto yy1798;+    goto yy1796;+  yy1802:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0x9F)+      goto yy1795;+    goto yy1796;+  yy1803:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1805;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1794;+        if (yych <= '>')+          goto yy1803;+        goto yy1794;+      } else {+        if (yych <= 0xDF)+          goto yy1807;+        if (yych <= 0xE0)+          goto yy1808;+        goto yy1809;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1813;+        if (yych <= 0xEF)+          goto yy1809;+        goto yy1810;+      } else {+        if (yych <= 0xF3)+          goto yy1811;+        if (yych <= 0xF4)+          goto yy1812;+        goto yy1794;+      }+    }+  yy1805:+    ++p;+    yych = *p;+  yy1806:+    if (yybm[0 + yych] & 128) {+      goto yy1805;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1796;+        if (yych <= '>')+          goto yy1803;+        goto yy1796;+      } else {+        if (yych <= 0xDF)+          goto yy1807;+        if (yych <= 0xE0)+          goto yy1808;+        goto yy1809;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1813;+        if (yych <= 0xEF)+          goto yy1809;+        goto yy1810;+      } else {+        if (yych <= 0xF3)+          goto yy1811;+        if (yych <= 0xF4)+          goto yy1812;+        goto yy1796;+      }+    }+  yy1807:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1805;+    goto yy1796;+  yy1808:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1807;+    goto yy1796;+  yy1809:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1807;+    goto yy1796;+  yy1810:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1809;+    goto yy1796;+  yy1811:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0xBF)+      goto yy1809;+    goto yy1796;+  yy1812:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0x8F)+      goto yy1809;+    goto yy1796;+  yy1813:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1796;+    if (yych <= 0x9F)+      goto yy1807;+    goto yy1796;+  }+}++// 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[] = {+        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, 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, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= '\\') {+        if (yych != '\n')+          goto yy1817;+      } else {+        if (yych <= ']')+          goto yy1818;+        if (yych <= 0x7F)+          goto yy1817;+        if (yych >= 0xC2)+          goto yy1819;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1821;+        if (yych == 0xED)+          goto yy1826;+        goto yy1822;+      } else {+        if (yych <= 0xF0)+          goto yy1823;+        if (yych <= 0xF3)+          goto yy1824;+        if (yych <= 0xF4)+          goto yy1825;+      }+    }+  yy1816 : { return 0; }+  yy1817:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1816;+      goto yy1830;+    } else {+      if (yych <= 0xC1)+        goto yy1816;+      if (yych <= 0xF4)+        goto yy1830;+      goto yy1816;+    }+  yy1818:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy1827;+    }+    if (yych <= 0x7F) {+      if (yych == '\n')+        goto yy1816;+      goto yy1830;+    } else {+      if (yych <= 0xC1)+        goto yy1816;+      if (yych <= 0xF4)+        goto yy1830;+      goto yy1816;+    }+  yy1819:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1817;+  yy1820:+    p = marker;+    if (yyaccept == 0) {+      goto yy1816;+    } else {+      goto yy1840;+    }+  yy1821:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1819;+    goto yy1820;+  yy1822:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1819;+    goto yy1820;+  yy1823:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1822;+    goto yy1820;+  yy1824:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1822;+    goto yy1820;+  yy1825:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0x8F)+      goto yy1822;+    goto yy1820;+  yy1826:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0x9F)+      goto yy1819;+    goto yy1820;+  yy1827:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1827;+    }+    if (yych <= 0xDF) {+      if (yych <= '=') {+        if (yych == '\n')+          goto yy1820;+      } else {+        if (yych <= '>')+          goto yy1839;+        if (yych <= 0x7F)+          goto yy1829;+        if (yych <= 0xC1)+          goto yy1820;+        goto yy1831;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1832;+        if (yych == 0xED)+          goto yy1837;+        goto yy1833;+      } else {+        if (yych <= 0xF0)+          goto yy1834;+        if (yych <= 0xF3)+          goto yy1835;+        if (yych <= 0xF4)+          goto yy1836;+        goto yy1820;+      }+    }+  yy1829:+    ++p;+    yych = *p;+  yy1830:+    if (yybm[0 + yych] & 128) {+      goto yy1829;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1820;+        if (yych <= ']')+          goto yy1838;+        goto yy1820;+      } else {+        if (yych <= 0xDF)+          goto yy1831;+        if (yych <= 0xE0)+          goto yy1832;+        goto yy1833;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1837;+        if (yych <= 0xEF)+          goto yy1833;+        goto yy1834;+      } else {+        if (yych <= 0xF3)+          goto yy1835;+        if (yych <= 0xF4)+          goto yy1836;+        goto yy1820;+      }+    }+  yy1831:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1829;+    goto yy1820;+  yy1832:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1831;+    goto yy1820;+  yy1833:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1831;+    goto yy1820;+  yy1834:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1833;+    goto yy1820;+  yy1835:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0xBF)+      goto yy1833;+    goto yy1820;+  yy1836:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0x8F)+      goto yy1833;+    goto yy1820;+  yy1837:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1820;+    if (yych <= 0x9F)+      goto yy1831;+    goto yy1820;+  yy1838:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1829;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1820;+        if (yych <= ']')+          goto yy1827;+        goto yy1820;+      } else {+        if (yych <= 0xDF)+          goto yy1831;+        if (yych <= 0xE0)+          goto yy1832;+        goto yy1833;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1837;+        if (yych <= 0xEF)+          goto yy1833;+        goto yy1834;+      } else {+        if (yych <= 0xF3)+          goto yy1835;+        if (yych <= 0xF4)+          goto yy1836;+        goto yy1820;+      }+    }+  yy1839:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1829;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= '\n')+          goto yy1840;+        if (yych <= ']')+          goto yy1838;+      } else {+        if (yych <= 0xDF)+          goto yy1831;+        if (yych <= 0xE0)+          goto yy1832;+        goto yy1833;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1837;+        if (yych <= 0xEF)+          goto yy1833;+        goto yy1834;+      } else {+        if (yych <= 0xF3)+          goto yy1835;+        if (yych <= 0xF4)+          goto yy1836;+      }+    }+  yy1840 : { return (bufsize_t)(p - start); }+  }+}++// Try to match a URL in a link or reference, return number of chars matched.+// This may optionally be contained in <..>; otherwise+// whitespace and unbalanced right parentheses aren't allowed.+// Newlines aren't ever allowed.+bufsize_t _scan_link_url(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, 8,   128, 128, 8,+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,+        128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+        224, 224, 224, 224, 32,  224, 32,  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, 224, 224, 224, 16,  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, 224, 224, 224, 224, 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 = *(marker = p);+    if (yych <= '[') {+      if (yych <= ' ') {+        if (yych <= '\f') {+          if (yych == '\n')+            goto yy1844;+          goto yy1860;+        } else {+          if (yych <= '\r')+            goto yy1846;+          if (yych <= 0x1F)+            goto yy1860;+          goto yy1846;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1848;+          if (yych <= '(')+            goto yy1859;+          goto yy1860;+        } else {+          if (yych == '<')+            goto yy1847;+          goto yy1848;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1857;+          if (yych <= 0x7F)+            goto yy1848;+        } else {+          if (yych <= 0xDF)+            goto yy1849;+          if (yych <= 0xE0)+            goto yy1851;+          goto yy1852;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1856;+          if (yych <= 0xEF)+            goto yy1852;+          goto yy1853;+        } else {+          if (yych <= 0xF3)+            goto yy1854;+          if (yych <= 0xF4)+            goto yy1855;+        }+      }+    }+  yy1843 : { return (bufsize_t)(p - start); }+  yy1844:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+  yy1845:+    if (yybm[0 + yych] & 8) {+      goto yy1844;+    }+    if (yych <= 0x7F) {+      if (yych <= ')') {+        if (yych <= 0x1F)+          goto yy1843;+        if (yych <= '\'')+          goto yy1872;+        if (yych <= '(')+          goto yy1863;+        goto yy1843;+      } else {+        if (yych <= '<') {+          if (yych <= ';')+            goto yy1872;+          goto yy1907;+        } else {+          if (yych == '\\')+            goto yy1881;+          goto yy1872;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF) {+          if (yych <= 0xC1)+            goto yy1843;+          goto yy1874;+        } else {+          if (yych <= 0xE0)+            goto yy1875;+          if (yych <= 0xEC)+            goto yy1876;+          goto yy1880;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1876;+          goto yy1877;+        } else {+          if (yych <= 0xF3)+            goto yy1878;+          if (yych <= 0xF4)+            goto yy1879;+          goto yy1843;+        }+      }+    }+  yy1846:+    yyaccept = 0;+    yych = *(marker = ++p);+    goto yy1845;+  yy1847:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 64) {+      goto yy1907;+    }+    if (yych <= '>') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1843;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1843;+          if (yych <= '\f')+            goto yy1921;+          goto yy1843;+        }+      } else {+        if (yych <= '(') {+          if (yych <= ' ')+            goto yy1921;+          goto yy1919;+        } else {+          if (yych <= ')')+            goto yy1921;+          if (yych <= '<')+            goto yy1872;+          goto yy1909;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1918;+          goto yy1843;+        } else {+          if (yych <= 0xDF)+            goto yy1911;+          if (yych <= 0xE0)+            goto yy1912;+          goto yy1913;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1917;+          if (yych <= 0xEF)+            goto yy1913;+          goto yy1914;+        } else {+          if (yych <= 0xF3)+            goto yy1915;+          if (yych <= 0xF4)+            goto yy1916;+          goto yy1843;+        }+      }+    }+  yy1848:+    yyaccept = 0;+    yych = *(marker = ++p);+    goto yy1873;+  yy1849:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1848;+  yy1850:+    p = marker;+    if (yyaccept <= 1) {+      if (yyaccept == 0) {+        goto yy1843;+      } else {+        goto yy1858;+      }+    } else {+      goto yy1910;+    }+  yy1851:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1849;+    goto yy1850;+  yy1852:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1849;+    goto yy1850;+  yy1853:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1852;+    goto yy1850;+  yy1854:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1852;+    goto yy1850;+  yy1855:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1852;+    goto yy1850;+  yy1856:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1849;+    goto yy1850;+  yy1857:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x7F)+          goto yy1872;+      } else {+        if (yych <= 0xDF)+          goto yy1882;+        if (yych <= 0xE0)+          goto yy1883;+        goto yy1884;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1888;+        if (yych <= 0xEF)+          goto yy1884;+        goto yy1885;+      } else {+        if (yych <= 0xF3)+          goto yy1886;+        if (yych <= 0xF4)+          goto yy1887;+      }+    }+  yy1858 : { return 0; }+  yy1859:+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych <= '(') {+      if (yych <= ' ')+        goto yy1858;+      if (yych <= '\'')+        goto yy1864;+      goto yy1858;+    } else {+      if (yych <= 0x7F)+        goto yy1864;+      if (yych <= 0xC1)+        goto yy1858;+      if (yych <= 0xF4)+        goto yy1864;+      goto yy1858;+    }+  yy1860:+    yych = *++p;+    goto yy1858;+  yy1861:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 16) {+      goto yy1861;+    }+    if (yych <= 0xE0) {+      if (yych <= ')') {+        if (yych <= ' ')+          goto yy1850;+        if (yych >= ')')+          goto yy1889;+      } else {+        if (yych <= 0x7F)+          goto yy1863;+        if (yych <= 0xC1)+          goto yy1850;+        if (yych <= 0xDF)+          goto yy1865;+        goto yy1866;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1871;+        goto yy1867;+      } else {+        if (yych <= 0xF0)+          goto yy1868;+        if (yych <= 0xF3)+          goto yy1869;+        if (yych <= 0xF4)+          goto yy1870;+        goto yy1850;+      }+    }+  yy1863:+    ++p;+    yych = *p;+  yy1864:+    if (yybm[0 + yych] & 32) {+      goto yy1863;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= '(')+          goto yy1850;+        if (yych <= ')')+          goto yy1872;+        goto yy1861;+      } else {+        if (yych <= 0xC1)+          goto yy1850;+        if (yych >= 0xE0)+          goto yy1866;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1871;+        goto yy1867;+      } else {+        if (yych <= 0xF0)+          goto yy1868;+        if (yych <= 0xF3)+          goto yy1869;+        if (yych <= 0xF4)+          goto yy1870;+        goto yy1850;+      }+    }+  yy1865:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1863;+    goto yy1850;+  yy1866:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1865;+    goto yy1850;+  yy1867:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1865;+    goto yy1850;+  yy1868:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1867;+    goto yy1850;+  yy1869:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1867;+    goto yy1850;+  yy1870:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1867;+    goto yy1850;+  yy1871:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1865;+    goto yy1850;+  yy1872:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+  yy1873:+    if (yych <= 0xC1) {+      if (yych <= ')') {+        if (yych <= ' ')+          goto yy1843;+        if (yych <= '\'')+          goto yy1872;+        if (yych <= '(')+          goto yy1863;+        goto yy1843;+      } else {+        if (yych == '\\')+          goto yy1881;+        if (yych <= 0x7F)+          goto yy1872;+        goto yy1843;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1874;+        if (yych <= 0xE0)+          goto yy1875;+        if (yych <= 0xEC)+          goto yy1876;+        goto yy1880;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1876;+          goto yy1877;+        } else {+          if (yych <= 0xF3)+            goto yy1878;+          if (yych <= 0xF4)+            goto yy1879;+          goto yy1843;+        }+      }+    }+  yy1874:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1872;+    goto yy1850;+  yy1875:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1874;+    goto yy1850;+  yy1876:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1874;+    goto yy1850;+  yy1877:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1876;+    goto yy1850;+  yy1878:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1876;+    goto yy1850;+  yy1879:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1876;+    goto yy1850;+  yy1880:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1874;+    goto yy1850;+  yy1881:+    ++p;+    yych = *p;+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x7F)+          goto yy1872;+        goto yy1850;+      } else {+        if (yych <= 0xDF)+          goto yy1882;+        if (yych <= 0xE0)+          goto yy1883;+        goto yy1884;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy1888;+        if (yych <= 0xEF)+          goto yy1884;+        goto yy1885;+      } else {+        if (yych <= 0xF3)+          goto yy1886;+        if (yych <= 0xF4)+          goto yy1887;+        goto yy1850;+      }+    }+  yy1882:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1872;+    goto yy1850;+  yy1883:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1882;+    goto yy1850;+  yy1884:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1882;+    goto yy1850;+  yy1885:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1884;+    goto yy1850;+  yy1886:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1884;+    goto yy1850;+  yy1887:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1884;+    goto yy1850;+  yy1888:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1882;+    goto yy1850;+  yy1889:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+  yy1890:+    if (yych <= 0xC1) {+      if (yych <= ')') {+        if (yych <= ' ')+          goto yy1843;+        if (yych <= '\'')+          goto yy1889;+        if (yych <= '(')+          goto yy1863;+        goto yy1872;+      } else {+        if (yych == '\\')+          goto yy1898;+        if (yych <= 0x7F)+          goto yy1889;+        goto yy1843;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1891;+        if (yych <= 0xE0)+          goto yy1892;+        if (yych <= 0xEC)+          goto yy1893;+        goto yy1897;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1893;+          goto yy1894;+        } else {+          if (yych <= 0xF3)+            goto yy1895;+          if (yych <= 0xF4)+            goto yy1896;+          goto yy1843;+        }+      }+    }+  yy1891:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1889;+    goto yy1850;+  yy1892:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1891;+    goto yy1850;+  yy1893:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1891;+    goto yy1850;+  yy1894:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1893;+    goto yy1850;+  yy1895:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1893;+    goto yy1850;+  yy1896:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1893;+    goto yy1850;+  yy1897:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1891;+    goto yy1850;+  yy1898:+    ++p;+    yych = *p;+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= ' ')+          goto yy1872;+        if (yych <= '[')+          goto yy1889;+      } else {+        if (yych <= 0x7F)+          goto yy1889;+        if (yych <= 0xC1)+          goto yy1850;+        if (yych <= 0xDF)+          goto yy1900;+        goto yy1901;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1906;+        goto yy1902;+      } else {+        if (yych <= 0xF0)+          goto yy1903;+        if (yych <= 0xF3)+          goto yy1904;+        if (yych <= 0xF4)+          goto yy1905;+        goto yy1850;+      }+    }+    yyaccept = 0;+    marker = ++p;+    yych = *p;+    if (yych <= 0xDF) {+      if (yych <= '[') {+        if (yych <= ' ')+          goto yy1843;+        if (yych == '(')+          goto yy1863;+        goto yy1889;+      } else {+        if (yych <= '\\')+          goto yy1898;+        if (yych <= 0x7F)+          goto yy1889;+        if (yych <= 0xC1)+          goto yy1843;+        goto yy1891;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy1892;+        if (yych == 0xED)+          goto yy1897;+        goto yy1893;+      } else {+        if (yych <= 0xF0)+          goto yy1894;+        if (yych <= 0xF3)+          goto yy1895;+        if (yych <= 0xF4)+          goto yy1896;+        goto yy1843;+      }+    }+  yy1900:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1889;+    goto yy1850;+  yy1901:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1900;+    goto yy1850;+  yy1902:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1900;+    goto yy1850;+  yy1903:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1902;+    goto yy1850;+  yy1904:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1902;+    goto yy1850;+  yy1905:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1902;+    goto yy1850;+  yy1906:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1900;+    goto yy1850;+  yy1907:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1907;+    }+    if (yych <= '>') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1843;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1843;+          if (yych <= '\f')+            goto yy1921;+          goto yy1843;+        }+      } else {+        if (yych <= '(') {+          if (yych <= ' ')+            goto yy1921;+          goto yy1919;+        } else {+          if (yych <= ')')+            goto yy1921;+          if (yych <= '<')+            goto yy1872;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1918;+          goto yy1843;+        } else {+          if (yych <= 0xDF)+            goto yy1911;+          if (yych <= 0xE0)+            goto yy1912;+          goto yy1913;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1917;+          if (yych <= 0xEF)+            goto yy1913;+          goto yy1914;+        } else {+          if (yych <= 0xF3)+            goto yy1915;+          if (yych <= 0xF4)+            goto yy1916;+          goto yy1843;+        }+      }+    }+  yy1909:+    yyaccept = 2;+    yych = *(marker = ++p);+    if (yych <= ')') {+      if (yych <= ' ')+        goto yy1910;+      if (yych <= '(')+        goto yy1873;+    } else {+      if (yych <= 0x7F)+        goto yy1873;+      if (yych <= 0xC1)+        goto yy1910;+      if (yych <= 0xF4)+        goto yy1873;+    }+  yy1910 : { return (bufsize_t)(p - start); }+  yy1911:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1907;+    goto yy1850;+  yy1912:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1911;+    goto yy1850;+  yy1913:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1911;+    goto yy1850;+  yy1914:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1913;+    goto yy1850;+  yy1915:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1913;+    goto yy1850;+  yy1916:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1913;+    goto yy1850;+  yy1917:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1911;+    goto yy1850;+  yy1918:+    ++p;+    yych = *p;+    if (yych <= 0x7F) {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1872;+          goto yy1907;+        } else {+          if (yych <= '\n')+            goto yy1872;+          if (yych <= '\f')+            goto yy1907;+          goto yy1872;+        }+      } else {+        if (yych <= '>') {+          if (yych <= '=')+            goto yy1907;+          goto yy1965;+        } else {+          if (yych == '\\')+            goto yy1966;+          goto yy1907;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF) {+          if (yych <= 0xC1)+            goto yy1850;+          goto yy1967;+        } else {+          if (yych <= 0xE0)+            goto yy1968;+          if (yych <= 0xEC)+            goto yy1969;+          goto yy1973;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1969;+          goto yy1970;+        } else {+          if (yych <= 0xF3)+            goto yy1971;+          if (yych <= 0xF4)+            goto yy1972;+          goto yy1850;+        }+      }+    }+  yy1919:+    ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy1850;+          if (yych >= '\n')+            goto yy1850;+        } else {+          if (yych == '\r')+            goto yy1850;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1919;+          if (yych >= ')')+            goto yy1907;+        } else {+          if (yych == '<')+            goto yy1863;+          if (yych <= '=')+            goto yy1919;+          goto yy1934;+        }+      }+    } else {+      if (yych <= 0xE0) {+        if (yych <= 0x7F) {+          if (yych == '\\')+            goto yy1935;+          goto yy1919;+        } else {+          if (yych <= 0xC1)+            goto yy1850;+          if (yych <= 0xDF)+            goto yy1937;+          goto yy1938;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych == 0xED)+            goto yy1943;+          goto yy1939;+        } else {+          if (yych <= 0xF0)+            goto yy1940;+          if (yych <= 0xF3)+            goto yy1941;+          if (yych <= 0xF4)+            goto yy1942;+          goto yy1850;+        }+      }+    }+  yy1921:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1921;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= '<')+          goto yy1850;+        if (yych >= '?')+          goto yy1924;+      } else {+        if (yych <= 0xC1)+          goto yy1850;+        if (yych <= 0xDF)+          goto yy1926;+        goto yy1927;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1932;+        goto yy1928;+      } else {+        if (yych <= 0xF0)+          goto yy1929;+        if (yych <= 0xF3)+          goto yy1930;+        if (yych <= 0xF4)+          goto yy1931;+        goto yy1850;+      }+    }+  yy1923:+    yych = *++p;+    goto yy1910;+  yy1924:+    ++p;+    yych = *p;+    if (yych <= 0x7F) {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1850;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1850;+          if (yych <= '\f')+            goto yy1921;+          goto yy1850;+        }+      } else {+        if (yych <= '>') {+          if (yych <= '=')+            goto yy1921;+          goto yy1933;+        } else {+          if (yych == '\\')+            goto yy1924;+          goto yy1921;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF) {+          if (yych <= 0xC1)+            goto yy1850;+        } else {+          if (yych <= 0xE0)+            goto yy1927;+          if (yych <= 0xEC)+            goto yy1928;+          goto yy1932;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1928;+          goto yy1929;+        } else {+          if (yych <= 0xF3)+            goto yy1930;+          if (yych <= 0xF4)+            goto yy1931;+          goto yy1850;+        }+      }+    }+  yy1926:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1921;+    goto yy1850;+  yy1927:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1926;+    goto yy1850;+  yy1928:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1926;+    goto yy1850;+  yy1929:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1928;+    goto yy1850;+  yy1930:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1928;+    goto yy1850;+  yy1931:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1928;+    goto yy1850;+  yy1932:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1926;+    goto yy1850;+  yy1933:+    yyaccept = 2;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy1921;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= '<')+          goto yy1910;+        if (yych <= '>')+          goto yy1923;+        goto yy1924;+      } else {+        if (yych <= 0xC1)+          goto yy1910;+        if (yych <= 0xDF)+          goto yy1926;+        goto yy1927;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1932;+        goto yy1928;+      } else {+        if (yych <= 0xF0)+          goto yy1929;+        if (yych <= 0xF3)+          goto yy1930;+        if (yych <= 0xF4)+          goto yy1931;+        goto yy1910;+      }+    }+  yy1934:+    yyaccept = 2;+    yych = *(marker = ++p);+    if (yych <= '(') {+      if (yych <= ' ')+        goto yy1910;+      if (yych <= '\'')+        goto yy1864;+      goto yy1910;+    } else {+      if (yych <= 0x7F)+        goto yy1864;+      if (yych <= 0xC1)+        goto yy1910;+      if (yych <= 0xF4)+        goto yy1864;+      goto yy1910;+    }+  yy1935:+    ++p;+    yych = *p;+    if (yych <= '[') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1850;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1850;+          if (yych <= '\f')+            goto yy1921;+          goto yy1850;+        }+      } else {+        if (yych <= ')') {+          if (yych <= ' ')+            goto yy1921;+          if (yych <= '(')+            goto yy1919;+          goto yy1944;+        } else {+          if (yych == '>')+            goto yy1946;+          goto yy1919;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1935;+          if (yych <= 0x7F)+            goto yy1919;+          goto yy1850;+        } else {+          if (yych <= 0xDF)+            goto yy1937;+          if (yych <= 0xE0)+            goto yy1938;+          goto yy1939;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1943;+          if (yych <= 0xEF)+            goto yy1939;+          goto yy1940;+        } else {+          if (yych <= 0xF3)+            goto yy1941;+          if (yych <= 0xF4)+            goto yy1942;+          goto yy1850;+        }+      }+    }+  yy1937:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1919;+    goto yy1850;+  yy1938:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1937;+    goto yy1850;+  yy1939:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1937;+    goto yy1850;+  yy1940:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1939;+    goto yy1850;+  yy1941:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1939;+    goto yy1850;+  yy1942:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1939;+    goto yy1850;+  yy1943:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1937;+    goto yy1850;+  yy1944:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy1843;+          if (yych <= '\t')+            goto yy1921;+          goto yy1843;+        } else {+          if (yych == '\r')+            goto yy1843;+          goto yy1921;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1944;+          if (yych <= '(')+            goto yy1919;+          goto yy1907;+        } else {+          if (yych == '<')+            goto yy1889;+          if (yych <= '=')+            goto yy1944;+          goto yy1947;+        }+      }+    } else {+      if (yych <= 0xE0) {+        if (yych <= 0x7F) {+          if (yych == '\\')+            goto yy1948;+          goto yy1944;+        } else {+          if (yych <= 0xC1)+            goto yy1843;+          if (yych <= 0xDF)+            goto yy1949;+          goto yy1950;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych == 0xED)+            goto yy1955;+          goto yy1951;+        } else {+          if (yych <= 0xF0)+            goto yy1952;+          if (yych <= 0xF3)+            goto yy1953;+          if (yych <= 0xF4)+            goto yy1954;+          goto yy1843;+        }+      }+    }+  yy1946:+    yyaccept = 2;+    marker = ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy1910;+          if (yych <= '\t')+            goto yy1921;+          goto yy1910;+        } else {+          if (yych == '\r')+            goto yy1910;+          goto yy1921;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1919;+          if (yych <= '(')+            goto yy1921;+          goto yy1907;+        } else {+          if (yych == '<')+            goto yy1863;+          if (yych <= '=')+            goto yy1919;+          goto yy1934;+        }+      }+    } else {+      if (yych <= 0xE0) {+        if (yych <= 0x7F) {+          if (yych == '\\')+            goto yy1935;+          goto yy1919;+        } else {+          if (yych <= 0xC1)+            goto yy1910;+          if (yych <= 0xDF)+            goto yy1937;+          goto yy1938;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych == 0xED)+            goto yy1943;+          goto yy1939;+        } else {+          if (yych <= 0xF0)+            goto yy1940;+          if (yych <= 0xF3)+            goto yy1941;+          if (yych <= 0xF4)+            goto yy1942;+          goto yy1910;+        }+      }+    }+  yy1947:+    yyaccept = 2;+    yych = *(marker = ++p);+    if (yych <= ' ')+      goto yy1910;+    if (yych <= 0x7F)+      goto yy1890;+    if (yych <= 0xC1)+      goto yy1910;+    if (yych <= 0xF4)+      goto yy1890;+    goto yy1910;+  yy1948:+    ++p;+    yych = *p;+    if (yych <= '\\') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1872;+          goto yy1907;+        } else {+          if (yych <= '\n')+            goto yy1872;+          if (yych <= '\f')+            goto yy1907;+          goto yy1872;+        }+      } else {+        if (yych <= '=') {+          if (yych <= ' ')+            goto yy1907;+          goto yy1944;+        } else {+          if (yych <= '>')+            goto yy1956;+          if (yych <= '[')+            goto yy1944;+          goto yy1957;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= 0x7F)+            goto yy1944;+          goto yy1850;+        } else {+          if (yych <= 0xDF)+            goto yy1958;+          if (yych <= 0xE0)+            goto yy1959;+          goto yy1960;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1964;+          if (yych <= 0xEF)+            goto yy1960;+          goto yy1961;+        } else {+          if (yych <= 0xF3)+            goto yy1962;+          if (yych <= 0xF4)+            goto yy1963;+          goto yy1850;+        }+      }+    }+  yy1949:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1944;+    goto yy1850;+  yy1950:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1949;+    goto yy1850;+  yy1951:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1949;+    goto yy1850;+  yy1952:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1951;+    goto yy1850;+  yy1953:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1951;+    goto yy1850;+  yy1954:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1951;+    goto yy1850;+  yy1955:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1949;+    goto yy1850;+  yy1956:+    yyaccept = 2;+    marker = ++p;+    yych = *p;+    if (yych <= '>') {+      if (yych <= ' ') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy1910;+          if (yych <= '\t')+            goto yy1921;+          goto yy1910;+        } else {+          if (yych == '\r')+            goto yy1910;+          goto yy1921;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1944;+          if (yych <= '(')+            goto yy1919;+          goto yy1907;+        } else {+          if (yych == '<')+            goto yy1889;+          if (yych <= '=')+            goto yy1944;+          goto yy1947;+        }+      }+    } else {+      if (yych <= 0xE0) {+        if (yych <= 0x7F) {+          if (yych == '\\')+            goto yy1948;+          goto yy1944;+        } else {+          if (yych <= 0xC1)+            goto yy1910;+          if (yych <= 0xDF)+            goto yy1949;+          goto yy1950;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych == 0xED)+            goto yy1955;+          goto yy1951;+        } else {+          if (yych <= 0xF0)+            goto yy1952;+          if (yych <= 0xF3)+            goto yy1953;+          if (yych <= 0xF4)+            goto yy1954;+          goto yy1910;+        }+      }+    }+  yy1957:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+    if (yych <= '[') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1843;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1843;+          if (yych <= '\f')+            goto yy1921;+          goto yy1843;+        }+      } else {+        if (yych <= '(') {+          if (yych <= ' ')+            goto yy1921;+          if (yych <= '\'')+            goto yy1944;+          goto yy1919;+        } else {+          if (yych == '>')+            goto yy1956;+          goto yy1944;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1948;+          if (yych <= 0x7F)+            goto yy1944;+          goto yy1843;+        } else {+          if (yych <= 0xDF)+            goto yy1949;+          if (yych <= 0xE0)+            goto yy1950;+          goto yy1951;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1955;+          if (yych <= 0xEF)+            goto yy1951;+          goto yy1952;+        } else {+          if (yych <= 0xF3)+            goto yy1953;+          if (yych <= 0xF4)+            goto yy1954;+          goto yy1843;+        }+      }+    }+  yy1958:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1944;+    goto yy1850;+  yy1959:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1958;+    goto yy1850;+  yy1960:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1958;+    goto yy1850;+  yy1961:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1960;+    goto yy1850;+  yy1962:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1960;+    goto yy1850;+  yy1963:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1960;+    goto yy1850;+  yy1964:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1958;+    goto yy1850;+  yy1965:+    yyaccept = 2;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy1907;+    }+    if (yych <= '>') {+      if (yych <= '\r') {+        if (yych <= '\t') {+          if (yych <= 0x00)+            goto yy1910;+          goto yy1921;+        } else {+          if (yych <= '\n')+            goto yy1910;+          if (yych <= '\f')+            goto yy1921;+          goto yy1910;+        }+      } else {+        if (yych <= '(') {+          if (yych <= ' ')+            goto yy1921;+          goto yy1919;+        } else {+          if (yych <= ')')+            goto yy1921;+          if (yych <= '<')+            goto yy1872;+          goto yy1909;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1918;+          goto yy1910;+        } else {+          if (yych <= 0xDF)+            goto yy1911;+          if (yych <= 0xE0)+            goto yy1912;+          goto yy1913;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1917;+          if (yych <= 0xEF)+            goto yy1913;+          goto yy1914;+        } else {+          if (yych <= 0xF3)+            goto yy1915;+          if (yych <= 0xF4)+            goto yy1916;+          goto yy1910;+        }+      }+    }+  yy1966:+    yyaccept = 0;+    marker = ++p;+    yych = *p;+    if (yych <= '[') {+      if (yych <= ' ') {+        if (yych <= '\n') {+          if (yych <= 0x00)+            goto yy1843;+          if (yych <= '\t')+            goto yy1921;+          goto yy1843;+        } else {+          if (yych == '\r')+            goto yy1843;+          goto yy1921;+        }+      } else {+        if (yych <= ')') {+          if (yych <= '\'')+            goto yy1907;+          if (yych <= '(')+            goto yy1919;+          goto yy1921;+        } else {+          if (yych == '>')+            goto yy1965;+          goto yy1907;+        }+      }+    } else {+      if (yych <= 0xEC) {+        if (yych <= 0xC1) {+          if (yych <= '\\')+            goto yy1918;+          if (yych <= 0x7F)+            goto yy1907;+          goto yy1843;+        } else {+          if (yych <= 0xDF)+            goto yy1911;+          if (yych <= 0xE0)+            goto yy1912;+          goto yy1913;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xED)+            goto yy1917;+          if (yych <= 0xEF)+            goto yy1913;+          goto yy1914;+        } else {+          if (yych <= 0xF3)+            goto yy1915;+          if (yych <= 0xF4)+            goto yy1916;+          goto yy1843;+        }+      }+    }+  yy1967:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1907;+    goto yy1850;+  yy1968:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1967;+    goto yy1850;+  yy1969:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1967;+    goto yy1850;+  yy1970:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1969;+    goto yy1850;+  yy1971:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0xBF)+      goto yy1969;+    goto yy1850;+  yy1972:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x8F)+      goto yy1969;+    goto yy1850;+  yy1973:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1850;+    if (yych <= 0x9F)+      goto yy1967;+    goto yy1850;+  }+}++// 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,   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, 224,+        224, 224, 224, 224, 224, 224, 96,  224, 224, 224, 224, 160, 224, 192,+        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, 224, 224,+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,+        224, 224, 224, 224, 224, 224, 224, 224, 16,  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, 224, 224, 224, 224, 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 = *(marker = p);+    if (yych <= 0xC1) {+      if (yych <= '"') {+        if (yych == '\n')+          goto yy1976;+        if (yych <= '!')+          goto yy1980;+        goto yy1977;+      } else {+        if (yych <= '\'') {+          if (yych <= '&')+            goto yy1980;+          goto yy1978;+        } else {+          if (yych <= '(')+            goto yy1979;+          if (yych <= 0x7F)+            goto yy1980;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy1981;+        if (yych <= 0xE0)+          goto yy1983;+        if (yych <= 0xEC)+          goto yy1984;+        goto yy1988;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy1984;+          goto yy1985;+        } else {+          if (yych <= 0xF3)+            goto yy1986;+          if (yych <= 0xF4)+            goto yy1987;+        }+      }+    }+  yy1976 : { return 0; }+  yy1977:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy1976;+    if (yych <= 0x7F)+      goto yy2020;+    if (yych <= 0xC1)+      goto yy1976;+    if (yych <= 0xF4)+      goto yy2020;+    goto yy1976;+  yy1978:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy1976;+    if (yych <= 0x7F)+      goto yy2006;+    if (yych <= 0xC1)+      goto yy1976;+    if (yych <= 0xF4)+      goto yy2006;+    goto yy1976;+  yy1979:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych <= 0x00)+      goto yy1976;+    if (yych <= 0x7F)+      goto yy1992;+    if (yych <= 0xC1)+      goto yy1976;+    if (yych <= 0xF4)+      goto yy1992;+    goto yy1976;+  yy1980:+    yych = *++p;+    goto yy1976;+  yy1981:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1980;+  yy1982:+    p = marker;+    if (yyaccept <= 1) {+      if (yyaccept == 0) {+        goto yy1976;+      } else {+        goto yy2001;+      }+    } else {+      if (yyaccept == 2) {+        goto yy2015;+      } else {+        goto yy2029;+      }+    }+  yy1983:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1981;+    goto yy1982;+  yy1984:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1981;+    goto yy1982;+  yy1985:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1984;+    goto yy1982;+  yy1986:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1984;+    goto yy1982;+  yy1987:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x8F)+      goto yy1984;+    goto yy1982;+  yy1988:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x9F)+      goto yy1981;+    goto yy1982;+  yy1989:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1991;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= ')')+          goto yy2002;+        goto yy1989;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych <= 0xDF)+          goto yy1993;+        goto yy1994;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1999;+        goto yy1995;+      } else {+        if (yych <= 0xF0)+          goto yy1996;+        if (yych <= 0xF3)+          goto yy1997;+        if (yych <= 0xF4)+          goto yy1998;+        goto yy1982;+      }+    }+  yy1991:+    ++p;+    yych = *p;+  yy1992:+    if (yybm[0 + yych] & 32) {+      goto yy1991;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= ')')+          goto yy2000;+        goto yy1989;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych >= 0xE0)+          goto yy1994;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1999;+        goto yy1995;+      } else {+        if (yych <= 0xF0)+          goto yy1996;+        if (yych <= 0xF3)+          goto yy1997;+        if (yych <= 0xF4)+          goto yy1998;+        goto yy1982;+      }+    }+  yy1993:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1991;+    goto yy1982;+  yy1994:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1993;+    goto yy1982;+  yy1995:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1993;+    goto yy1982;+  yy1996:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1995;+    goto yy1982;+  yy1997:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy1995;+    goto yy1982;+  yy1998:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x8F)+      goto yy1995;+    goto yy1982;+  yy1999:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x9F)+      goto yy1993;+    goto yy1982;+  yy2000:+    ++p;+  yy2001 : { return (bufsize_t)(p - start); }+  yy2002:+    yyaccept = 1;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy1991;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy2001;+        if (yych <= ')')+          goto yy2000;+        goto yy1989;+      } else {+        if (yych <= 0xC1)+          goto yy2001;+        if (yych <= 0xDF)+          goto yy1993;+        goto yy1994;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy1999;+        goto yy1995;+      } else {+        if (yych <= 0xF0)+          goto yy1996;+        if (yych <= 0xF3)+          goto yy1997;+        if (yych <= 0xF4)+          goto yy1998;+        goto yy2001;+      }+    }+  yy2003:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy2005;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= '\'')+          goto yy2016;+        goto yy2003;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych <= 0xDF)+          goto yy2007;+        goto yy2008;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2013;+        goto yy2009;+      } else {+        if (yych <= 0xF0)+          goto yy2010;+        if (yych <= 0xF3)+          goto yy2011;+        if (yych <= 0xF4)+          goto yy2012;+        goto yy1982;+      }+    }+  yy2005:+    ++p;+    yych = *p;+  yy2006:+    if (yybm[0 + yych] & 64) {+      goto yy2005;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= '\'')+          goto yy2014;+        goto yy2003;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych >= 0xE0)+          goto yy2008;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2013;+        goto yy2009;+      } else {+        if (yych <= 0xF0)+          goto yy2010;+        if (yych <= 0xF3)+          goto yy2011;+        if (yych <= 0xF4)+          goto yy2012;+        goto yy1982;+      }+    }+  yy2007:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2005;+    goto yy1982;+  yy2008:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2007;+    goto yy1982;+  yy2009:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2007;+    goto yy1982;+  yy2010:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2009;+    goto yy1982;+  yy2011:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2009;+    goto yy1982;+  yy2012:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x8F)+      goto yy2009;+    goto yy1982;+  yy2013:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x9F)+      goto yy2007;+    goto yy1982;+  yy2014:+    ++p;+  yy2015 : { return (bufsize_t)(p - start); }+  yy2016:+    yyaccept = 2;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy2005;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy2015;+        if (yych <= '\'')+          goto yy2014;+        goto yy2003;+      } else {+        if (yych <= 0xC1)+          goto yy2015;+        if (yych <= 0xDF)+          goto yy2007;+        goto yy2008;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2013;+        goto yy2009;+      } else {+        if (yych <= 0xF0)+          goto yy2010;+        if (yych <= 0xF3)+          goto yy2011;+        if (yych <= 0xF4)+          goto yy2012;+        goto yy2015;+      }+    }+  yy2017:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2019;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= '"')+          goto yy2030;+        goto yy2017;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych <= 0xDF)+          goto yy2021;+        goto yy2022;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2027;+        goto yy2023;+      } else {+        if (yych <= 0xF0)+          goto yy2024;+        if (yych <= 0xF3)+          goto yy2025;+        if (yych <= 0xF4)+          goto yy2026;+        goto yy1982;+      }+    }+  yy2019:+    ++p;+    yych = *p;+  yy2020:+    if (yybm[0 + yych] & 128) {+      goto yy2019;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy1982;+        if (yych <= '"')+          goto yy2028;+        goto yy2017;+      } else {+        if (yych <= 0xC1)+          goto yy1982;+        if (yych >= 0xE0)+          goto yy2022;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2027;+        goto yy2023;+      } else {+        if (yych <= 0xF0)+          goto yy2024;+        if (yych <= 0xF3)+          goto yy2025;+        if (yych <= 0xF4)+          goto yy2026;+        goto yy1982;+      }+    }+  yy2021:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2019;+    goto yy1982;+  yy2022:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2021;+    goto yy1982;+  yy2023:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2021;+    goto yy1982;+  yy2024:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2023;+    goto yy1982;+  yy2025:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0xBF)+      goto yy2023;+    goto yy1982;+  yy2026:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x8F)+      goto yy2023;+    goto yy1982;+  yy2027:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy1982;+    if (yych <= 0x9F)+      goto yy2021;+    goto yy1982;+  yy2028:+    ++p;+  yy2029 : { return (bufsize_t)(p - start); }+  yy2030:+    yyaccept = 3;+    marker = ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2019;+    }+    if (yych <= 0xE0) {+      if (yych <= '\\') {+        if (yych <= 0x00)+          goto yy2029;+        if (yych <= '"')+          goto yy2028;+        goto yy2017;+      } else {+        if (yych <= 0xC1)+          goto yy2029;+        if (yych <= 0xDF)+          goto yy2021;+        goto yy2022;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2027;+        goto yy2023;+      } else {+        if (yych <= 0xF0)+          goto yy2024;+        if (yych <= 0xF3)+          goto yy2025;+        if (yych <= 0xF4)+          goto yy2026;+        goto yy2029;+      }+    }+  }+}++// Match space characters, including newlines.+bufsize_t _scan_spacechars(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, 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 = *(marker = p);+    if (yych <= 0xC1) {+      if (yych <= '\r') {+        if (yych <= 0x08)+          goto yy2037;+        if (yych == '\n')+          goto yy2035;+        goto yy2034;+      } else {+        if (yych == ' ')+          goto yy2034;+        if (yych <= 0x7F)+          goto yy2037;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy2039;+        if (yych <= 0xE0)+          goto yy2041;+        if (yych <= 0xEC)+          goto yy2042;+        goto yy2046;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy2042;+          goto yy2043;+        } else {+          if (yych <= 0xF3)+            goto yy2044;+          if (yych <= 0xF4)+            goto yy2045;+        }+      }+    }+  yy2033 : { return (bufsize_t)(p - start); }+  yy2034:+    yych = *++p;+    goto yy2036;+  yy2035:+    ++p;+    yych = *p;+  yy2036:+    if (yybm[0 + yych] & 128) {+      goto yy2035;+    }+    goto yy2033;+  yy2037:+    ++p;+    { return 0; }+  yy2039:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2040;+    if (yych <= 0xBF)+      goto yy2037;+  yy2040:+    p = marker;+    goto yy2033;+  yy2041:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2040;+    if (yych <= 0xBF)+      goto yy2039;+    goto yy2040;+  yy2042:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2040;+    if (yych <= 0xBF)+      goto yy2039;+    goto yy2040;+  yy2043:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2040;+    if (yych <= 0xBF)+      goto yy2042;+    goto yy2040;+  yy2044:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2040;+    if (yych <= 0xBF)+      goto yy2042;+    goto yy2040;+  yy2045:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2040;+    if (yych <= 0x8F)+      goto yy2042;+    goto yy2040;+  yy2046:+    ++p;+    if ((yych = *p) <= 0x7F)+      goto yy2040;+    if (yych <= 0x9F)+      goto yy2039;+    goto yy2040;+  }+}++// Match ATX header start.+bufsize_t _scan_atx_header_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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= '"') {+        if (yych != '\n')+          goto yy2051;+      } else {+        if (yych <= '#')+          goto yy2050;+        if (yych <= 0x7F)+          goto yy2051;+        if (yych >= 0xC2)+          goto yy2052;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy2054;+        if (yych == 0xED)+          goto yy2059;+        goto yy2055;+      } else {+        if (yych <= 0xF0)+          goto yy2056;+        if (yych <= 0xF3)+          goto yy2057;+        if (yych <= 0xF4)+          goto yy2058;+      }+    }+  yy2049 : { return 0; }+  yy2050:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2060;+      goto yy2049;+    } else {+      if (yych <= '\r')+        goto yy2060;+      if (yych == '#')+        goto yy2064;+      goto yy2049;+    }+  yy2051:+    yych = *++p;+    goto yy2049;+  yy2052:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2053;+    if (yych <= 0xBF)+      goto yy2051;+  yy2053:+    p = marker;+    goto yy2049;+  yy2054:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2053;+    if (yych <= 0xBF)+      goto yy2052;+    goto yy2053;+  yy2055:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2053;+    if (yych <= 0xBF)+      goto yy2052;+    goto yy2053;+  yy2056:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2053;+    if (yych <= 0xBF)+      goto yy2055;+    goto yy2053;+  yy2057:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2053;+    if (yych <= 0xBF)+      goto yy2055;+    goto yy2053;+  yy2058:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2053;+    if (yych <= 0x8F)+      goto yy2055;+    goto yy2053;+  yy2059:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2053;+    if (yych <= 0x9F)+      goto yy2052;+    goto yy2053;+  yy2060:+    ++p;+  yy2061 : { return (bufsize_t)(p - start); }+  yy2062:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    goto yy2061;+  yy2064:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2060;+      goto yy2053;+    } else {+      if (yych <= '\r')+        goto yy2060;+      if (yych != '#')+        goto yy2053;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2060;+      goto yy2053;+    } else {+      if (yych <= '\r')+        goto yy2060;+      if (yych != '#')+        goto yy2053;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2060;+      goto yy2053;+    } else {+      if (yych <= '\r')+        goto yy2060;+      if (yych != '#')+        goto yy2053;+    }+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy2062;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2060;+      goto yy2053;+    } else {+      if (yych <= '\r')+        goto yy2060;+      if (yych != '#')+        goto yy2053;+    }+    ++p;+    if (yybm[0 + (yych = *p)] & 128) {+      goto yy2062;+    }+    if (yych == '\n')+      goto yy2060;+    if (yych == '\r')+      goto yy2060;+    goto yy2053;+  }+}++// Match setext header line.  Return 1 for level-1 header,+// 2 for level-2, 0 for no match.+bufsize_t _scan_setext_header_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, 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, 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 = *(marker = p);+    if (yych <= 0xC1) {+      if (yych <= '-') {+        if (yych == '\n')+          goto yy2071;+        if (yych <= ',')+          goto yy2074;+        goto yy2073;+      } else {+        if (yych == '=')+          goto yy2072;+        if (yych <= 0x7F)+          goto yy2074;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy2075;+        if (yych <= 0xE0)+          goto yy2077;+        if (yych <= 0xEC)+          goto yy2078;+        goto yy2082;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy2078;+          goto yy2079;+        } else {+          if (yych <= 0xF3)+            goto yy2080;+          if (yych <= 0xF4)+            goto yy2081;+        }+      }+    }+  yy2071 : { return 0; }+  yy2072:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 128) {+      goto yy2093;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2091;+      goto yy2071;+    } else {+      if (yych <= '\r')+        goto yy2091;+      if (yych == ' ')+        goto yy2089;+      goto yy2071;+    }+  yy2073:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 32) {+      goto yy2083;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2085;+      goto yy2071;+    } else {+      if (yych <= '\r')+        goto yy2085;+      if (yych == '-')+        goto yy2087;+      goto yy2071;+    }+  yy2074:+    yych = *++p;+    goto yy2071;+  yy2075:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2076;+    if (yych <= 0xBF)+      goto yy2074;+  yy2076:+    p = marker;+    goto yy2071;+  yy2077:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2076;+    if (yych <= 0xBF)+      goto yy2075;+    goto yy2076;+  yy2078:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2076;+    if (yych <= 0xBF)+      goto yy2075;+    goto yy2076;+  yy2079:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2076;+    if (yych <= 0xBF)+      goto yy2078;+    goto yy2076;+  yy2080:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2076;+    if (yych <= 0xBF)+      goto yy2078;+    goto yy2076;+  yy2081:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2076;+    if (yych <= 0x8F)+      goto yy2078;+    goto yy2076;+  yy2082:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2076;+    if (yych <= 0x9F)+      goto yy2075;+    goto yy2076;+  yy2083:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy2083;+    }+    if (yych == '\n')+      goto yy2085;+    if (yych != '\r')+      goto yy2076;+  yy2085:+    ++p;+    { return 2; }+  yy2087:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy2083;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2085;+      goto yy2076;+    } else {+      if (yych <= '\r')+        goto yy2085;+      if (yych == '-')+        goto yy2087;+      goto yy2076;+    }+  yy2089:+    ++p;+    yych = *p;+    if (yych <= '\f') {+      if (yych != '\n')+        goto yy2076;+    } else {+      if (yych <= '\r')+        goto yy2091;+      if (yych == ' ')+        goto yy2089;+      goto yy2076;+    }+  yy2091:+    ++p;+    { return 1; }+  yy2093:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2093;+    }+    if (yych <= '\f') {+      if (yych == '\n')+        goto yy2091;+      goto yy2076;+    } else {+      if (yych <= '\r')+        goto yy2091;+      if (yych == ' ')+        goto yy2089;+      goto yy2076;+    }+  }+}++// Scan a horizontal rule line: "...three or more hyphens, asterisks,+// or underscores on a line by themselves. If you wish, you may use+// spaces between the hyphens or asterisks."+bufsize_t _scan_hrule(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, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,+        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,+        0, 0,  0, 0, 0, 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, 0, 0, 0,  0, 0,  0,   0, 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 = *(marker = p);+    if (yych <= 0x7F) {+      if (yych <= '*') {+        if (yych == '\n')+          goto yy2097;+        if (yych <= ')')+          goto yy2101;+        goto yy2098;+      } else {+        if (yych <= '-') {+          if (yych <= ',')+            goto yy2101;+          goto yy2100;+        } else {+          if (yych == '_')+            goto yy2099;+          goto yy2101;+        }+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF) {+          if (yych >= 0xC2)+            goto yy2102;+        } else {+          if (yych <= 0xE0)+            goto yy2104;+          if (yych <= 0xEC)+            goto yy2105;+          goto yy2109;+        }+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy2105;+          goto yy2106;+        } else {+          if (yych <= 0xF3)+            goto yy2107;+          if (yych <= 0xF4)+            goto yy2108;+        }+      }+    }+  yy2097 : { return 0; }+  yy2098:+    yych = *(marker = ++p);+    if (yych == ' ')+      goto yy2130;+    if (yych == '*')+      goto yy2132;+    goto yy2097;+  yy2099:+    yych = *(marker = ++p);+    if (yych == ' ')+      goto yy2120;+    if (yych == '_')+      goto yy2122;+    goto yy2097;+  yy2100:+    yych = *(marker = ++p);+    if (yybm[0 + yych] & 8) {+      goto yy2110;+    }+    if (yych == '-')+      goto yy2112;+    goto yy2097;+  yy2101:+    yych = *++p;+    goto yy2097;+  yy2102:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2103;+    if (yych <= 0xBF)+      goto yy2101;+  yy2103:+    p = marker;+    goto yy2097;+  yy2104:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2103;+    if (yych <= 0xBF)+      goto yy2102;+    goto yy2103;+  yy2105:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2103;+    if (yych <= 0xBF)+      goto yy2102;+    goto yy2103;+  yy2106:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2103;+    if (yych <= 0xBF)+      goto yy2105;+    goto yy2103;+  yy2107:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2103;+    if (yych <= 0xBF)+      goto yy2105;+    goto yy2103;+  yy2108:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2103;+    if (yych <= 0x8F)+      goto yy2105;+    goto yy2103;+  yy2109:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2103;+    if (yych <= 0x9F)+      goto yy2102;+    goto yy2103;+  yy2110:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 8) {+      goto yy2110;+    }+    if (yych != '-')+      goto yy2103;+  yy2112:+    ++p;+    yych = *p;+    if (yych == ' ')+      goto yy2112;+    if (yych != '-')+      goto yy2103;+  yy2114:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 16) {+      goto yy2114;+    }+    if (yych <= '\n') {+      if (yych <= 0x08)+        goto yy2103;+      if (yych >= '\n')+        goto yy2118;+    } else {+      if (yych == '\r')+        goto yy2118;+      goto yy2103;+    }+  yy2116:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy2116;+    }+    if (yych <= 0x08)+      goto yy2103;+    if (yych <= '\n')+      goto yy2118;+    if (yych != '\r')+      goto yy2103;+  yy2118:+    ++p;+    { return (bufsize_t)(p - start); }+  yy2120:+    ++p;+    yych = *p;+    if (yych == ' ')+      goto yy2120;+    if (yych != '_')+      goto yy2103;+  yy2122:+    ++p;+    yych = *p;+    if (yych == ' ')+      goto yy2122;+    if (yych != '_')+      goto yy2103;+  yy2124:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy2124;+    }+    if (yych <= '\n') {+      if (yych <= 0x08)+        goto yy2103;+      if (yych >= '\n')+        goto yy2128;+    } else {+      if (yych == '\r')+        goto yy2128;+      goto yy2103;+    }+  yy2126:+    ++p;+    yych = *p;+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy2103;+      if (yych <= '\t')+        goto yy2126;+      if (yych >= '\v')+        goto yy2103;+    } else {+      if (yych <= '\r')+        goto yy2128;+      if (yych == ' ')+        goto yy2126;+      goto yy2103;+    }+  yy2128:+    ++p;+    { return (bufsize_t)(p - start); }+  yy2130:+    ++p;+    yych = *p;+    if (yych == ' ')+      goto yy2130;+    if (yych != '*')+      goto yy2103;+  yy2132:+    ++p;+    yych = *p;+    if (yych == ' ')+      goto yy2132;+    if (yych != '*')+      goto yy2103;+  yy2134:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2134;+    }+    if (yych <= '\n') {+      if (yych <= 0x08)+        goto yy2103;+      if (yych >= '\n')+        goto yy2138;+    } else {+      if (yych == '\r')+        goto yy2138;+      goto yy2103;+    }+  yy2136:+    ++p;+    yych = *p;+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy2103;+      if (yych <= '\t')+        goto yy2136;+      if (yych >= '\v')+        goto yy2103;+    } else {+      if (yych <= '\r')+        goto yy2138;+      if (yych == ' ')+        goto yy2136;+      goto yy2103;+    }+  yy2138:+    ++p;+    { return (bufsize_t)(p - start); }+  }+}++// 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,   160, 160, 160, 160, 160, 160, 160, 160, 160, 0,   160, 160, 0,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96,  160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,+        144, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,+        0,   0,   0,   0,   0,   0,   0,   0,   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 = *(marker = p);+    if (yych <= 0xC1) {+      if (yych <= '`') {+        if (yych == '\n')+          goto yy2142;+        if (yych <= '_')+          goto yy2145;+        goto yy2143;+      } else {+        if (yych == '~')+          goto yy2144;+        if (yych <= 0x7F)+          goto yy2145;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy2146;+        if (yych <= 0xE0)+          goto yy2148;+        if (yych <= 0xEC)+          goto yy2149;+        goto yy2153;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy2149;+          goto yy2150;+        } else {+          if (yych <= 0xF3)+            goto yy2151;+          if (yych <= 0xF4)+            goto yy2152;+        }+      }+    }+  yy2142 : { return 0; }+  yy2143:+    yych = *(marker = ++p);+    if (yych == '`')+      goto yy2168;+    goto yy2142;+  yy2144:+    yych = *(marker = ++p);+    if (yych == '~')+      goto yy2154;+    goto yy2142;+  yy2145:+    yych = *++p;+    goto yy2142;+  yy2146:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2145;+  yy2147:+    p = marker;+    goto yy2142;+  yy2148:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2146;+    goto yy2147;+  yy2149:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2146;+    goto yy2147;+  yy2150:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2149;+    goto yy2147;+  yy2151:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2149;+    goto yy2147;+  yy2152:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x8F)+      goto yy2149;+    goto yy2147;+  yy2153:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x9F)+      goto yy2146;+    goto yy2147;+  yy2154:+    yych = *++p;+    if (yybm[0 + yych] & 16) {+      goto yy2155;+    }+    goto yy2147;+  yy2155:+    marker = p + 1;+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy2157;+    }+    if (yych <= 0xE0) {+      if (yych <= '~') {+        if (yych <= 0x00)+          goto yy2147;+        if (yych <= '\r')+          goto yy2166;+        goto yy2155;+      } else {+        if (yych <= 0xC1)+          goto yy2147;+        if (yych <= 0xDF)+          goto yy2159;+        goto yy2160;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2165;+        goto yy2161;+      } else {+        if (yych <= 0xF0)+          goto yy2162;+        if (yych <= 0xF3)+          goto yy2163;+        if (yych <= 0xF4)+          goto yy2164;+        goto yy2147;+      }+    }+  yy2157:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 32) {+      goto yy2157;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy2147;+        if (yych <= '\r')+          goto yy2166;+        goto yy2147;+      } else {+        if (yych <= 0xDF)+          goto yy2159;+        if (yych <= 0xE0)+          goto yy2160;+        goto yy2161;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy2165;+        if (yych <= 0xEF)+          goto yy2161;+        goto yy2162;+      } else {+        if (yych <= 0xF3)+          goto yy2163;+        if (yych <= 0xF4)+          goto yy2164;+        goto yy2147;+      }+    }+  yy2159:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2157;+    goto yy2147;+  yy2160:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2159;+    goto yy2147;+  yy2161:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2159;+    goto yy2147;+  yy2162:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2161;+    goto yy2147;+  yy2163:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2161;+    goto yy2147;+  yy2164:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x8F)+      goto yy2161;+    goto yy2147;+  yy2165:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x9F)+      goto yy2159;+    goto yy2147;+  yy2166:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  yy2168:+    yych = *++p;+    if (yybm[0 + yych] & 64) {+      goto yy2169;+    }+    goto yy2147;+  yy2169:+    marker = p + 1;+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2171;+    }+    if (yych <= 0xE0) {+      if (yych <= '`') {+        if (yych <= 0x00)+          goto yy2147;+        if (yych <= '\r')+          goto yy2180;+        goto yy2169;+      } else {+        if (yych <= 0xC1)+          goto yy2147;+        if (yych <= 0xDF)+          goto yy2173;+        goto yy2174;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych == 0xED)+          goto yy2179;+        goto yy2175;+      } else {+        if (yych <= 0xF0)+          goto yy2176;+        if (yych <= 0xF3)+          goto yy2177;+        if (yych <= 0xF4)+          goto yy2178;+        goto yy2147;+      }+    }+  yy2171:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2171;+    }+    if (yych <= 0xEC) {+      if (yych <= 0xC1) {+        if (yych <= 0x00)+          goto yy2147;+        if (yych <= '\r')+          goto yy2180;+        goto yy2147;+      } else {+        if (yych <= 0xDF)+          goto yy2173;+        if (yych <= 0xE0)+          goto yy2174;+        goto yy2175;+      }+    } else {+      if (yych <= 0xF0) {+        if (yych <= 0xED)+          goto yy2179;+        if (yych <= 0xEF)+          goto yy2175;+        goto yy2176;+      } else {+        if (yych <= 0xF3)+          goto yy2177;+        if (yych <= 0xF4)+          goto yy2178;+        goto yy2147;+      }+    }+  yy2173:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2171;+    goto yy2147;+  yy2174:+    ++p;+    yych = *p;+    if (yych <= 0x9F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2173;+    goto yy2147;+  yy2175:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2173;+    goto yy2147;+  yy2176:+    ++p;+    yych = *p;+    if (yych <= 0x8F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2175;+    goto yy2147;+  yy2177:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0xBF)+      goto yy2175;+    goto yy2147;+  yy2178:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x8F)+      goto yy2175;+    goto yy2147;+  yy2179:+    ++p;+    yych = *p;+    if (yych <= 0x7F)+      goto yy2147;+    if (yych <= 0x9F)+      goto yy2173;+    goto yy2147;+  yy2180:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  }+}++// 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,   64, 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, 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, 32, 0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 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 = *(marker = p);+    if (yych <= 0xC1) {+      if (yych <= '`') {+        if (yych == '\n')+          goto yy2184;+        if (yych <= '_')+          goto yy2187;+        goto yy2185;+      } else {+        if (yych == '~')+          goto yy2186;+        if (yych <= 0x7F)+          goto yy2187;+      }+    } else {+      if (yych <= 0xED) {+        if (yych <= 0xDF)+          goto yy2188;+        if (yych <= 0xE0)+          goto yy2190;+        if (yych <= 0xEC)+          goto yy2191;+        goto yy2195;+      } else {+        if (yych <= 0xF0) {+          if (yych <= 0xEF)+            goto yy2191;+          goto yy2192;+        } else {+          if (yych <= 0xF3)+            goto yy2193;+          if (yych <= 0xF4)+            goto yy2194;+        }+      }+    }+  yy2184 : { return 0; }+  yy2185:+    yych = *(marker = ++p);+    if (yych == '`')+      goto yy2203;+    goto yy2184;+  yy2186:+    yych = *(marker = ++p);+    if (yych == '~')+      goto yy2196;+    goto yy2184;+  yy2187:+    yych = *++p;+    goto yy2184;+  yy2188:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2189;+    if (yych <= 0xBF)+      goto yy2187;+  yy2189:+    p = marker;+    goto yy2184;+  yy2190:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2189;+    if (yych <= 0xBF)+      goto yy2188;+    goto yy2189;+  yy2191:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2189;+    if (yych <= 0xBF)+      goto yy2188;+    goto yy2189;+  yy2192:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2189;+    if (yych <= 0xBF)+      goto yy2191;+    goto yy2189;+  yy2193:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2189;+    if (yych <= 0xBF)+      goto yy2191;+    goto yy2189;+  yy2194:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2189;+    if (yych <= 0x8F)+      goto yy2191;+    goto yy2189;+  yy2195:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2189;+    if (yych <= 0x9F)+      goto yy2188;+    goto yy2189;+  yy2196:+    yych = *++p;+    if (yybm[0 + yych] & 32) {+      goto yy2197;+    }+    goto yy2189;+  yy2197:+    marker = p + 1;+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy2199;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy2189;+      if (yych <= '\n')+        goto yy2201;+      goto yy2189;+    } else {+      if (yych <= '\r')+        goto yy2201;+      if (yych == '~')+        goto yy2197;+      goto yy2189;+    }+  yy2199:+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 64) {+      goto yy2199;+    }+    if (yych <= 0x08)+      goto yy2189;+    if (yych <= '\n')+      goto yy2201;+    if (yych != '\r')+      goto yy2189;+  yy2201:+    ++p;+    p = marker;+    { return (bufsize_t)(p - start); }+  yy2203:+    yych = *++p;+    if (yybm[0 + yych] & 128) {+      goto yy2204;+    }+    goto yy2189;+  yy2204:+    marker = p + 1;+    ++p;+    yych = *p;+    if (yybm[0 + yych] & 128) {+      goto yy2204;+    }+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy2189;+      if (yych <= '\t')+        goto yy2206;+      if (yych <= '\n')+        goto yy2208;+      goto yy2189;+    } else {+      if (yych <= '\r')+        goto yy2208;+      if (yych != ' ')+        goto yy2189;+    }+  yy2206:+    ++p;+    yych = *p;+    if (yych <= '\f') {+      if (yych <= 0x08)+        goto yy2189;+      if (yych <= '\t')+        goto yy2206;+      if (yych >= '\v')+        goto yy2189;+    } else {+      if (yych <= '\r')+        goto yy2208;+      if (yych == ' ')+        goto yy2206;+      goto yy2189;+    }+  yy2208:+    ++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 = *(marker = p);+    if (yych <= 0xDF) {+      if (yych <= '%') {+        if (yych != '\n')+          goto yy2214;+      } else {+        if (yych <= '&')+          goto yy2213;+        if (yych <= 0x7F)+          goto yy2214;+        if (yych >= 0xC2)+          goto yy2215;+      }+    } else {+      if (yych <= 0xEF) {+        if (yych <= 0xE0)+          goto yy2217;+        if (yych == 0xED)+          goto yy2222;+        goto yy2218;+      } else {+        if (yych <= 0xF0)+          goto yy2219;+        if (yych <= 0xF3)+          goto yy2220;+        if (yych <= 0xF4)+          goto yy2221;+      }+    }+  yy2212 : { return 0; }+  yy2213:+    yych = *(marker = ++p);+    if (yych <= '@') {+      if (yych == '#')+        goto yy2223;+      goto yy2212;+    } else {+      if (yych <= 'Z')+        goto yy2224;+      if (yych <= '`')+        goto yy2212;+      if (yych <= 'z')+        goto yy2224;+      goto yy2212;+    }+  yy2214:+    yych = *++p;+    goto yy2212;+  yy2215:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2216;+    if (yych <= 0xBF)+      goto yy2214;+  yy2216:+    p = marker;+    goto yy2212;+  yy2217:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2216;+    if (yych <= 0xBF)+      goto yy2215;+    goto yy2216;+  yy2218:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2216;+    if (yych <= 0xBF)+      goto yy2215;+    goto yy2216;+  yy2219:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2216;+    if (yych <= 0xBF)+      goto yy2218;+    goto yy2216;+  yy2220:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2216;+    if (yych <= 0xBF)+      goto yy2218;+    goto yy2216;+  yy2221:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2216;+    if (yych <= 0x8F)+      goto yy2218;+    goto yy2216;+  yy2222:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2216;+    if (yych <= 0x9F)+      goto yy2215;+    goto yy2216;+  yy2223:+    yych = *++p;+    if (yych <= 'W') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2259;+      goto yy2216;+    } else {+      if (yych <= 'X')+        goto yy2258;+      if (yych == 'x')+        goto yy2258;+      goto yy2216;+    }+  yy2224:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy2216;+      if (yych >= ':')+        goto yy2216;+    } else {+      if (yych <= 'Z')+        goto yy2225;+      if (yych <= '`')+        goto yy2216;+      if (yych >= '{')+        goto yy2216;+    }+  yy2225:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2228;+      if (yych <= ':')+        goto yy2216;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+        goto yy2228;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych <= 'z')+          goto yy2228;+        goto yy2216;+      }+    }+  yy2226:+    ++p;+    { return (bufsize_t)(p - start); }+  yy2228:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2229;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2229:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2230;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2230:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2231;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2231:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2232;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2232:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2233;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2233:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2234;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2234:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2235;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2235:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2236;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2236:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2237;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2237:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2238;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2238:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2239;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2239:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2240;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2240:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2241;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2241:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2242;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2242:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2243;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2243:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2244;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2244:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2245;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2245:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2246;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2246:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2247;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2247:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2248;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2248:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2249;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2249:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2250;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2250:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2251;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2251:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2252;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2252:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2253;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2253:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2254;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2254:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2255;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2255:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2256;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2256:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2257;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'Z') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= '{')+          goto yy2216;+      }+    }+  yy2257:+    yych = *++p;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2258:+    yych = *++p;+    if (yych <= '@') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2266;+      goto yy2216;+    } else {+      if (yych <= 'F')+        goto yy2266;+      if (yych <= '`')+        goto yy2216;+      if (yych <= 'f')+        goto yy2266;+      goto yy2216;+    }+  yy2259:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2260;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2260:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2261;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2261:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2262;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2262:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2263;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2263:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2264;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2264:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2265;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2265:+    yych = *++p;+    if (yych <= '/')+      goto yy2216;+    if (yych <= '9')+      goto yy2257;+    if (yych == ';')+      goto yy2226;+    goto yy2216;+  yy2266:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2267;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2267:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2268;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2268:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2269;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2269:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2270;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2270:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2271;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2271:+    yych = *++p;+    if (yych <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2272;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych >= 'g')+          goto yy2216;+      }+    }+  yy2272:+    ++p;+    if ((yych = *p) <= ';') {+      if (yych <= '/')+        goto yy2216;+      if (yych <= '9')+        goto yy2257;+      if (yych <= ':')+        goto yy2216;+      goto yy2226;+    } else {+      if (yych <= 'F') {+        if (yych <= '@')+          goto yy2216;+        goto yy2257;+      } else {+        if (yych <= '`')+          goto yy2216;+        if (yych <= 'f')+          goto yy2257;+        goto yy2216;+      }+    }+  }+}++// 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 = *(marker = p);+    if (yych <= 'f') {+      if (yych <= 'I') {+        if (yych <= 'C') {+          if (yych != '\n')+            goto yy2280;+        } else {+          if (yych <= 'D')+            goto yy2276;+          if (yych == 'F')+            goto yy2279;+          goto yy2280;+        }+      } else {+        if (yych <= 'V') {+          if (yych <= 'J')+            goto yy2277;+          if (yych <= 'U')+            goto yy2280;+          goto yy2278;+        } else {+          if (yych == 'd')+            goto yy2276;+          if (yych <= 'e')+            goto yy2280;+          goto yy2279;+        }+      }+    } else {+      if (yych <= 0xDF) {+        if (yych <= 'u') {+          if (yych == 'j')+            goto yy2277;+          goto yy2280;+        } else {+          if (yych <= 'v')+            goto yy2278;+          if (yych <= 0x7F)+            goto yy2280;+          if (yych >= 0xC2)+            goto yy2281;+        }+      } else {+        if (yych <= 0xEF) {+          if (yych <= 0xE0)+            goto yy2283;+          if (yych == 0xED)+            goto yy2288;+          goto yy2284;+        } else {+          if (yych <= 0xF0)+            goto yy2285;+          if (yych <= 0xF3)+            goto yy2286;+          if (yych <= 0xF4)+            goto yy2287;+        }+      }+    }+  yy2275 : { return 0; }+  yy2276:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'A')+      goto yy2310;+    if (yych == 'a')+      goto yy2310;+    goto yy2275;+  yy2277:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'A')+      goto yy2301;+    if (yych == 'a')+      goto yy2301;+    goto yy2275;+  yy2278:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'B')+      goto yy2294;+    if (yych == 'b')+      goto yy2294;+    goto yy2275;+  yy2279:+    yyaccept = 0;+    yych = *(marker = ++p);+    if (yych == 'I')+      goto yy2289;+    if (yych == 'i')+      goto yy2289;+    goto yy2275;+  yy2280:+    yych = *++p;+    goto yy2275;+  yy2281:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2282;+    if (yych <= 0xBF)+      goto yy2280;+  yy2282:+    p = marker;+    if (yyaccept == 0) {+      goto yy2275;+    } else {+      goto yy2293;+    }+  yy2283:+    yych = *++p;+    if (yych <= 0x9F)+      goto yy2282;+    if (yych <= 0xBF)+      goto yy2281;+    goto yy2282;+  yy2284:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2282;+    if (yych <= 0xBF)+      goto yy2281;+    goto yy2282;+  yy2285:+    yych = *++p;+    if (yych <= 0x8F)+      goto yy2282;+    if (yych <= 0xBF)+      goto yy2284;+    goto yy2282;+  yy2286:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2282;+    if (yych <= 0xBF)+      goto yy2284;+    goto yy2282;+  yy2287:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2282;+    if (yych <= 0x8F)+      goto yy2284;+    goto yy2282;+  yy2288:+    yych = *++p;+    if (yych <= 0x7F)+      goto yy2282;+    if (yych <= 0x9F)+      goto yy2281;+    goto yy2282;+  yy2289:+    yych = *++p;+    if (yych == 'L')+      goto yy2290;+    if (yych != 'l')+      goto yy2282;+  yy2290:+    yych = *++p;+    if (yych == 'E')+      goto yy2291;+    if (yych != 'e')+      goto yy2282;+  yy2291:+    yych = *++p;+    if (yych != ':')+      goto yy2282;+  yy2292:+    ++p;+  yy2293 : { return (bufsize_t)(p - start); }+  yy2294:+    yych = *++p;+    if (yych == 'S')+      goto yy2295;+    if (yych != 's')+      goto yy2282;+  yy2295:+    yych = *++p;+    if (yych == 'C')+      goto yy2296;+    if (yych != 'c')+      goto yy2282;+  yy2296:+    yych = *++p;+    if (yych == 'R')+      goto yy2297;+    if (yych != 'r')+      goto yy2282;+  yy2297:+    yych = *++p;+    if (yych == 'I')+      goto yy2298;+    if (yych != 'i')+      goto yy2282;+  yy2298:+    yych = *++p;+    if (yych == 'P')+      goto yy2299;+    if (yych != 'p')+      goto yy2282;+  yy2299:+    yych = *++p;+    if (yych == 'T')+      goto yy2300;+    if (yych != 't')+      goto yy2282;+  yy2300:+    yych = *++p;+    if (yych == ':')+      goto yy2292;+    goto yy2282;+  yy2301:+    yych = *++p;+    if (yych == 'V')+      goto yy2302;+    if (yych != 'v')+      goto yy2282;+  yy2302:+    yych = *++p;+    if (yych == 'A')+      goto yy2303;+    if (yych != 'a')+      goto yy2282;+  yy2303:+    yych = *++p;+    if (yych == 'S')+      goto yy2304;+    if (yych != 's')+      goto yy2282;+  yy2304:+    yych = *++p;+    if (yych == 'C')+      goto yy2305;+    if (yych != 'c')+      goto yy2282;+  yy2305:+    yych = *++p;+    if (yych == 'R')+      goto yy2306;+    if (yych != 'r')+      goto yy2282;+  yy2306:+    yych = *++p;+    if (yych == 'I')+      goto yy2307;+    if (yych != 'i')+      goto yy2282;+  yy2307:+    yych = *++p;+    if (yych == 'P')+      goto yy2308;+    if (yych != 'p')+      goto yy2282;+  yy2308:+    yych = *++p;+    if (yych == 'T')+      goto yy2309;+    if (yych != 't')+      goto yy2282;+  yy2309:+    yych = *++p;+    if (yych == ':')+      goto yy2292;+    goto yy2282;+  yy2310:+    yych = *++p;+    if (yych == 'T')+      goto yy2311;+    if (yych != 't')+      goto yy2282;+  yy2311:+    yych = *++p;+    if (yych == 'A')+      goto yy2312;+    if (yych != 'a')+      goto yy2282;+  yy2312:+    yych = *++p;+    if (yych != ':')+      goto yy2282;+    yyaccept = 1;+    yych = *(marker = ++p);+    if (yych == 'I')+      goto yy2314;+    if (yych != 'i')+      goto yy2293;+  yy2314:+    yych = *++p;+    if (yych == 'M')+      goto yy2315;+    if (yych != 'm')+      goto yy2282;+  yy2315:+    yych = *++p;+    if (yych == 'A')+      goto yy2316;+    if (yych != 'a')+      goto yy2282;+  yy2316:+    yych = *++p;+    if (yych == 'G')+      goto yy2317;+    if (yych != 'g')+      goto yy2282;+  yy2317:+    yych = *++p;+    if (yych == 'E')+      goto yy2318;+    if (yych != 'e')+      goto yy2282;+  yy2318:+    yych = *++p;+    if (yych != '/')+      goto yy2282;+    yych = *++p;+    if (yych <= 'W') {+      if (yych <= 'J') {+        if (yych == 'G')+          goto yy2321;+        if (yych <= 'I')+          goto yy2282;+        goto yy2322;+      } else {+        if (yych == 'P')+          goto yy2320;+        if (yych <= 'V')+          goto yy2282;+        goto yy2323;+      }+    } else {+      if (yych <= 'j') {+        if (yych == 'g')+          goto yy2321;+        if (yych <= 'i')+          goto yy2282;+        goto yy2322;+      } else {+        if (yych <= 'p') {+          if (yych <= 'o')+            goto yy2282;+        } else {+          if (yych == 'w')+            goto yy2323;+          goto yy2282;+        }+      }+    }+  yy2320:+    yych = *++p;+    if (yych == 'N')+      goto yy2331;+    if (yych == 'n')+      goto yy2331;+    goto yy2282;+  yy2321:+    yych = *++p;+    if (yych == 'I')+      goto yy2330;+    if (yych == 'i')+      goto yy2330;+    goto yy2282;+  yy2322:+    yych = *++p;+    if (yych == 'P')+      goto yy2328;+    if (yych == 'p')+      goto yy2328;+    goto yy2282;+  yy2323:+    yych = *++p;+    if (yych == 'E')+      goto yy2324;+    if (yych != 'e')+      goto yy2282;+  yy2324:+    yych = *++p;+    if (yych == 'B')+      goto yy2325;+    if (yych != 'b')+      goto yy2282;+  yy2325:+    yych = *++p;+    if (yych == 'P')+      goto yy2326;+    if (yych != 'p')+      goto yy2282;+  yy2326:+    ++p;+    { return 0; }+  yy2328:+    yych = *++p;+    if (yych == 'E')+      goto yy2329;+    if (yych != 'e')+      goto yy2282;+  yy2329:+    yych = *++p;+    if (yych == 'G')+      goto yy2326;+    if (yych == 'g')+      goto yy2326;+    goto yy2282;+  yy2330:+    yych = *++p;+    if (yych == 'F')+      goto yy2326;+    if (yych == 'f')+      goto yy2326;+    goto yy2282;+  yy2331:+    ++p;+    if ((yych = *p) == 'G')+      goto yy2326;+    if (yych == 'g')+      goto yy2326;+    goto yy2282;+  }+}
cbits/scanners.h view
@@ -5,7 +5,8 @@ extern "C" { #endif -bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset);+bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,+                   bufsize_t offset); bufsize_t _scan_scheme(const unsigned char *p); bufsize_t _scan_autolink_uri(const unsigned char *p); bufsize_t _scan_autolink_email(const unsigned char *p);
cbits/utf8.c view
@@ -6,452 +6,309 @@ #include "utf8.h"  static const int8_t utf8proc_utf8class[256] = {-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-	2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,-	3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-	4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0-};+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,+    1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,+    2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,+    4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0}; -static void encode_unknown(cmark_strbuf *buf)-{-	static const uint8_t repl[] = {239, 191, 189};-	cmark_strbuf_put(buf, repl, 3);+static void encode_unknown(cmark_strbuf *buf) {+  static const uint8_t repl[] = {239, 191, 189};+  cmark_strbuf_put(buf, repl, 3); } -static int utf8proc_charlen(const uint8_t *str, bufsize_t str_len)-{-	int length, i;+static int utf8proc_charlen(const uint8_t *str, bufsize_t str_len) {+  int length, i; -	if (!str_len)-		return 0;+  if (!str_len)+    return 0; -	length = utf8proc_utf8class[str[0]];+  length = utf8proc_utf8class[str[0]]; -	if (!length)-		return -1;+  if (!length)+    return -1; -	if (str_len >= 0 && (bufsize_t)length > str_len)-		return -str_len;+  if (str_len >= 0 && (bufsize_t)length > str_len)+    return -str_len; -	for (i = 1; i < length; i++) {-		if ((str[i] & 0xC0) != 0x80)-			return -i;-	}+  for (i = 1; i < length; i++) {+    if ((str[i] & 0xC0) != 0x80)+      return -i;+  } -	return length;+  return length; }  // Validate a single UTF-8 character according to RFC 3629.-static int utf8proc_valid(const uint8_t *str, bufsize_t str_len)-{-	int length = utf8proc_utf8class[str[0]];+static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) {+  int length = utf8proc_utf8class[str[0]]; -	if (!length)-		return -1;+  if (!length)+    return -1; -	if ((bufsize_t)length > str_len)-		return -str_len;+  if ((bufsize_t)length > str_len)+    return -str_len; -	switch (length) {-	case 2:-		if ((str[1] & 0xC0) != 0x80)-			return -1;-		if (str[0] < 0xC2) {-			// Overlong-			return -length;-		}-		break;+  switch (length) {+  case 2:+    if ((str[1] & 0xC0) != 0x80)+      return -1;+    if (str[0] < 0xC2) {+      // Overlong+      return -length;+    }+    break; -	case 3:-		if ((str[1] & 0xC0) != 0x80)-			return -1;-		if ((str[2] & 0xC0) != 0x80)-			return -2;-		if (str[0] == 0xE0) {-			if (str[1] < 0xA0) {-				// Overlong-				return -length;-			}-		} else if (str[0] == 0xED) {-			if (str[1] >= 0xA0) {-				// Surrogate-				return -length;-			}-		}-		break;+  case 3:+    if ((str[1] & 0xC0) != 0x80)+      return -1;+    if ((str[2] & 0xC0) != 0x80)+      return -2;+    if (str[0] == 0xE0) {+      if (str[1] < 0xA0) {+        // Overlong+        return -length;+      }+    } else if (str[0] == 0xED) {+      if (str[1] >= 0xA0) {+        // Surrogate+        return -length;+      }+    }+    break; -	case 4:-		if ((str[1] & 0xC0) != 0x80)-			return -1;-		if ((str[2] & 0xC0) != 0x80)-			return -2;-		if ((str[3] & 0xC0) != 0x80)-			return -3;-		if (str[0] == 0xF0) {-			if (str[1] < 0x90) {-				// Overlong-				return -length;-			}-		} else if (str[0] >= 0xF4) {-			if (str[0] > 0xF4 || str[1] >= 0x90) {-				// Above 0x10FFFF-				return -length;-			}-		}-		break;-	}+  case 4:+    if ((str[1] & 0xC0) != 0x80)+      return -1;+    if ((str[2] & 0xC0) != 0x80)+      return -2;+    if ((str[3] & 0xC0) != 0x80)+      return -3;+    if (str[0] == 0xF0) {+      if (str[1] < 0x90) {+        // Overlong+        return -length;+      }+    } else if (str[0] >= 0xF4) {+      if (str[0] > 0xF4 || str[1] >= 0x90) {+        // Above 0x10FFFF+        return -length;+      }+    }+    break;+  } -	return length;+  return length; } -void utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size)-{-	bufsize_t i = 0;+void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size) {+  bufsize_t i = 0; -	while (i < size) {-		bufsize_t org = i;-		int charlen = 0;+  while (i < size) {+    bufsize_t org = i;+    int charlen = 0; -		while (i < size) {-			if (line[i] < 0x80 && line[i] != 0) {-				i++;-			} else if (line[i] >= 0x80) {-				charlen = utf8proc_valid(line + i, size - i);-				if (charlen < 0) {-					charlen = -charlen;-					break;-				}-				i += charlen;-			} else if (line[i] == 0) {-				// ASCII NUL is technically valid but rejected-				// for security reasons.-				charlen = 1;-				break;-			}-		}+    while (i < size) {+      if (line[i] < 0x80 && line[i] != 0) {+        i++;+      } else if (line[i] >= 0x80) {+        charlen = utf8proc_valid(line + i, size - i);+        if (charlen < 0) {+          charlen = -charlen;+          break;+        }+        i += charlen;+      } else if (line[i] == 0) {+        // ASCII NUL is technically valid but rejected+        // for security reasons.+        charlen = 1;+        break;+      }+    } -		if (i > org) {-			cmark_strbuf_put(ob, line + org, i - org);-		}+    if (i > org) {+      cmark_strbuf_put(ob, line + org, i - org);+    } -		if (i >= size) {-			break;-		} else {-			// Invalid UTF-8-			encode_unknown(ob);-			i += charlen;-		}-	}+    if (i >= size) {+      break;+    } else {+      // Invalid UTF-8+      encode_unknown(ob);+      i += charlen;+    }+  } } -int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst)-{-	int length;-	int32_t uc = -1;+int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst) {+  int length;+  int32_t uc = -1; -	*dst = -1;-	length = utf8proc_charlen(str, str_len);-	if (length < 0)-		return -1;+  *dst = -1;+  length = utf8proc_charlen(str, str_len);+  if (length < 0)+    return -1; -	switch (length) {-	case 1:-		uc = str[0];-		break;-	case 2:-		uc = ((str[0] & 0x1F) <<  6) + (str[1] & 0x3F);-		if (uc < 0x80) uc = -1;-		break;-	case 3:-		uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) <<  6)-		     + (str[2] & 0x3F);-		if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000)) uc = -1;-		break;-	case 4:-		uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12)-		     + ((str[2] & 0x3F) <<  6) + (str[3] & 0x3F);-		if (uc < 0x10000 || uc >= 0x110000) uc = -1;-		break;-	}+  switch (length) {+  case 1:+    uc = str[0];+    break;+  case 2:+    uc = ((str[0] & 0x1F) << 6) + (str[1] & 0x3F);+    if (uc < 0x80)+      uc = -1;+    break;+  case 3:+    uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) << 6) + (str[2] & 0x3F);+    if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000))+      uc = -1;+    break;+  case 4:+    uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) ++         ((str[2] & 0x3F) << 6) + (str[3] & 0x3F);+    if (uc < 0x10000 || uc >= 0x110000)+      uc = -1;+    break;+  } -	if (uc < 0)-		return -1;+  if (uc < 0)+    return -1; -	*dst = uc;-	return length;+  *dst = uc;+  return length; } -void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf)-{-	uint8_t dst[4];-	bufsize_t len = 0;+void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) {+  uint8_t dst[4];+  bufsize_t len = 0; -	assert(uc >= 0);+  assert(uc >= 0); -	if (uc < 0x80) {-		dst[0] = uc;-		len = 1;-	} else if (uc < 0x800) {-		dst[0] = 0xC0 + (uc >> 6);-		dst[1] = 0x80 + (uc & 0x3F);-		len = 2;-	} else if (uc == 0xFFFF) {-		dst[0] = 0xFF;-		len = 1;-	} else if (uc == 0xFFFE) {-		dst[0] = 0xFE;-		len = 1;-	} else if (uc < 0x10000) {-		dst[0] = 0xE0 + (uc >> 12);-		dst[1] = 0x80 + ((uc >> 6) & 0x3F);-		dst[2] = 0x80 + (uc & 0x3F);-		len = 3;-	} else if (uc < 0x110000) {-		dst[0] = 0xF0 + (uc >> 18);-		dst[1] = 0x80 + ((uc >> 12) & 0x3F);-		dst[2] = 0x80 + ((uc >> 6) & 0x3F);-		dst[3] = 0x80 + (uc & 0x3F);-		len = 4;-	} else {-		encode_unknown(buf);-		return;-	}+  if (uc < 0x80) {+    dst[0] = (uint8_t)(uc);+    len = 1;+  } else if (uc < 0x800) {+    dst[0] = (uint8_t)(0xC0 + (uc >> 6));+    dst[1] = 0x80 + (uc & 0x3F);+    len = 2;+  } else if (uc == 0xFFFF) {+    dst[0] = 0xFF;+    len = 1;+  } else if (uc == 0xFFFE) {+    dst[0] = 0xFE;+    len = 1;+  } else if (uc < 0x10000) {+    dst[0] = (uint8_t)(0xE0 + (uc >> 12));+    dst[1] = 0x80 + ((uc >> 6) & 0x3F);+    dst[2] = 0x80 + (uc & 0x3F);+    len = 3;+  } else if (uc < 0x110000) {+    dst[0] = (uint8_t)(0xF0 + (uc >> 18));+    dst[1] = 0x80 + ((uc >> 12) & 0x3F);+    dst[2] = 0x80 + ((uc >> 6) & 0x3F);+    dst[3] = 0x80 + (uc & 0x3F);+    len = 4;+  } else {+    encode_unknown(buf);+    return;+  } -	cmark_strbuf_put(buf, dst, len);+  cmark_strbuf_put(buf, dst, len); } -void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len)-{-	int32_t c;+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len) {+  int32_t c; -#define bufpush(x)				\-	utf8proc_encode_char(x, dest)+#define bufpush(x) cmark_utf8proc_encode_char(x, dest) -	while (len > 0) {-		bufsize_t char_len = utf8proc_iterate(str, len, &c);+  while (len > 0) {+    bufsize_t char_len = cmark_utf8proc_iterate(str, len, &c); -		if (char_len >= 0) {+    if (char_len >= 0) { #include "case_fold_switch.inc"-		} else {-			encode_unknown(dest);-			char_len = -char_len;-		}+    } else {+      encode_unknown(dest);+      char_len = -char_len;+    } -		str += char_len;-		len -= char_len;-	}+    str += char_len;+    len -= char_len;+  } }  // matches anything in the Zs class, plus LF, CR, TAB, FF.-int utf8proc_is_space(int32_t uc)-{-	return (uc == 9 ||-	        uc == 10 ||-	        uc == 12 ||-	        uc == 13 ||-	        uc == 32 ||-	        uc == 160 ||-	        uc == 5760 ||-	        (uc >= 8192 && uc <= 8202) ||-	        uc == 8239 ||-	        uc == 8287 ||-	        uc == 12288);+int cmark_utf8proc_is_space(int32_t uc) {+  return (uc == 9 || uc == 10 || uc == 12 || uc == 13 || uc == 32 ||+          uc == 160 || uc == 5760 || (uc >= 8192 && uc <= 8202) || uc == 8239 ||+          uc == 8287 || uc == 12288); }  // matches anything in the P[cdefios] classes.-int utf8proc_is_punctuation(int32_t uc)-{-	return ((uc < 128 && cmark_ispunct((char)uc)) ||-	        uc == 161 ||-	        uc == 167 ||-	        uc == 171 ||-	        uc == 182 ||-	        uc == 183 ||-	        uc == 187 ||-	        uc == 191 ||-	        uc == 894 ||-	        uc == 903 ||-	        (uc >= 1370 && uc <= 1375) ||-	        uc == 1417 ||-	        uc == 1418 ||-	        uc == 1470 ||-	        uc == 1472 ||-	        uc == 1475 ||-	        uc == 1478 ||-	        uc == 1523 ||-	        uc == 1524 ||-	        uc == 1545 ||-	        uc == 1546 ||-	        uc == 1548 ||-	        uc == 1549 ||-	        uc == 1563 ||-	        uc == 1566 ||-	        uc == 1567 ||-	        (uc >= 1642 && uc <= 1645) ||-	        uc == 1748 ||-	        (uc >= 1792 && uc <= 1805) ||-	        (uc >= 2039 && uc <= 2041) ||-	        (uc >= 2096 && uc <= 2110) ||-	        uc == 2142 ||-	        uc == 2404 ||-	        uc == 2405 ||-	        uc == 2416 ||-	        uc == 2800 ||-	        uc == 3572 ||-	        uc == 3663 ||-	        uc == 3674 ||-	        uc == 3675 ||-	        (uc >= 3844 && uc <= 3858) ||-	        uc == 3860 ||-	        (uc >= 3898 && uc <= 3901) ||-	        uc == 3973 ||-	        (uc >= 4048 && uc <= 4052) ||-	        uc == 4057 ||-	        uc == 4058 ||-	        (uc >= 4170 && uc <= 4175) ||-	        uc == 4347 ||-	        (uc >= 4960 && uc <= 4968) ||-	        uc == 5120 ||-	        uc == 5741 ||-	        uc == 5742 ||-	        uc == 5787 ||-	        uc == 5788 ||-	        (uc >= 5867 && uc <= 5869) ||-	        uc == 5941 ||-	        uc == 5942 ||-	        (uc >= 6100 && uc <= 6102) ||-	        (uc >= 6104 && uc <= 6106) ||-	        (uc >= 6144 && uc <= 6154) ||-	        uc == 6468 ||-	        uc == 6469 ||-	        uc == 6686 ||-	        uc == 6687 ||-	        (uc >= 6816 && uc <= 6822) ||-	        (uc >= 6824 && uc <= 6829) ||-	        (uc >= 7002 && uc <= 7008) ||-	        (uc >= 7164 && uc <= 7167) ||-	        (uc >= 7227 && uc <= 7231) ||-	        uc == 7294 ||-	        uc == 7295 ||-	        (uc >= 7360 && uc <= 7367) ||-	        uc == 7379 ||-	        (uc >= 8208 && uc <= 8231) ||-	        (uc >= 8240 && uc <= 8259) ||-	        (uc >= 8261 && uc <= 8273) ||-	        (uc >= 8275 && uc <= 8286) ||-	        uc == 8317 ||-	        uc == 8318 ||-	        uc == 8333 ||-	        uc == 8334 ||-	        (uc >= 8968 && uc <= 8971) ||-	        uc == 9001 ||-	        uc == 9002 ||-	        (uc >= 10088 && uc <= 10101) ||-	        uc == 10181 ||-	        uc == 10182 ||-	        (uc >= 10214 && uc <= 10223) ||-	        (uc >= 10627 && uc <= 10648) ||-	        (uc >= 10712 && uc <= 10715) ||-	        uc == 10748 ||-	        uc == 10749 ||-	        (uc >= 11513 && uc <= 11516) ||-	        uc == 11518 ||-	        uc == 11519 ||-	        uc == 11632 ||-	        (uc >= 11776 && uc <= 11822) ||-	        (uc >= 11824 && uc <= 11842) ||-	        (uc >= 12289 && uc <= 12291) ||-	        (uc >= 12296 && uc <= 12305) ||-	        (uc >= 12308 && uc <= 12319) ||-	        uc == 12336 ||-	        uc == 12349 ||-	        uc == 12448 ||-	        uc == 12539 ||-	        uc == 42238 ||-	        uc == 42239 ||-	        (uc >= 42509 && uc <= 42511) ||-	        uc == 42611 ||-	        uc == 42622 ||-	        (uc >= 42738 && uc <= 42743) ||-	        (uc >= 43124 && uc <= 43127) ||-	        uc == 43214 ||-	        uc == 43215 ||-	        (uc >= 43256 && uc <= 43258) ||-	        uc == 43310 ||-	        uc == 43311 ||-	        uc == 43359 ||-	        (uc >= 43457 && uc <= 43469) ||-	        uc == 43486 ||-	        uc == 43487 ||-	        (uc >= 43612 && uc <= 43615) ||-	        uc == 43742 ||-	        uc == 43743 ||-	        uc == 43760 ||-	        uc == 43761 ||-	        uc == 44011 ||-	        uc == 64830 ||-	        uc == 64831 ||-	        (uc >= 65040 && uc <= 65049) ||-	        (uc >= 65072 && uc <= 65106) ||-	        (uc >= 65108 && uc <= 65121) ||-	        uc == 65123 ||-	        uc == 65128 ||-	        uc == 65130 ||-	        uc == 65131 ||-	        (uc >= 65281 && uc <= 65283) ||-	        (uc >= 65285 && uc <= 65290) ||-	        (uc >= 65292 && uc <= 65295) ||-	        uc == 65306 ||-	        uc == 65307 ||-	        uc == 65311 ||-	        uc == 65312 ||-	        (uc >= 65339 && uc <= 65341) ||-	        uc == 65343 ||-	        uc == 65371 ||-	        uc == 65373 ||-	        (uc >= 65375 && uc <= 65381) ||-	        (uc >= 65792 && uc <= 65794) ||-	        uc == 66463 ||-	        uc == 66512 ||-	        uc == 66927 ||-	        uc == 67671 ||-	        uc == 67871 ||-	        uc == 67903 ||-	        (uc >= 68176 && uc <= 68184) ||-	        uc == 68223 ||-	        (uc >= 68336 && uc <= 68342) ||-	        (uc >= 68409 && uc <= 68415) ||-	        (uc >= 68505 && uc <= 68508) ||-	        (uc >= 69703 && uc <= 69709) ||-	        uc == 69819 ||-	        uc == 69820 ||-	        (uc >= 69822 && uc <= 69825) ||-	        (uc >= 69952 && uc <= 69955) ||-	        uc == 70004 ||-	        uc == 70005 ||-	        (uc >= 70085 && uc <= 70088) ||-	        uc == 70093 ||-	        (uc >= 70200 && uc <= 70205) ||-	        uc == 70854 ||-	        (uc >= 71105 && uc <= 71113) ||-	        (uc >= 71233 && uc <= 71235) ||-	        (uc >= 74864 && uc <= 74868) ||-	        uc == 92782 ||-	        uc == 92783 ||-	        uc == 92917 ||-	        (uc >= 92983 && uc <= 92987) ||-	        uc == 92996 ||-	        uc == 113823);+int cmark_utf8proc_is_punctuation(int32_t uc) {+  return (+      (uc < 128 && cmark_ispunct((char)uc)) || uc == 161 || uc == 167 ||+      uc == 171 || uc == 182 || uc == 183 || uc == 187 || uc == 191 ||+      uc == 894 || uc == 903 || (uc >= 1370 && uc <= 1375) || uc == 1417 ||+      uc == 1418 || uc == 1470 || uc == 1472 || uc == 1475 || uc == 1478 ||+      uc == 1523 || uc == 1524 || uc == 1545 || uc == 1546 || uc == 1548 ||+      uc == 1549 || uc == 1563 || uc == 1566 || uc == 1567 ||+      (uc >= 1642 && uc <= 1645) || uc == 1748 || (uc >= 1792 && uc <= 1805) ||+      (uc >= 2039 && uc <= 2041) || (uc >= 2096 && uc <= 2110) || uc == 2142 ||+      uc == 2404 || uc == 2405 || uc == 2416 || uc == 2800 || uc == 3572 ||+      uc == 3663 || uc == 3674 || uc == 3675 || (uc >= 3844 && uc <= 3858) ||+      uc == 3860 || (uc >= 3898 && uc <= 3901) || uc == 3973 ||+      (uc >= 4048 && uc <= 4052) || uc == 4057 || uc == 4058 ||+      (uc >= 4170 && uc <= 4175) || uc == 4347 || (uc >= 4960 && uc <= 4968) ||+      uc == 5120 || uc == 5741 || uc == 5742 || uc == 5787 || uc == 5788 ||+      (uc >= 5867 && uc <= 5869) || uc == 5941 || uc == 5942 ||+      (uc >= 6100 && uc <= 6102) || (uc >= 6104 && uc <= 6106) ||+      (uc >= 6144 && uc <= 6154) || uc == 6468 || uc == 6469 || uc == 6686 ||+      uc == 6687 || (uc >= 6816 && uc <= 6822) || (uc >= 6824 && uc <= 6829) ||+      (uc >= 7002 && uc <= 7008) || (uc >= 7164 && uc <= 7167) ||+      (uc >= 7227 && uc <= 7231) || uc == 7294 || uc == 7295 ||+      (uc >= 7360 && uc <= 7367) || uc == 7379 || (uc >= 8208 && uc <= 8231) ||+      (uc >= 8240 && uc <= 8259) || (uc >= 8261 && uc <= 8273) ||+      (uc >= 8275 && uc <= 8286) || uc == 8317 || uc == 8318 || uc == 8333 ||+      uc == 8334 || (uc >= 8968 && uc <= 8971) || uc == 9001 || uc == 9002 ||+      (uc >= 10088 && uc <= 10101) || uc == 10181 || uc == 10182 ||+      (uc >= 10214 && uc <= 10223) || (uc >= 10627 && uc <= 10648) ||+      (uc >= 10712 && uc <= 10715) || uc == 10748 || uc == 10749 ||+      (uc >= 11513 && uc <= 11516) || uc == 11518 || uc == 11519 ||+      uc == 11632 || (uc >= 11776 && uc <= 11822) ||+      (uc >= 11824 && uc <= 11842) || (uc >= 12289 && uc <= 12291) ||+      (uc >= 12296 && uc <= 12305) || (uc >= 12308 && uc <= 12319) ||+      uc == 12336 || uc == 12349 || uc == 12448 || uc == 12539 || uc == 42238 ||+      uc == 42239 || (uc >= 42509 && uc <= 42511) || uc == 42611 ||+      uc == 42622 || (uc >= 42738 && uc <= 42743) ||+      (uc >= 43124 && uc <= 43127) || uc == 43214 || uc == 43215 ||+      (uc >= 43256 && uc <= 43258) || uc == 43310 || uc == 43311 ||+      uc == 43359 || (uc >= 43457 && uc <= 43469) || uc == 43486 ||+      uc == 43487 || (uc >= 43612 && uc <= 43615) || uc == 43742 ||+      uc == 43743 || uc == 43760 || uc == 43761 || uc == 44011 || uc == 64830 ||+      uc == 64831 || (uc >= 65040 && uc <= 65049) ||+      (uc >= 65072 && uc <= 65106) || (uc >= 65108 && uc <= 65121) ||+      uc == 65123 || uc == 65128 || uc == 65130 || uc == 65131 ||+      (uc >= 65281 && uc <= 65283) || (uc >= 65285 && uc <= 65290) ||+      (uc >= 65292 && uc <= 65295) || uc == 65306 || uc == 65307 ||+      uc == 65311 || uc == 65312 || (uc >= 65339 && uc <= 65341) ||+      uc == 65343 || uc == 65371 || uc == 65373 ||+      (uc >= 65375 && uc <= 65381) || (uc >= 65792 && uc <= 65794) ||+      uc == 66463 || uc == 66512 || uc == 66927 || uc == 67671 || uc == 67871 ||+      uc == 67903 || (uc >= 68176 && uc <= 68184) || uc == 68223 ||+      (uc >= 68336 && uc <= 68342) || (uc >= 68409 && uc <= 68415) ||+      (uc >= 68505 && uc <= 68508) || (uc >= 69703 && uc <= 69709) ||+      uc == 69819 || uc == 69820 || (uc >= 69822 && uc <= 69825) ||+      (uc >= 69952 && uc <= 69955) || uc == 70004 || uc == 70005 ||+      (uc >= 70085 && uc <= 70088) || uc == 70093 ||+      (uc >= 70200 && uc <= 70205) || uc == 70854 ||+      (uc >= 71105 && uc <= 71113) || (uc >= 71233 && uc <= 71235) ||+      (uc >= 74864 && uc <= 74868) || uc == 92782 || uc == 92783 ||+      uc == 92917 || (uc >= 92983 && uc <= 92987) || uc == 92996 ||+      uc == 113823); }
cbits/utf8.h view
@@ -8,12 +8,12 @@ extern "C" { #endif -void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);-void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);-int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);-void utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);-int utf8proc_is_space(int32_t uc);-int utf8proc_is_punctuation(int32_t uc);+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);+void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);+int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);+void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);+int cmark_utf8proc_is_space(int32_t uc);+int cmark_utf8proc_is_punctuation(int32_t uc);  #ifdef __cplusplus }
cbits/xml.c view
@@ -11,157 +11,142 @@  // Functions to convert cmark_nodes to XML strings. -static void escape_xml(cmark_strbuf *dest, const unsigned char *source, bufsize_t length)-{-	houdini_escape_html0(dest, source, length, 0);+static void escape_xml(cmark_strbuf *dest, const unsigned char *source,+                       bufsize_t length) {+  houdini_escape_html0(dest, source, length, 0); }  struct render_state {-	cmark_strbuf* xml;-	int indent;+  cmark_strbuf *xml;+  int indent; }; -static inline void indent(struct render_state *state)-{-	int i;-	for (i = 0; i < state->indent; i++) {-		cmark_strbuf_putc(state->xml, ' ');-	}+static inline void indent(struct render_state *state) {+  int i;+  for (i = 0; i < state->indent; i++) {+    cmark_strbuf_putc(state->xml, ' ');+  } } -static int-S_render_node(cmark_node *node, cmark_event_type ev_type,-              struct render_state *state, int options)-{-	cmark_strbuf *xml = state->xml;-	bool literal = false;-	cmark_delim_type delim;-	bool entering = (ev_type == CMARK_EVENT_ENTER);--	if (entering) {-		indent(state);-		cmark_strbuf_printf(xml, "<%s",-		                    cmark_node_get_type_string(node));+static int S_render_node(cmark_node *node, cmark_event_type ev_type,+                         struct render_state *state, int options) {+  cmark_strbuf *xml = state->xml;+  bool literal = false;+  cmark_delim_type delim;+  bool entering = (ev_type == CMARK_EVENT_ENTER);+  char buffer[100]; -		if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) {-			cmark_strbuf_printf(xml, " sourcepos=\"%d:%d-%d:%d\"",-			                    node->start_line,-			                    node->start_column,-			                    node->end_line,-			                    node->end_column);-		}+  if (entering) {+    indent(state);+    cmark_strbuf_putc(xml, '<');+    cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); -		literal = false;+    if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) {+      sprintf(buffer, " sourcepos=\"%d:%d-%d:%d\"", node->start_line,+              node->start_column, node->end_line, node->end_column);+      cmark_strbuf_puts(xml, buffer);+    } -		switch (node->type) {-		case CMARK_NODE_TEXT:-		case CMARK_NODE_CODE:-		case CMARK_NODE_HTML:-		case CMARK_NODE_INLINE_HTML:-			cmark_strbuf_puts(xml, ">");-			escape_xml(xml, node->as.literal.data,-			           node->as.literal.len);-			cmark_strbuf_puts(xml, "</");-			cmark_strbuf_puts(xml,-			                  cmark_node_get_type_string(node));-			literal = true;-			break;-		case CMARK_NODE_LIST:-			switch (cmark_node_get_list_type(node)) {-			case CMARK_ORDERED_LIST:-				cmark_strbuf_puts(xml, " type=\"ordered\"");-				cmark_strbuf_printf(xml, " start=\"%d\"",-				                    cmark_node_get_list_start(node));-				delim = cmark_node_get_list_delim(node);-				if (delim == CMARK_PAREN_DELIM) {-					cmark_strbuf_puts(xml,-					                  " delim=\"paren\"");-				} else if (delim == CMARK_PERIOD_DELIM) {-					cmark_strbuf_puts(xml,-					                  " delim=\"period\"");-				}-				break;-			case CMARK_BULLET_LIST:-				cmark_strbuf_puts(xml, " type=\"bullet\"");-				break;-			default:-				break;-			}-			cmark_strbuf_printf(xml, " tight=\"%s\"",-			                    (cmark_node_get_list_tight(node) ?-			                     "true" : "false"));-			break;-		case CMARK_NODE_HEADER:-			cmark_strbuf_printf(xml, " level=\"%d\"",-			                    node->as.header.level);-			break;-		case CMARK_NODE_CODE_BLOCK:-			if (node->as.code.info.len > 0) {-				cmark_strbuf_puts(xml, " info=\"");-				escape_xml(xml, node->as.code.info.data,-				           node->as.code.info.len);-				cmark_strbuf_putc(xml, '"');-			}-			cmark_strbuf_puts(xml, ">");-			escape_xml(xml, node->as.code.literal.data,-			           node->as.code.literal.len);-			cmark_strbuf_puts(xml, "</");-			cmark_strbuf_puts(xml,-			                  cmark_node_get_type_string(node));-			literal = true;-			break;-		case CMARK_NODE_LINK:-		case CMARK_NODE_IMAGE:-			cmark_strbuf_puts(xml, " destination=\"");-			escape_xml(xml, node->as.link.url.data,-			           node->as.link.url.len);-			cmark_strbuf_putc(xml, '"');-			cmark_strbuf_puts(xml, " title=\"");-			escape_xml(xml, node->as.link.title.data,-			           node->as.link.title.len);-			cmark_strbuf_putc(xml, '"');-			break;-		default:-			break;-		}-		if (node->first_child) {-			state->indent += 2;-		} else if (!literal) {-			cmark_strbuf_puts(xml, " /");-		}-		cmark_strbuf_puts(xml, ">\n");+    literal = false; +    switch (node->type) {+    case CMARK_NODE_TEXT:+    case CMARK_NODE_CODE:+    case CMARK_NODE_HTML:+    case CMARK_NODE_INLINE_HTML:+      cmark_strbuf_puts(xml, ">");+      escape_xml(xml, node->as.literal.data, node->as.literal.len);+      cmark_strbuf_puts(xml, "</");+      cmark_strbuf_puts(xml, cmark_node_get_type_string(node));+      literal = true;+      break;+    case CMARK_NODE_LIST:+      switch (cmark_node_get_list_type(node)) {+      case CMARK_ORDERED_LIST:+        cmark_strbuf_puts(xml, " type=\"ordered\"");+        sprintf(buffer, " start=\"%d\"", cmark_node_get_list_start(node));+        cmark_strbuf_puts(xml, buffer);+        delim = cmark_node_get_list_delim(node);+        if (delim == CMARK_PAREN_DELIM) {+          cmark_strbuf_puts(xml, " delim=\"paren\"");+        } else if (delim == CMARK_PERIOD_DELIM) {+          cmark_strbuf_puts(xml, " delim=\"period\"");+        }+        break;+      case CMARK_BULLET_LIST:+        cmark_strbuf_puts(xml, " type=\"bullet\"");+        break;+      default:+        break;+      }+      sprintf(buffer, " tight=\"%s\"",+              (cmark_node_get_list_tight(node) ? "true" : "false"));+      cmark_strbuf_puts(xml, buffer);+      break;+    case CMARK_NODE_HEADER:+      sprintf(buffer, " level=\"%d\"", node->as.header.level);+      cmark_strbuf_puts(xml, buffer);+      break;+    case CMARK_NODE_CODE_BLOCK:+      if (node->as.code.info.len > 0) {+        cmark_strbuf_puts(xml, " info=\"");+        escape_xml(xml, node->as.code.info.data, node->as.code.info.len);+        cmark_strbuf_putc(xml, '"');+      }+      cmark_strbuf_puts(xml, ">");+      escape_xml(xml, node->as.code.literal.data, node->as.code.literal.len);+      cmark_strbuf_puts(xml, "</");+      cmark_strbuf_puts(xml, cmark_node_get_type_string(node));+      literal = true;+      break;+    case CMARK_NODE_LINK:+    case CMARK_NODE_IMAGE:+      cmark_strbuf_puts(xml, " destination=\"");+      escape_xml(xml, node->as.link.url.data, node->as.link.url.len);+      cmark_strbuf_putc(xml, '"');+      cmark_strbuf_puts(xml, " title=\"");+      escape_xml(xml, node->as.link.title.data, node->as.link.title.len);+      cmark_strbuf_putc(xml, '"');+      break;+    default:+      break;+    }+    if (node->first_child) {+      state->indent += 2;+    } else if (!literal) {+      cmark_strbuf_puts(xml, " /");+    }+    cmark_strbuf_puts(xml, ">\n"); -	} else if (node->first_child) {-		state->indent -= 2;-		indent(state);-		cmark_strbuf_printf(xml, "</%s>\n",-		                    cmark_node_get_type_string(node));-	}+  } else if (node->first_child) {+    state->indent -= 2;+    indent(state);+    cmark_strbuf_puts(xml, "</");+    cmark_strbuf_puts(xml, cmark_node_get_type_string(node));+    cmark_strbuf_puts(xml, ">\n");+  } -	return 1;+  return 1; } -char *cmark_render_xml(cmark_node *root, int options)-{-	char *result;-	cmark_strbuf xml = GH_BUF_INIT;-	cmark_event_type ev_type;-	cmark_node *cur;-	struct render_state state = { &xml, 0 };+char *cmark_render_xml(cmark_node *root, int options) {+  char *result;+  cmark_strbuf xml = GH_BUF_INIT;+  cmark_event_type ev_type;+  cmark_node *cur;+  struct render_state state = {&xml, 0}; -	cmark_iter *iter = cmark_iter_new(root);+  cmark_iter *iter = cmark_iter_new(root); -	cmark_strbuf_puts(state.xml,-	                  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");-	cmark_strbuf_puts(state.xml,-	                  "<!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n");-	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {-		cur = cmark_iter_get_node(iter);-		S_render_node(cur, ev_type, &state, options);-	}-	result = (char *)cmark_strbuf_detach(&xml);+  cmark_strbuf_puts(state.xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");+  cmark_strbuf_puts(state.xml,+                    "<!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n");+  while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {+    cur = cmark_iter_get_node(iter);+    S_render_node(cur, ev_type, &state, options);+  }+  result = (char *)cmark_strbuf_detach(&xml); -	cmark_iter_free(iter);-	return result;+  cmark_iter_free(iter);+  return result; }
changelog view
@@ -1,3 +1,8 @@+cmark 0.4.1 (23 Aug 2015)++  * Updated to libcmark 0.22.0.+  * Bumped version bounds for HUnit.+ cmark 0.4.0.1 (14 Jul 2015)    * API changes:
cmark.cabal view
@@ -1,5 +1,5 @@ name:                cmark-version:             0.4.0.1+version:             0.4.1 synopsis:            Fast, accurate CommonMark (Markdown) parser and renderer description:   This package provides Haskell bindings for@@ -98,6 +98,6 @@   type:           exitcode-stdio-1.0   main-is:        test-cmark.hs   hs-source-dirs: test-  build-depends:  base, cmark, text, HUnit >= 1.2 && < 1.3+  build-depends:  base, cmark, text, HUnit >= 1.2 && < 1.4   ghc-options:    -Wall -fno-warn-unused-do-bind -threaded   default-language: Haskell98