diff --git a/README.build.md b/README.build.md
index b188a59ff29b749b5e50ff45958a63385c635525..7c1d4b0a662bc10ea98170e99fe29622a70ed400 100644
--- a/README.build.md
+++ b/README.build.md
@@ -86,6 +86,12 @@ Building on Unix:
 	$ LD_LIBRARY_PATH=/usr/local/ssl/lib libwebsockets-test-server --ssl
     ```
 
+	To get it to build on latest openssl (2016-04-10) it needed this approach
+
+    ```bash
+	cmake .. -DLWS_WITH_HTTP2=1 -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/include/openssl -DLWS_OPENSSL_LIBRARIES="/usr/local/lib64/libssl.so;/usr/local/lib64/libcrypto.so"
+    ```
+
 	**NOTE5**:
 	To build with debug info and _DEBUG for lower priority debug messages
 	compiled in, use
diff --git a/lib/daemonize.c b/lib/daemonize.c
index 79139fc47900ea1ff94028de0571a181b93db3d8..5fbd60a75d4a16346e9e0b2ce949ff5f620683e1 100644
--- a/lib/daemonize.c
+++ b/lib/daemonize.c
@@ -143,19 +143,8 @@ lws_daemonize(const char *_lock_path)
 	}
 
 	/* If we got a good PID, then we can exit the parent process. */
-	if (pid_daemon > 0) {
-
-		/*
-		 * Wait for confirmation signal from the child via
-		 * SIGCHILD / USR1, or for two seconds to elapse
-		 * (SIGALRM).  pause() should not return.
-		 */
-		alarm(2);
-
-		pause();
-		/* should not be reachable */
+	if (pid_daemon > 0)
 		exit(0);
-	}
 
 	/* At this point we are executing as the child process */
 	parent = getppid();
diff --git a/lib/handshake.c b/lib/handshake.c
index d2dd4c76d0feec020a09b503faa27d43abce66bc..584b34b503b7a84833a979116fb14d4c2ce2ff1b 100644
--- a/lib/handshake.c
+++ b/lib/handshake.c
@@ -66,7 +66,7 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len)
 	int body_chunk_len;
 	size_t n;
 
-	lwsl_debug("%s: incoming len %d\n", __func__, (int)len);
+	lwsl_debug("%s: incoming len %d  state %d\n", __func__, (int)len, wsi->state);
 
 	switch (wsi->state) {
 #ifdef LWS_USE_HTTP2
@@ -87,8 +87,10 @@ lws_read(struct lws *wsi, unsigned char *buf, size_t len)
 			/* account for what we're using in rxflow buffer */
 			if (wsi->rxflow_buffer)
 				wsi->rxflow_pos++;
-			if (lws_http2_parser(wsi, buf[n++]))
+			if (lws_http2_parser(wsi, buf[n++])) {
+				lwsl_debug("%s: http2_parser bailed\n", __func__);
 				goto bail;
+			}
 		}
 		break;
 #endif
diff --git a/lib/hpack.c b/lib/hpack.c
index 2c5b1d94f813ce0254584442600d01d0c22bf585..a205cbc1b6051227c3a0abf7b8d430a29aa108f9 100644
--- a/lib/hpack.c
+++ b/lib/hpack.c
@@ -199,11 +199,15 @@ static int lws_frag_start(struct lws *wsi, int hdr_token_idx)
 {
 	struct allocated_headers * ah = wsi->u.http2.http.ah;
 
-	if (!hdr_token_idx)
+	if (!hdr_token_idx) {
+		lwsl_err("%s: zero hdr_token_idx\n", __func__);
 		return 1;
+	}
 
-	if (ah->nfrag >= ARRAY_SIZE(ah->frag_index))
+	if (ah->nfrag >= ARRAY_SIZE(ah->frag_index)) {
+		lwsl_err("%s: frag index %d too big\n", __func__, ah->nfrag);
 		return 1;
+	}
 
 	ah->frags[ah->nfrag].offset = ah->pos;
 	ah->frags[ah->nfrag].len = 0;
@@ -355,6 +359,8 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 	unsigned char c1;
 	int n;
 
+	lwsl_debug("   state %d\n", wsi->u.http2.hpack);
+
 	switch (wsi->u.http2.hpack) {
 	case HPKS_OPT_PADDING:
 		wsi->u.http2.padding = c;
@@ -388,6 +394,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 		if (c & 0x80) { /* indexed header field only */
 			/* just a possibly-extended integer */
 			wsi->u.http2.hpack_type = HPKT_INDEXED_HDR_7;
+			lwsl_debug("HKPS_TYPE setting header_index %d\n", c & 0x7f);
 			wsi->u.http2.header_index = c & 0x7f;
 			if ((c & 0x7f) == 0x7f) {
 				wsi->u.http2.hpack_len = c & 0x7f;
@@ -395,6 +402,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 				wsi->u.http2.hpack = HPKS_IDX_EXT;
 				break;
 			}
+			lwsl_debug("HKPS_TYPE: %d\n", c & 0x7f);
 			if (lws_write_indexed_hdr(wsi, c & 0x7f))
 				return 1;
 			/* stay at same state */
@@ -406,6 +414,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 			 * H + possibly-extended value length
 			 * literal value
 			 */
+			lwsl_debug("HKPS_TYPE 2 setting header_index %d\n", 0);
 			wsi->u.http2.header_index = 0;
 			if (c == 0x40) { /* literal name */
 				wsi->u.http2.hpack_type = HPKT_LITERAL_HDR_VALUE_INCR;
@@ -421,6 +430,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 				wsi->u.http2.hpack = HPKS_IDX_EXT;
 				break;
 			}
+			lwsl_debug("HKPS_TYPE 3 setting header_index %d\n", c & 0x3f);
 			wsi->u.http2.header_index = c & 0x3f;
 			wsi->u.http2.value = 1;
 			wsi->u.http2.hpack = HPKS_HLEN;
@@ -439,6 +449,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 				wsi->u.http2.value = 0;
 				break;
 			}
+			//lwsl_debug("indexed\n");
 			/* indexed name */
 			wsi->u.http2.hpack_type = HPKT_INDEXED_HDR_4_VALUE;
 			wsi->u.http2.header_index = 0;
@@ -448,6 +459,7 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 				wsi->u.http2.hpack = HPKS_IDX_EXT;
 				break;
 			}
+			//lwsl_err("HKPS_TYPE 5 setting header_index %d\n", c & 0xf);
 			wsi->u.http2.header_index = c & 0xf;
 			wsi->u.http2.value = 1;
 			wsi->u.http2.hpack = HPKS_HLEN;
@@ -475,11 +487,14 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 		if (!(c & 0x80)) {
 			switch (wsi->u.http2.hpack_type) {
 			case HPKT_INDEXED_HDR_7:
+				//lwsl_err("HKPS_IDX_EXT hdr idx %d\n", wsi->u.http2.hpack_len);
 				if (lws_write_indexed_hdr(wsi, wsi->u.http2.hpack_len))
 					return 1;
 				wsi->u.http2.hpack = HPKS_TYPE;
 				break;
 			default:
+				// lwsl_err("HKPS_IDX_EXT setting header_index %d\n",
+				//		wsi->u.http2.hpack_len);
 				wsi->u.http2.header_index = wsi->u.http2.hpack_len;
 				wsi->u.http2.value = 1;
 				wsi->u.http2.hpack = HPKS_HLEN;
@@ -495,10 +510,13 @@ int lws_hpack_interpret(struct lws *wsi, unsigned char c)
 		if (wsi->u.http2.hpack_len < 0x7f) {
 pre_data:
 			if (wsi->u.http2.value) {
+				if (wsi->u.http2.header_index)
 				if (lws_frag_start(wsi, lws_token_from_index(wsi,
 						   wsi->u.http2.header_index,
-						   NULL, NULL)))
+						   NULL, NULL))) {
+				//	lwsl_notice("%s: hlen failed\n", __func__);
 					return 1;
+				}
 			} else
 				wsi->u.hdr.parser_state = WSI_TOKEN_NAME_PART;
 			wsi->u.http2.hpack = HPKS_DATA;
@@ -539,8 +557,9 @@ pre_data:
 				c1 = c;
 			}
 			if (wsi->u.http2.value) { /* value */
-				if (lws_frag_append(wsi, c1))
-					return 1;
+				if (wsi->u.http2.header_index)
+					if (lws_frag_append(wsi, c1))
+						return 1;
 			} else { /* name */
 				if (lws_parse(wsi, c1))
 					return 1;
@@ -566,7 +585,7 @@ pre_data:
 			if (wsi->u.http2.value) {
 				if (lws_frag_end(wsi))
 					return 1;
-
+				// lwsl_err("data\n");
 				lws_dump_header(wsi, lws_token_from_index(
 						wsi, wsi->u.http2.header_index,
 						NULL, NULL));
@@ -576,7 +595,7 @@ pre_data:
 				else
 					wsi->u.http2.hpack = HPKS_TYPE;
 			} else { /* name */
-				if (wsi->u.hdr.parser_state < WSI_TOKEN_COUNT)
+				//if (wsi->u.hdr.parser_state < WSI_TOKEN_COUNT)
 
 				wsi->u.http2.value = 1;
 				wsi->u.http2.hpack = HPKS_HLEN;
diff --git a/lib/http2.c b/lib/http2.c
index 224668bda42a209c410766082f5cf20d79b79234..317b8dda3e6634dc59acd961283e814af4df8239 100644
--- a/lib/http2.c
+++ b/lib/http2.c
@@ -242,8 +242,15 @@ lws_http2_parser(struct lws *wsi, unsigned char c)
 			case LWS_HTTP2_FRAME_TYPE_CONTINUATION:
 			case LWS_HTTP2_FRAME_TYPE_HEADERS:
 				lwsl_info(" %02X\n", c);
-				if (lws_hpack_interpret(wsi->u.http2.stream_wsi, c))
+				if (!wsi->u.http2.stream_wsi->u.hdr.ah)
+					if (lws_header_table_attach(wsi->u.http2.stream_wsi, 0)) {
+						lwsl_err("%s: Failed to get ah\n", __func__);
+						return 1;
+					}
+				if (lws_hpack_interpret(wsi->u.http2.stream_wsi, c)) {
+					lwsl_notice("%s: lws_hpack_interpret failed\n", __func__);
 					return 1;
+				}
 				break;
 			case LWS_HTTP2_FRAME_TYPE_GOAWAY:
 				if (wsi->u.http2.count >= 5 && wsi->u.http2.count <= 8) {
@@ -376,9 +383,11 @@ lws_http2_parser(struct lws *wsi, unsigned char c)
 				lwsl_info("LWS_HTTP2_FRAME_TYPE_HEADERS: stream_id = %d\n", wsi->u.http2.stream_id);
 				if (!wsi->u.http2.stream_id)
 					return 1;
-				if (!wsi->u.http2.stream_wsi)
+				if (!wsi->u.http2.stream_wsi) {
 					wsi->u.http2.stream_wsi =
 						lws_create_server_child_wsi(wsi->vhost, wsi, wsi->u.http2.stream_id);
+					wsi->u.http2.stream_wsi->http2_substream = 1;
+				}
 
 				/* END_STREAM means after servicing this, close the stream */
 				wsi->u.http2.END_STREAM = !!(wsi->u.http2.flags & LWS_HTTP2_FLAG_END_STREAM);
diff --git a/lib/lextable-strings.h b/lib/lextable-strings.h
index 6a5a267ed2f79d2d9b3f8b83f36c939c1e280e39..2494080334ec0603639d5c16f6ed4d0fbd9b374a 100644
--- a/lib/lextable-strings.h
+++ b/lib/lextable-strings.h
@@ -40,11 +40,11 @@ static const char *set[] = {
 	"sec-websocket-version:",
 	"sec-websocket-origin:",
 
-	":authority:",
-	":method:",
-	":path:",
-	":scheme:",
-	":status:",
+	":authority",
+	":method",
+	":path",
+	":scheme",
+	":status",
 
 	"accept-charset:",
 	"accept-ranges:",
diff --git a/lib/lextable.h b/lib/lextable.h
index 23e526d60441891be7b5abd55997274cfe5a91e4..520cfa3845f2734818136d4ce8833db4dbb340d9 100644
--- a/lib/lextable.h
+++ b/lib/lextable.h
@@ -11,14 +11,14 @@
                        0x64 /* 'd' */, 0x10, 0x02  /* (to 0x022E state 265) */,
                        0x72 /* 'r' */, 0x19, 0x02  /* (to 0x023A state 270) */,
                        0x3A /* ':' */, 0x4A, 0x02  /* (to 0x026E state 299) */,
-                       0x65 /* 'e' */, 0xDB, 0x02  /* (to 0x0302 state 414) */,
-                       0x66 /* 'f' */, 0xF7, 0x02  /* (to 0x0321 state 430) */,
-                       0x6C /* 'l' */, 0x19, 0x03  /* (to 0x0346 state 463) */,
-                       0x6D /* 'm' */, 0x3C, 0x03  /* (to 0x036C state 489) */,
-                       0x74 /* 't' */, 0xAB, 0x03  /* (to 0x03DE state 583) */,
-                       0x76 /* 'v' */, 0xC6, 0x03  /* (to 0x03FC state 611) */,
-                       0x77 /* 'w' */, 0xD3, 0x03  /* (to 0x040C state 619) */,
-                       0x78 /* 'x' */, 0xFA, 0x03  /* (to 0x0436 state 655) */,
+                       0x65 /* 'e' */, 0xD6, 0x02  /* (to 0x02FD state 409) */,
+                       0x66 /* 'f' */, 0xF2, 0x02  /* (to 0x031C state 425) */,
+                       0x6C /* 'l' */, 0x14, 0x03  /* (to 0x0341 state 458) */,
+                       0x6D /* 'm' */, 0x37, 0x03  /* (to 0x0367 state 484) */,
+                       0x74 /* 't' */, 0xA6, 0x03  /* (to 0x03D9 state 578) */,
+                       0x76 /* 'v' */, 0xC1, 0x03  /* (to 0x03F7 state 606) */,
+                       0x77 /* 'w' */, 0xCE, 0x03  /* (to 0x0407 state 614) */,
+                       0x78 /* 'x' */, 0xF5, 0x03  /* (to 0x0431 state 650) */,
                        0x08, /* fail */
 /* pos 0040:   1 */    0xE5 /* 'e' -> */,
 /* pos 0041:   2 */    0xF4 /* 't' -> */,
@@ -26,8 +26,8 @@
 /* pos 0043:   4 */    0x00, 0x00                  /* - terminal marker  0 - */,
 /* pos 0045:   5 */    0x6F /* 'o' */, 0x0D, 0x00  /* (to 0x0052 state   6) */,
                        0x72 /* 'r' */, 0x8C, 0x01  /* (to 0x01D4 state 211) */,
-                       0x61 /* 'a' */, 0xD3, 0x03  /* (to 0x041E state 636) */,
-                       0x75 /* 'u' */, 0xD5, 0x03  /* (to 0x0423 state 640) */,
+                       0x61 /* 'a' */, 0xCE, 0x03  /* (to 0x0419 state 631) */,
+                       0x75 /* 'u' */, 0xD0, 0x03  /* (to 0x041E state 635) */,
                        0x08, /* fail */
 /* pos 0052:   6 */    0xF3 /* 's' -> */,
 /* pos 0053:   7 */    0xF4 /* 't' -> */,
@@ -68,8 +68,8 @@
 /* pos 008d:  32 */    0xBA /* ':' -> */,
 /* pos 008e:  33 */    0x00, 0x04                  /* - terminal marker  4 - */,
 /* pos 0090:  34 */    0x70 /* 'p' */, 0x0A, 0x00  /* (to 0x009A state  35) */,
-                       0x73 /* 's' */, 0x5E, 0x03  /* (to 0x03F1 state 601) */,
-                       0x72 /* 'r' */, 0x96, 0x03  /* (to 0x042C state 647) */,
+                       0x73 /* 's' */, 0x59, 0x03  /* (to 0x03EC state 596) */,
+                       0x72 /* 'r' */, 0x91, 0x03  /* (to 0x0427 state 642) */,
                        0x08, /* fail */
 /* pos 009a:  35 */    0xE7 /* 'g' -> */,
 /* pos 009b:  36 */    0xF2 /* 'r' -> */,
@@ -85,11 +85,11 @@
 /* pos 00a6:  46 */    0xBA /* ':' -> */,
 /* pos 00a7:  47 */    0x00, 0x06                  /* - terminal marker  6 - */,
 /* pos 00a9:  48 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x00B0 state  49) */,
-                       0x74 /* 't' */, 0x18, 0x03  /* (to 0x03C4 state 558) */,
+                       0x74 /* 't' */, 0x13, 0x03  /* (to 0x03BF state 553) */,
                        0x08, /* fail */
 /* pos 00b0:  49 */    0x63 /* 'c' */, 0x0A, 0x00  /* (to 0x00BA state  50) */,
-                       0x72 /* 'r' */, 0x01, 0x03  /* (to 0x03B4 state 544) */,
-                       0x74 /* 't' */, 0x04, 0x03  /* (to 0x03BA state 549) */,
+                       0x72 /* 'r' */, 0xFC, 0x02  /* (to 0x03AF state 539) */,
+                       0x74 /* 't' */, 0xFF, 0x02  /* (to 0x03B5 state 544) */,
                        0x08, /* fail */
 /* pos 00ba:  50 */    0xAD /* '-' -> */,
 /* pos 00bb:  51 */    0xF7 /* 'w' -> */,
@@ -170,7 +170,7 @@
 /* pos 0128: 113 */    0xB1 /* '1' -> */,
 /* pos 0129: 114 */    0xAE /* '.' -> */,
 /* pos 012a: 115 */    0x31 /* '1' */, 0x07, 0x00  /* (to 0x0131 state 116) */,
-                       0x30 /* '0' */, 0x14, 0x03  /* (to 0x0441 state 665) */,
+                       0x30 /* '0' */, 0x0F, 0x03  /* (to 0x043C state 660) */,
                        0x08, /* fail */
 /* pos 0131: 116 */    0xA0 /* ' ' -> */,
 /* pos 0132: 117 */    0x00, 0x0F                  /* - terminal marker 15 - */,
@@ -187,8 +187,8 @@
 /* pos 013e: 128 */    0x00, 0x10                  /* - terminal marker 16 - */,
 /* pos 0140: 129 */    0x63 /* 'c' */, 0x0D, 0x00  /* (to 0x014D state 130) */,
                        0x75 /* 'u' */, 0xAC, 0x00  /* (to 0x01EF state 230) */,
-                       0x67 /* 'g' */, 0x82, 0x01  /* (to 0x02C8 state 363) */,
-                       0x6C /* 'l' */, 0x83, 0x01  /* (to 0x02CC state 366) */,
+                       0x67 /* 'g' */, 0x7D, 0x01  /* (to 0x02C3 state 358) */,
+                       0x6C /* 'l' */, 0x7E, 0x01  /* (to 0x02C7 state 361) */,
                        0x08, /* fail */
 /* pos 014d: 130 */    0xE3 /* 'c' -> */,
 /* pos 014e: 131 */    0xE5 /* 'e' -> */,
@@ -211,7 +211,7 @@
 /* pos 0168: 144 */    0xEC /* 'l' -> */,
 /* pos 0169: 145 */    0xAD /* '-' -> */,
 /* pos 016a: 146 */    0x72 /* 'r' */, 0x07, 0x00  /* (to 0x0171 state 147) */,
-                       0x61 /* 'a' */, 0x4D, 0x01  /* (to 0x02BA state 350) */,
+                       0x61 /* 'a' */, 0x48, 0x01  /* (to 0x02B5 state 345) */,
                        0x08, /* fail */
 /* pos 0171: 147 */    0xE5 /* 'e' -> */,
 /* pos 0172: 148 */    0xF1 /* 'q' -> */,
@@ -233,11 +233,11 @@
 /* pos 0183: 164 */    0xAD /* '-' -> */,
 /* pos 0184: 165 */    0x6D /* 'm' */, 0x0D, 0x00  /* (to 0x0191 state 166) */,
                        0x6E /* 'n' */, 0x20, 0x00  /* (to 0x01A7 state 181) */,
-                       0x72 /* 'r' */, 0xA3, 0x01  /* (to 0x032D state 440) */,
-                       0x75 /* 'u' */, 0xA7, 0x01  /* (to 0x0334 state 446) */,
+                       0x72 /* 'r' */, 0x9E, 0x01  /* (to 0x0328 state 435) */,
+                       0x75 /* 'u' */, 0xA2, 0x01  /* (to 0x032F state 441) */,
                        0x08, /* fail */
 /* pos 0191: 166 */    0x6F /* 'o' */, 0x07, 0x00  /* (to 0x0198 state 167) */,
-                       0x61 /* 'a' */, 0x93, 0x01  /* (to 0x0327 state 435) */,
+                       0x61 /* 'a' */, 0x8E, 0x01  /* (to 0x0322 state 430) */,
                        0x08, /* fail */
 /* pos 0198: 167 */    0xE4 /* 'd' -> */,
 /* pos 0199: 168 */    0xE9 /* 'i' -> */,
@@ -266,8 +266,8 @@
 /* pos 01b1: 191 */    0x00, 0x14                  /* - terminal marker 20 - */,
 /* pos 01b3: 192 */    0x65 /* 'e' */, 0x0D, 0x00  /* (to 0x01C0 state 193) */,
                        0x6C /* 'l' */, 0x14, 0x00  /* (to 0x01CA state 202) */,
-                       0x63 /* 'c' */, 0xF0, 0x00  /* (to 0x02A9 state 335) */,
-                       0x72 /* 'r' */, 0xF6, 0x00  /* (to 0x02B2 state 343) */,
+                       0x63 /* 'c' */, 0xEB, 0x00  /* (to 0x02A4 state 330) */,
+                       0x72 /* 'r' */, 0xF1, 0x00  /* (to 0x02AD state 338) */,
                        0x08, /* fail */
 /* pos 01c0: 193 */    0xEE /* 'n' -> */,
 /* pos 01c1: 194 */    0xE3 /* 'c' -> */,
@@ -288,7 +288,7 @@
 /* pos 01d1: 209 */    0xBA /* ':' -> */,
 /* pos 01d2: 210 */    0x00, 0x16                  /* - terminal marker 22 - */,
 /* pos 01d4: 211 */    0x61 /* 'a' */, 0x07, 0x00  /* (to 0x01DB state 212) */,
-                       0x6F /* 'o' */, 0xA3, 0x01  /* (to 0x037A state 502) */,
+                       0x6F /* 'o' */, 0x9E, 0x01  /* (to 0x0375 state 497) */,
                        0x08, /* fail */
 /* pos 01db: 212 */    0xE7 /* 'g' -> */,
 /* pos 01dc: 213 */    0xED /* 'm' -> */,
@@ -332,13 +332,13 @@
 /* pos 0206: 251 */    0xAD /* '-' -> */,
 /* pos 0207: 252 */    0x6C /* 'l' */, 0x10, 0x00  /* (to 0x0217 state 253) */,
                        0x74 /* 't' */, 0x1E, 0x00  /* (to 0x0228 state 260) */,
-                       0x64 /* 'd' */, 0xC5, 0x00  /* (to 0x02D2 state 371) */,
-                       0x65 /* 'e' */, 0xCF, 0x00  /* (to 0x02DF state 383) */,
-                       0x72 /* 'r' */, 0xE8, 0x00  /* (to 0x02FB state 408) */,
+                       0x64 /* 'd' */, 0xC0, 0x00  /* (to 0x02CD state 366) */,
+                       0x65 /* 'e' */, 0xCA, 0x00  /* (to 0x02DA state 378) */,
+                       0x72 /* 'r' */, 0xE3, 0x00  /* (to 0x02F6 state 403) */,
                        0x08, /* fail */
 /* pos 0217: 253 */    0x65 /* 'e' */, 0x0A, 0x00  /* (to 0x0221 state 254) */,
-                       0x61 /* 'a' */, 0xCF, 0x00  /* (to 0x02E9 state 392) */,
-                       0x6F /* 'o' */, 0xD5, 0x00  /* (to 0x02F2 state 400) */,
+                       0x61 /* 'a' */, 0xCA, 0x00  /* (to 0x02E4 state 387) */,
+                       0x6F /* 'o' */, 0xD0, 0x00  /* (to 0x02ED state 395) */,
                        0x08, /* fail */
 /* pos 0221: 254 */    0xEE /* 'n' -> */,
 /* pos 0222: 255 */    0xE7 /* 'g' -> */,
@@ -352,7 +352,7 @@
 /* pos 022b: 263 */    0xBA /* ':' -> */,
 /* pos 022c: 264 */    0x00, 0x1C                  /* - terminal marker 28 - */,
 /* pos 022e: 265 */    0x61 /* 'a' */, 0x07, 0x00  /* (to 0x0235 state 266) */,
-                       0x65 /* 'e' */, 0xF5, 0x01  /* (to 0x0426 state 642) */,
+                       0x65 /* 'e' */, 0xF0, 0x01  /* (to 0x0421 state 637) */,
                        0x08, /* fail */
 /* pos 0235: 266 */    0xF4 /* 't' -> */,
 /* pos 0236: 267 */    0xE5 /* 'e' -> */,
@@ -367,10 +367,10 @@
 /* pos 0244: 274 */    0xBA /* ':' -> */,
 /* pos 0245: 275 */    0x00, 0x1E                  /* - terminal marker 30 - */,
 /* pos 0247: 276 */    0x66 /* 'f' */, 0x07, 0x00  /* (to 0x024E state 277) */,
-                       0x74 /* 't' */, 0x5F, 0x01  /* (to 0x03A9 state 534) */,
+                       0x74 /* 't' */, 0x5A, 0x01  /* (to 0x03A4 state 529) */,
                        0x08, /* fail */
 /* pos 024e: 277 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x0255 state 278) */,
-                       0x72 /* 'r' */, 0x52, 0x01  /* (to 0x03A3 state 529) */,
+                       0x72 /* 'r' */, 0x4D, 0x01  /* (to 0x039E state 524) */,
                        0x08, /* fail */
 /* pos 0255: 278 */    0xF2 /* 'r' -> */,
 /* pos 0256: 279 */    0xE5 /* 'e' -> */,
@@ -394,9 +394,9 @@
 /* pos 026b: 297 */    0xBA /* ':' -> */,
 /* pos 026c: 298 */    0x00, 0x22                  /* - terminal marker 34 - */,
 /* pos 026e: 299 */    0x61 /* 'a' */, 0x0D, 0x00  /* (to 0x027B state 300) */,
-                       0x6D /* 'm' */, 0x15, 0x00  /* (to 0x0286 state 310) */,
-                       0x70 /* 'p' */, 0x1A, 0x00  /* (to 0x028E state 317) */,
-                       0x73 /* 's' */, 0x1D, 0x00  /* (to 0x0294 state 322) */,
+                       0x6D /* 'm' */, 0x14, 0x00  /* (to 0x0285 state 309) */,
+                       0x70 /* 'p' */, 0x18, 0x00  /* (to 0x028C state 315) */,
+                       0x73 /* 's' */, 0x1A, 0x00  /* (to 0x0291 state 319) */,
                        0x08, /* fail */
 /* pos 027b: 300 */    0xF5 /* 'u' -> */,
 /* pos 027c: 301 */    0xF4 /* 't' -> */,
@@ -406,378 +406,373 @@
 /* pos 0280: 305 */    0xE9 /* 'i' -> */,
 /* pos 0281: 306 */    0xF4 /* 't' -> */,
 /* pos 0282: 307 */    0xF9 /* 'y' -> */,
-/* pos 0283: 308 */    0xBA /* ':' -> */,
-/* pos 0284: 309 */    0x00, 0x23                  /* - terminal marker 35 - */,
-/* pos 0286: 310 */    0xE5 /* 'e' -> */,
-/* pos 0287: 311 */    0xF4 /* 't' -> */,
-/* pos 0288: 312 */    0xE8 /* 'h' -> */,
-/* pos 0289: 313 */    0xEF /* 'o' -> */,
-/* pos 028a: 314 */    0xE4 /* 'd' -> */,
-/* pos 028b: 315 */    0xBA /* ':' -> */,
-/* pos 028c: 316 */    0x00, 0x24                  /* - terminal marker 36 - */,
-/* pos 028e: 317 */    0xE1 /* 'a' -> */,
-/* pos 028f: 318 */    0xF4 /* 't' -> */,
-/* pos 0290: 319 */    0xE8 /* 'h' -> */,
-/* pos 0291: 320 */    0xBA /* ':' -> */,
-/* pos 0292: 321 */    0x00, 0x25                  /* - terminal marker 37 - */,
-/* pos 0294: 322 */    0x63 /* 'c' */, 0x07, 0x00  /* (to 0x029B state 323) */,
-                       0x74 /* 't' */, 0x0B, 0x00  /* (to 0x02A2 state 329) */,
-                       0x08, /* fail */
-/* pos 029b: 323 */    0xE8 /* 'h' -> */,
-/* pos 029c: 324 */    0xE5 /* 'e' -> */,
-/* pos 029d: 325 */    0xED /* 'm' -> */,
-/* pos 029e: 326 */    0xE5 /* 'e' -> */,
-/* pos 029f: 327 */    0xBA /* ':' -> */,
-/* pos 02a0: 328 */    0x00, 0x26                  /* - terminal marker 38 - */,
-/* pos 02a2: 329 */    0xE1 /* 'a' -> */,
-/* pos 02a3: 330 */    0xF4 /* 't' -> */,
-/* pos 02a4: 331 */    0xF5 /* 'u' -> */,
-/* pos 02a5: 332 */    0xF3 /* 's' -> */,
-/* pos 02a6: 333 */    0xBA /* ':' -> */,
-/* pos 02a7: 334 */    0x00, 0x27                  /* - terminal marker 39 - */,
-/* pos 02a9: 335 */    0xE8 /* 'h' -> */,
-/* pos 02aa: 336 */    0xE1 /* 'a' -> */,
-/* pos 02ab: 337 */    0xF2 /* 'r' -> */,
-/* pos 02ac: 338 */    0xF3 /* 's' -> */,
-/* pos 02ad: 339 */    0xE5 /* 'e' -> */,
-/* pos 02ae: 340 */    0xF4 /* 't' -> */,
-/* pos 02af: 341 */    0xBA /* ':' -> */,
-/* pos 02b0: 342 */    0x00, 0x28                  /* - terminal marker 40 - */,
-/* pos 02b2: 343 */    0xE1 /* 'a' -> */,
-/* pos 02b3: 344 */    0xEE /* 'n' -> */,
-/* pos 02b4: 345 */    0xE7 /* 'g' -> */,
-/* pos 02b5: 346 */    0xE5 /* 'e' -> */,
-/* pos 02b6: 347 */    0xF3 /* 's' -> */,
-/* pos 02b7: 348 */    0xBA /* ':' -> */,
-/* pos 02b8: 349 */    0x00, 0x29                  /* - terminal marker 41 - */,
-/* pos 02ba: 350 */    0xEC /* 'l' -> */,
-/* pos 02bb: 351 */    0xEC /* 'l' -> */,
-/* pos 02bc: 352 */    0xEF /* 'o' -> */,
-/* pos 02bd: 353 */    0xF7 /* 'w' -> */,
-/* pos 02be: 354 */    0xAD /* '-' -> */,
-/* pos 02bf: 355 */    0xEF /* 'o' -> */,
-/* pos 02c0: 356 */    0xF2 /* 'r' -> */,
-/* pos 02c1: 357 */    0xE9 /* 'i' -> */,
-/* pos 02c2: 358 */    0xE7 /* 'g' -> */,
-/* pos 02c3: 359 */    0xE9 /* 'i' -> */,
-/* pos 02c4: 360 */    0xEE /* 'n' -> */,
-/* pos 02c5: 361 */    0xBA /* ':' -> */,
-/* pos 02c6: 362 */    0x00, 0x2A                  /* - terminal marker 42 - */,
-/* pos 02c8: 363 */    0xE5 /* 'e' -> */,
-/* pos 02c9: 364 */    0xBA /* ':' -> */,
-/* pos 02ca: 365 */    0x00, 0x2B                  /* - terminal marker 43 - */,
-/* pos 02cc: 366 */    0xEC /* 'l' -> */,
-/* pos 02cd: 367 */    0xEF /* 'o' -> */,
-/* pos 02ce: 368 */    0xF7 /* 'w' -> */,
-/* pos 02cf: 369 */    0xBA /* ':' -> */,
-/* pos 02d0: 370 */    0x00, 0x2C                  /* - terminal marker 44 - */,
+/* pos 0283: 308 */    0x00, 0x23                  /* - terminal marker 35 - */,
+/* pos 0285: 309 */    0xE5 /* 'e' -> */,
+/* pos 0286: 310 */    0xF4 /* 't' -> */,
+/* pos 0287: 311 */    0xE8 /* 'h' -> */,
+/* pos 0288: 312 */    0xEF /* 'o' -> */,
+/* pos 0289: 313 */    0xE4 /* 'd' -> */,
+/* pos 028a: 314 */    0x00, 0x24                  /* - terminal marker 36 - */,
+/* pos 028c: 315 */    0xE1 /* 'a' -> */,
+/* pos 028d: 316 */    0xF4 /* 't' -> */,
+/* pos 028e: 317 */    0xE8 /* 'h' -> */,
+/* pos 028f: 318 */    0x00, 0x25                  /* - terminal marker 37 - */,
+/* pos 0291: 319 */    0x63 /* 'c' */, 0x07, 0x00  /* (to 0x0298 state 320) */,
+                       0x74 /* 't' */, 0x0A, 0x00  /* (to 0x029E state 325) */,
+                       0x08, /* fail */
+/* pos 0298: 320 */    0xE8 /* 'h' -> */,
+/* pos 0299: 321 */    0xE5 /* 'e' -> */,
+/* pos 029a: 322 */    0xED /* 'm' -> */,
+/* pos 029b: 323 */    0xE5 /* 'e' -> */,
+/* pos 029c: 324 */    0x00, 0x26                  /* - terminal marker 38 - */,
+/* pos 029e: 325 */    0xE1 /* 'a' -> */,
+/* pos 029f: 326 */    0xF4 /* 't' -> */,
+/* pos 02a0: 327 */    0xF5 /* 'u' -> */,
+/* pos 02a1: 328 */    0xF3 /* 's' -> */,
+/* pos 02a2: 329 */    0x00, 0x27                  /* - terminal marker 39 - */,
+/* pos 02a4: 330 */    0xE8 /* 'h' -> */,
+/* pos 02a5: 331 */    0xE1 /* 'a' -> */,
+/* pos 02a6: 332 */    0xF2 /* 'r' -> */,
+/* pos 02a7: 333 */    0xF3 /* 's' -> */,
+/* pos 02a8: 334 */    0xE5 /* 'e' -> */,
+/* pos 02a9: 335 */    0xF4 /* 't' -> */,
+/* pos 02aa: 336 */    0xBA /* ':' -> */,
+/* pos 02ab: 337 */    0x00, 0x28                  /* - terminal marker 40 - */,
+/* pos 02ad: 338 */    0xE1 /* 'a' -> */,
+/* pos 02ae: 339 */    0xEE /* 'n' -> */,
+/* pos 02af: 340 */    0xE7 /* 'g' -> */,
+/* pos 02b0: 341 */    0xE5 /* 'e' -> */,
+/* pos 02b1: 342 */    0xF3 /* 's' -> */,
+/* pos 02b2: 343 */    0xBA /* ':' -> */,
+/* pos 02b3: 344 */    0x00, 0x29                  /* - terminal marker 41 - */,
+/* pos 02b5: 345 */    0xEC /* 'l' -> */,
+/* pos 02b6: 346 */    0xEC /* 'l' -> */,
+/* pos 02b7: 347 */    0xEF /* 'o' -> */,
+/* pos 02b8: 348 */    0xF7 /* 'w' -> */,
+/* pos 02b9: 349 */    0xAD /* '-' -> */,
+/* pos 02ba: 350 */    0xEF /* 'o' -> */,
+/* pos 02bb: 351 */    0xF2 /* 'r' -> */,
+/* pos 02bc: 352 */    0xE9 /* 'i' -> */,
+/* pos 02bd: 353 */    0xE7 /* 'g' -> */,
+/* pos 02be: 354 */    0xE9 /* 'i' -> */,
+/* pos 02bf: 355 */    0xEE /* 'n' -> */,
+/* pos 02c0: 356 */    0xBA /* ':' -> */,
+/* pos 02c1: 357 */    0x00, 0x2A                  /* - terminal marker 42 - */,
+/* pos 02c3: 358 */    0xE5 /* 'e' -> */,
+/* pos 02c4: 359 */    0xBA /* ':' -> */,
+/* pos 02c5: 360 */    0x00, 0x2B                  /* - terminal marker 43 - */,
+/* pos 02c7: 361 */    0xEC /* 'l' -> */,
+/* pos 02c8: 362 */    0xEF /* 'o' -> */,
+/* pos 02c9: 363 */    0xF7 /* 'w' -> */,
+/* pos 02ca: 364 */    0xBA /* ':' -> */,
+/* pos 02cb: 365 */    0x00, 0x2C                  /* - terminal marker 44 - */,
+/* pos 02cd: 366 */    0xE9 /* 'i' -> */,
+/* pos 02ce: 367 */    0xF3 /* 's' -> */,
+/* pos 02cf: 368 */    0xF0 /* 'p' -> */,
+/* pos 02d0: 369 */    0xEF /* 'o' -> */,
+/* pos 02d1: 370 */    0xF3 /* 's' -> */,
 /* pos 02d2: 371 */    0xE9 /* 'i' -> */,
-/* pos 02d3: 372 */    0xF3 /* 's' -> */,
-/* pos 02d4: 373 */    0xF0 /* 'p' -> */,
+/* pos 02d3: 372 */    0xF4 /* 't' -> */,
+/* pos 02d4: 373 */    0xE9 /* 'i' -> */,
 /* pos 02d5: 374 */    0xEF /* 'o' -> */,
-/* pos 02d6: 375 */    0xF3 /* 's' -> */,
-/* pos 02d7: 376 */    0xE9 /* 'i' -> */,
-/* pos 02d8: 377 */    0xF4 /* 't' -> */,
-/* pos 02d9: 378 */    0xE9 /* 'i' -> */,
-/* pos 02da: 379 */    0xEF /* 'o' -> */,
-/* pos 02db: 380 */    0xEE /* 'n' -> */,
-/* pos 02dc: 381 */    0xBA /* ':' -> */,
-/* pos 02dd: 382 */    0x00, 0x2D                  /* - terminal marker 45 - */,
+/* pos 02d6: 375 */    0xEE /* 'n' -> */,
+/* pos 02d7: 376 */    0xBA /* ':' -> */,
+/* pos 02d8: 377 */    0x00, 0x2D                  /* - terminal marker 45 - */,
+/* pos 02da: 378 */    0xEE /* 'n' -> */,
+/* pos 02db: 379 */    0xE3 /* 'c' -> */,
+/* pos 02dc: 380 */    0xEF /* 'o' -> */,
+/* pos 02dd: 381 */    0xE4 /* 'd' -> */,
+/* pos 02de: 382 */    0xE9 /* 'i' -> */,
 /* pos 02df: 383 */    0xEE /* 'n' -> */,
-/* pos 02e0: 384 */    0xE3 /* 'c' -> */,
-/* pos 02e1: 385 */    0xEF /* 'o' -> */,
-/* pos 02e2: 386 */    0xE4 /* 'd' -> */,
-/* pos 02e3: 387 */    0xE9 /* 'i' -> */,
-/* pos 02e4: 388 */    0xEE /* 'n' -> */,
-/* pos 02e5: 389 */    0xE7 /* 'g' -> */,
-/* pos 02e6: 390 */    0xBA /* ':' -> */,
-/* pos 02e7: 391 */    0x00, 0x2E                  /* - terminal marker 46 - */,
-/* pos 02e9: 392 */    0xEE /* 'n' -> */,
-/* pos 02ea: 393 */    0xE7 /* 'g' -> */,
-/* pos 02eb: 394 */    0xF5 /* 'u' -> */,
-/* pos 02ec: 395 */    0xE1 /* 'a' -> */,
-/* pos 02ed: 396 */    0xE7 /* 'g' -> */,
-/* pos 02ee: 397 */    0xE5 /* 'e' -> */,
-/* pos 02ef: 398 */    0xBA /* ':' -> */,
-/* pos 02f0: 399 */    0x00, 0x2F                  /* - terminal marker 47 - */,
-/* pos 02f2: 400 */    0xE3 /* 'c' -> */,
-/* pos 02f3: 401 */    0xE1 /* 'a' -> */,
-/* pos 02f4: 402 */    0xF4 /* 't' -> */,
-/* pos 02f5: 403 */    0xE9 /* 'i' -> */,
-/* pos 02f6: 404 */    0xEF /* 'o' -> */,
-/* pos 02f7: 405 */    0xEE /* 'n' -> */,
-/* pos 02f8: 406 */    0xBA /* ':' -> */,
-/* pos 02f9: 407 */    0x00, 0x30                  /* - terminal marker 48 - */,
-/* pos 02fb: 408 */    0xE1 /* 'a' -> */,
-/* pos 02fc: 409 */    0xEE /* 'n' -> */,
-/* pos 02fd: 410 */    0xE7 /* 'g' -> */,
-/* pos 02fe: 411 */    0xE5 /* 'e' -> */,
-/* pos 02ff: 412 */    0xBA /* ':' -> */,
-/* pos 0300: 413 */    0x00, 0x31                  /* - terminal marker 49 - */,
-/* pos 0302: 414 */    0x74 /* 't' */, 0x07, 0x00  /* (to 0x0309 state 415) */,
-                       0x78 /* 'x' */, 0x09, 0x00  /* (to 0x030E state 419) */,
-                       0x08, /* fail */
-/* pos 0309: 415 */    0xE1 /* 'a' -> */,
-/* pos 030a: 416 */    0xE7 /* 'g' -> */,
-/* pos 030b: 417 */    0xBA /* ':' -> */,
-/* pos 030c: 418 */    0x00, 0x32                  /* - terminal marker 50 - */,
-/* pos 030e: 419 */    0xF0 /* 'p' -> */,
-/* pos 030f: 420 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x0316 state 421) */,
-                       0x69 /* 'i' */, 0x09, 0x00  /* (to 0x031B state 425) */,
-                       0x08, /* fail */
-/* pos 0316: 421 */    0xE3 /* 'c' -> */,
-/* pos 0317: 422 */    0xF4 /* 't' -> */,
-/* pos 0318: 423 */    0xBA /* ':' -> */,
-/* pos 0319: 424 */    0x00, 0x33                  /* - terminal marker 51 - */,
-/* pos 031b: 425 */    0xF2 /* 'r' -> */,
-/* pos 031c: 426 */    0xE5 /* 'e' -> */,
-/* pos 031d: 427 */    0xF3 /* 's' -> */,
-/* pos 031e: 428 */    0xBA /* ':' -> */,
-/* pos 031f: 429 */    0x00, 0x34                  /* - terminal marker 52 - */,
-/* pos 0321: 430 */    0xF2 /* 'r' -> */,
-/* pos 0322: 431 */    0xEF /* 'o' -> */,
-/* pos 0323: 432 */    0xED /* 'm' -> */,
-/* pos 0324: 433 */    0xBA /* ':' -> */,
-/* pos 0325: 434 */    0x00, 0x35                  /* - terminal marker 53 - */,
-/* pos 0327: 435 */    0xF4 /* 't' -> */,
-/* pos 0328: 436 */    0xE3 /* 'c' -> */,
-/* pos 0329: 437 */    0xE8 /* 'h' -> */,
-/* pos 032a: 438 */    0xBA /* ':' -> */,
-/* pos 032b: 439 */    0x00, 0x36                  /* - terminal marker 54 - */,
-/* pos 032d: 440 */    0xE1 /* 'a' -> */,
-/* pos 032e: 441 */    0xEE /* 'n' -> */,
-/* pos 032f: 442 */    0xE7 /* 'g' -> */,
-/* pos 0330: 443 */    0xE5 /* 'e' -> */,
-/* pos 0331: 444 */    0xBA /* ':' -> */,
-/* pos 0332: 445 */    0x00, 0x37                  /* - terminal marker 55 - */,
-/* pos 0334: 446 */    0xEE /* 'n' -> */,
-/* pos 0335: 447 */    0xED /* 'm' -> */,
-/* pos 0336: 448 */    0xEF /* 'o' -> */,
+/* pos 02e0: 384 */    0xE7 /* 'g' -> */,
+/* pos 02e1: 385 */    0xBA /* ':' -> */,
+/* pos 02e2: 386 */    0x00, 0x2E                  /* - terminal marker 46 - */,
+/* pos 02e4: 387 */    0xEE /* 'n' -> */,
+/* pos 02e5: 388 */    0xE7 /* 'g' -> */,
+/* pos 02e6: 389 */    0xF5 /* 'u' -> */,
+/* pos 02e7: 390 */    0xE1 /* 'a' -> */,
+/* pos 02e8: 391 */    0xE7 /* 'g' -> */,
+/* pos 02e9: 392 */    0xE5 /* 'e' -> */,
+/* pos 02ea: 393 */    0xBA /* ':' -> */,
+/* pos 02eb: 394 */    0x00, 0x2F                  /* - terminal marker 47 - */,
+/* pos 02ed: 395 */    0xE3 /* 'c' -> */,
+/* pos 02ee: 396 */    0xE1 /* 'a' -> */,
+/* pos 02ef: 397 */    0xF4 /* 't' -> */,
+/* pos 02f0: 398 */    0xE9 /* 'i' -> */,
+/* pos 02f1: 399 */    0xEF /* 'o' -> */,
+/* pos 02f2: 400 */    0xEE /* 'n' -> */,
+/* pos 02f3: 401 */    0xBA /* ':' -> */,
+/* pos 02f4: 402 */    0x00, 0x30                  /* - terminal marker 48 - */,
+/* pos 02f6: 403 */    0xE1 /* 'a' -> */,
+/* pos 02f7: 404 */    0xEE /* 'n' -> */,
+/* pos 02f8: 405 */    0xE7 /* 'g' -> */,
+/* pos 02f9: 406 */    0xE5 /* 'e' -> */,
+/* pos 02fa: 407 */    0xBA /* ':' -> */,
+/* pos 02fb: 408 */    0x00, 0x31                  /* - terminal marker 49 - */,
+/* pos 02fd: 409 */    0x74 /* 't' */, 0x07, 0x00  /* (to 0x0304 state 410) */,
+                       0x78 /* 'x' */, 0x09, 0x00  /* (to 0x0309 state 414) */,
+                       0x08, /* fail */
+/* pos 0304: 410 */    0xE1 /* 'a' -> */,
+/* pos 0305: 411 */    0xE7 /* 'g' -> */,
+/* pos 0306: 412 */    0xBA /* ':' -> */,
+/* pos 0307: 413 */    0x00, 0x32                  /* - terminal marker 50 - */,
+/* pos 0309: 414 */    0xF0 /* 'p' -> */,
+/* pos 030a: 415 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x0311 state 416) */,
+                       0x69 /* 'i' */, 0x09, 0x00  /* (to 0x0316 state 420) */,
+                       0x08, /* fail */
+/* pos 0311: 416 */    0xE3 /* 'c' -> */,
+/* pos 0312: 417 */    0xF4 /* 't' -> */,
+/* pos 0313: 418 */    0xBA /* ':' -> */,
+/* pos 0314: 419 */    0x00, 0x33                  /* - terminal marker 51 - */,
+/* pos 0316: 420 */    0xF2 /* 'r' -> */,
+/* pos 0317: 421 */    0xE5 /* 'e' -> */,
+/* pos 0318: 422 */    0xF3 /* 's' -> */,
+/* pos 0319: 423 */    0xBA /* ':' -> */,
+/* pos 031a: 424 */    0x00, 0x34                  /* - terminal marker 52 - */,
+/* pos 031c: 425 */    0xF2 /* 'r' -> */,
+/* pos 031d: 426 */    0xEF /* 'o' -> */,
+/* pos 031e: 427 */    0xED /* 'm' -> */,
+/* pos 031f: 428 */    0xBA /* ':' -> */,
+/* pos 0320: 429 */    0x00, 0x35                  /* - terminal marker 53 - */,
+/* pos 0322: 430 */    0xF4 /* 't' -> */,
+/* pos 0323: 431 */    0xE3 /* 'c' -> */,
+/* pos 0324: 432 */    0xE8 /* 'h' -> */,
+/* pos 0325: 433 */    0xBA /* ':' -> */,
+/* pos 0326: 434 */    0x00, 0x36                  /* - terminal marker 54 - */,
+/* pos 0328: 435 */    0xE1 /* 'a' -> */,
+/* pos 0329: 436 */    0xEE /* 'n' -> */,
+/* pos 032a: 437 */    0xE7 /* 'g' -> */,
+/* pos 032b: 438 */    0xE5 /* 'e' -> */,
+/* pos 032c: 439 */    0xBA /* ':' -> */,
+/* pos 032d: 440 */    0x00, 0x37                  /* - terminal marker 55 - */,
+/* pos 032f: 441 */    0xEE /* 'n' -> */,
+/* pos 0330: 442 */    0xED /* 'm' -> */,
+/* pos 0331: 443 */    0xEF /* 'o' -> */,
+/* pos 0332: 444 */    0xE4 /* 'd' -> */,
+/* pos 0333: 445 */    0xE9 /* 'i' -> */,
+/* pos 0334: 446 */    0xE6 /* 'f' -> */,
+/* pos 0335: 447 */    0xE9 /* 'i' -> */,
+/* pos 0336: 448 */    0xE5 /* 'e' -> */,
 /* pos 0337: 449 */    0xE4 /* 'd' -> */,
-/* pos 0338: 450 */    0xE9 /* 'i' -> */,
-/* pos 0339: 451 */    0xE6 /* 'f' -> */,
+/* pos 0338: 450 */    0xAD /* '-' -> */,
+/* pos 0339: 451 */    0xF3 /* 's' -> */,
 /* pos 033a: 452 */    0xE9 /* 'i' -> */,
-/* pos 033b: 453 */    0xE5 /* 'e' -> */,
-/* pos 033c: 454 */    0xE4 /* 'd' -> */,
-/* pos 033d: 455 */    0xAD /* '-' -> */,
-/* pos 033e: 456 */    0xF3 /* 's' -> */,
-/* pos 033f: 457 */    0xE9 /* 'i' -> */,
-/* pos 0340: 458 */    0xEE /* 'n' -> */,
-/* pos 0341: 459 */    0xE3 /* 'c' -> */,
-/* pos 0342: 460 */    0xE5 /* 'e' -> */,
-/* pos 0343: 461 */    0xBA /* ':' -> */,
-/* pos 0344: 462 */    0x00, 0x38                  /* - terminal marker 56 - */,
-/* pos 0346: 463 */    0x61 /* 'a' */, 0x0A, 0x00  /* (to 0x0350 state 464) */,
-                       0x69 /* 'i' */, 0x15, 0x00  /* (to 0x035E state 477) */,
-                       0x6F /* 'o' */, 0x17, 0x00  /* (to 0x0363 state 481) */,
-                       0x08, /* fail */
-/* pos 0350: 464 */    0xF3 /* 's' -> */,
-/* pos 0351: 465 */    0xF4 /* 't' -> */,
-/* pos 0352: 466 */    0xAD /* '-' -> */,
-/* pos 0353: 467 */    0xED /* 'm' -> */,
-/* pos 0354: 468 */    0xEF /* 'o' -> */,
+/* pos 033b: 453 */    0xEE /* 'n' -> */,
+/* pos 033c: 454 */    0xE3 /* 'c' -> */,
+/* pos 033d: 455 */    0xE5 /* 'e' -> */,
+/* pos 033e: 456 */    0xBA /* ':' -> */,
+/* pos 033f: 457 */    0x00, 0x38                  /* - terminal marker 56 - */,
+/* pos 0341: 458 */    0x61 /* 'a' */, 0x0A, 0x00  /* (to 0x034B state 459) */,
+                       0x69 /* 'i' */, 0x15, 0x00  /* (to 0x0359 state 472) */,
+                       0x6F /* 'o' */, 0x17, 0x00  /* (to 0x035E state 476) */,
+                       0x08, /* fail */
+/* pos 034b: 459 */    0xF3 /* 's' -> */,
+/* pos 034c: 460 */    0xF4 /* 't' -> */,
+/* pos 034d: 461 */    0xAD /* '-' -> */,
+/* pos 034e: 462 */    0xED /* 'm' -> */,
+/* pos 034f: 463 */    0xEF /* 'o' -> */,
+/* pos 0350: 464 */    0xE4 /* 'd' -> */,
+/* pos 0351: 465 */    0xE9 /* 'i' -> */,
+/* pos 0352: 466 */    0xE6 /* 'f' -> */,
+/* pos 0353: 467 */    0xE9 /* 'i' -> */,
+/* pos 0354: 468 */    0xE5 /* 'e' -> */,
 /* pos 0355: 469 */    0xE4 /* 'd' -> */,
-/* pos 0356: 470 */    0xE9 /* 'i' -> */,
-/* pos 0357: 471 */    0xE6 /* 'f' -> */,
-/* pos 0358: 472 */    0xE9 /* 'i' -> */,
-/* pos 0359: 473 */    0xE5 /* 'e' -> */,
-/* pos 035a: 474 */    0xE4 /* 'd' -> */,
-/* pos 035b: 475 */    0xBA /* ':' -> */,
-/* pos 035c: 476 */    0x00, 0x39                  /* - terminal marker 57 - */,
-/* pos 035e: 477 */    0xEE /* 'n' -> */,
-/* pos 035f: 478 */    0xEB /* 'k' -> */,
-/* pos 0360: 479 */    0xBA /* ':' -> */,
-/* pos 0361: 480 */    0x00, 0x3A                  /* - terminal marker 58 - */,
-/* pos 0363: 481 */    0xE3 /* 'c' -> */,
-/* pos 0364: 482 */    0xE1 /* 'a' -> */,
-/* pos 0365: 483 */    0xF4 /* 't' -> */,
-/* pos 0366: 484 */    0xE9 /* 'i' -> */,
-/* pos 0367: 485 */    0xEF /* 'o' -> */,
-/* pos 0368: 486 */    0xEE /* 'n' -> */,
-/* pos 0369: 487 */    0xBA /* ':' -> */,
-/* pos 036a: 488 */    0x00, 0x3B                  /* - terminal marker 59 - */,
-/* pos 036c: 489 */    0xE1 /* 'a' -> */,
-/* pos 036d: 490 */    0xF8 /* 'x' -> */,
-/* pos 036e: 491 */    0xAD /* '-' -> */,
-/* pos 036f: 492 */    0xE6 /* 'f' -> */,
-/* pos 0370: 493 */    0xEF /* 'o' -> */,
-/* pos 0371: 494 */    0xF2 /* 'r' -> */,
-/* pos 0372: 495 */    0xF7 /* 'w' -> */,
-/* pos 0373: 496 */    0xE1 /* 'a' -> */,
-/* pos 0374: 497 */    0xF2 /* 'r' -> */,
-/* pos 0375: 498 */    0xE4 /* 'd' -> */,
-/* pos 0376: 499 */    0xF3 /* 's' -> */,
-/* pos 0377: 500 */    0xBA /* ':' -> */,
-/* pos 0378: 501 */    0x00, 0x3C                  /* - terminal marker 60 - */,
-/* pos 037a: 502 */    0xF8 /* 'x' -> */,
-/* pos 037b: 503 */    0xF9 /* 'y' -> */,
-/* pos 037c: 504 */    0x2D /* '-' */, 0x07, 0x00  /* (to 0x0383 state 505) */,
-                       0x20 /* ' ' */, 0xB5, 0x00  /* (to 0x0434 state 654) */,
-                       0x08, /* fail */
-/* pos 0383: 505 */    0xE1 /* 'a' -> */,
-/* pos 0384: 506 */    0xF5 /* 'u' -> */,
-/* pos 0385: 507 */    0xF4 /* 't' -> */,
-/* pos 0386: 508 */    0xE8 /* 'h' -> */,
-/* pos 0387: 509 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x038E state 510) */,
-                       0x6F /* 'o' */, 0x0E, 0x00  /* (to 0x0398 state 519) */,
-                       0x08, /* fail */
-/* pos 038e: 510 */    0xEE /* 'n' -> */,
-/* pos 038f: 511 */    0xF4 /* 't' -> */,
-/* pos 0390: 512 */    0xE9 /* 'i' -> */,
-/* pos 0391: 513 */    0xE3 /* 'c' -> */,
-/* pos 0392: 514 */    0xE1 /* 'a' -> */,
-/* pos 0393: 515 */    0xF4 /* 't' -> */,
-/* pos 0394: 516 */    0xE5 /* 'e' -> */,
-/* pos 0395: 517 */    0xBA /* ':' -> */,
-/* pos 0396: 518 */    0x00, 0x3D                  /* - terminal marker 61 - */,
-/* pos 0398: 519 */    0xF2 /* 'r' -> */,
-/* pos 0399: 520 */    0xE9 /* 'i' -> */,
-/* pos 039a: 521 */    0xFA /* 'z' -> */,
-/* pos 039b: 522 */    0xE1 /* 'a' -> */,
-/* pos 039c: 523 */    0xF4 /* 't' -> */,
-/* pos 039d: 524 */    0xE9 /* 'i' -> */,
-/* pos 039e: 525 */    0xEF /* 'o' -> */,
-/* pos 039f: 526 */    0xEE /* 'n' -> */,
-/* pos 03a0: 527 */    0xBA /* ':' -> */,
-/* pos 03a1: 528 */    0x00, 0x3E                  /* - terminal marker 62 - */,
-/* pos 03a3: 529 */    0xE5 /* 'e' -> */,
-/* pos 03a4: 530 */    0xF3 /* 's' -> */,
-/* pos 03a5: 531 */    0xE8 /* 'h' -> */,
-/* pos 03a6: 532 */    0xBA /* ':' -> */,
-/* pos 03a7: 533 */    0x00, 0x3F                  /* - terminal marker 63 - */,
-/* pos 03a9: 534 */    0xF2 /* 'r' -> */,
-/* pos 03aa: 535 */    0xF9 /* 'y' -> */,
-/* pos 03ab: 536 */    0xAD /* '-' -> */,
-/* pos 03ac: 537 */    0xE1 /* 'a' -> */,
-/* pos 03ad: 538 */    0xE6 /* 'f' -> */,
-/* pos 03ae: 539 */    0xF4 /* 't' -> */,
-/* pos 03af: 540 */    0xE5 /* 'e' -> */,
-/* pos 03b0: 541 */    0xF2 /* 'r' -> */,
-/* pos 03b1: 542 */    0xBA /* ':' -> */,
-/* pos 03b2: 543 */    0x00, 0x40                  /* - terminal marker 64 - */,
-/* pos 03b4: 544 */    0xF6 /* 'v' -> */,
-/* pos 03b5: 545 */    0xE5 /* 'e' -> */,
-/* pos 03b6: 546 */    0xF2 /* 'r' -> */,
-/* pos 03b7: 547 */    0xBA /* ':' -> */,
-/* pos 03b8: 548 */    0x00, 0x41                  /* - terminal marker 65 - */,
-/* pos 03ba: 549 */    0xAD /* '-' -> */,
-/* pos 03bb: 550 */    0xE3 /* 'c' -> */,
-/* pos 03bc: 551 */    0xEF /* 'o' -> */,
-/* pos 03bd: 552 */    0xEF /* 'o' -> */,
-/* pos 03be: 553 */    0xEB /* 'k' -> */,
-/* pos 03bf: 554 */    0xE9 /* 'i' -> */,
-/* pos 03c0: 555 */    0xE5 /* 'e' -> */,
-/* pos 03c1: 556 */    0xBA /* ':' -> */,
-/* pos 03c2: 557 */    0x00, 0x42                  /* - terminal marker 66 - */,
-/* pos 03c4: 558 */    0xF2 /* 'r' -> */,
-/* pos 03c5: 559 */    0xE9 /* 'i' -> */,
-/* pos 03c6: 560 */    0xE3 /* 'c' -> */,
-/* pos 03c7: 561 */    0xF4 /* 't' -> */,
-/* pos 03c8: 562 */    0xAD /* '-' -> */,
-/* pos 03c9: 563 */    0xF4 /* 't' -> */,
-/* pos 03ca: 564 */    0xF2 /* 'r' -> */,
-/* pos 03cb: 565 */    0xE1 /* 'a' -> */,
-/* pos 03cc: 566 */    0xEE /* 'n' -> */,
-/* pos 03cd: 567 */    0xF3 /* 's' -> */,
-/* pos 03ce: 568 */    0xF0 /* 'p' -> */,
-/* pos 03cf: 569 */    0xEF /* 'o' -> */,
-/* pos 03d0: 570 */    0xF2 /* 'r' -> */,
-/* pos 03d1: 571 */    0xF4 /* 't' -> */,
-/* pos 03d2: 572 */    0xAD /* '-' -> */,
-/* pos 03d3: 573 */    0xF3 /* 's' -> */,
-/* pos 03d4: 574 */    0xE5 /* 'e' -> */,
-/* pos 03d5: 575 */    0xE3 /* 'c' -> */,
-/* pos 03d6: 576 */    0xF5 /* 'u' -> */,
-/* pos 03d7: 577 */    0xF2 /* 'r' -> */,
-/* pos 03d8: 578 */    0xE9 /* 'i' -> */,
-/* pos 03d9: 579 */    0xF4 /* 't' -> */,
-/* pos 03da: 580 */    0xF9 /* 'y' -> */,
-/* pos 03db: 581 */    0xBA /* ':' -> */,
-/* pos 03dc: 582 */    0x00, 0x43                  /* - terminal marker 67 - */,
-/* pos 03de: 583 */    0xF2 /* 'r' -> */,
-/* pos 03df: 584 */    0xE1 /* 'a' -> */,
-/* pos 03e0: 585 */    0xEE /* 'n' -> */,
-/* pos 03e1: 586 */    0xF3 /* 's' -> */,
-/* pos 03e2: 587 */    0xE6 /* 'f' -> */,
-/* pos 03e3: 588 */    0xE5 /* 'e' -> */,
-/* pos 03e4: 589 */    0xF2 /* 'r' -> */,
-/* pos 03e5: 590 */    0xAD /* '-' -> */,
-/* pos 03e6: 591 */    0xE5 /* 'e' -> */,
+/* pos 0356: 470 */    0xBA /* ':' -> */,
+/* pos 0357: 471 */    0x00, 0x39                  /* - terminal marker 57 - */,
+/* pos 0359: 472 */    0xEE /* 'n' -> */,
+/* pos 035a: 473 */    0xEB /* 'k' -> */,
+/* pos 035b: 474 */    0xBA /* ':' -> */,
+/* pos 035c: 475 */    0x00, 0x3A                  /* - terminal marker 58 - */,
+/* pos 035e: 476 */    0xE3 /* 'c' -> */,
+/* pos 035f: 477 */    0xE1 /* 'a' -> */,
+/* pos 0360: 478 */    0xF4 /* 't' -> */,
+/* pos 0361: 479 */    0xE9 /* 'i' -> */,
+/* pos 0362: 480 */    0xEF /* 'o' -> */,
+/* pos 0363: 481 */    0xEE /* 'n' -> */,
+/* pos 0364: 482 */    0xBA /* ':' -> */,
+/* pos 0365: 483 */    0x00, 0x3B                  /* - terminal marker 59 - */,
+/* pos 0367: 484 */    0xE1 /* 'a' -> */,
+/* pos 0368: 485 */    0xF8 /* 'x' -> */,
+/* pos 0369: 486 */    0xAD /* '-' -> */,
+/* pos 036a: 487 */    0xE6 /* 'f' -> */,
+/* pos 036b: 488 */    0xEF /* 'o' -> */,
+/* pos 036c: 489 */    0xF2 /* 'r' -> */,
+/* pos 036d: 490 */    0xF7 /* 'w' -> */,
+/* pos 036e: 491 */    0xE1 /* 'a' -> */,
+/* pos 036f: 492 */    0xF2 /* 'r' -> */,
+/* pos 0370: 493 */    0xE4 /* 'd' -> */,
+/* pos 0371: 494 */    0xF3 /* 's' -> */,
+/* pos 0372: 495 */    0xBA /* ':' -> */,
+/* pos 0373: 496 */    0x00, 0x3C                  /* - terminal marker 60 - */,
+/* pos 0375: 497 */    0xF8 /* 'x' -> */,
+/* pos 0376: 498 */    0xF9 /* 'y' -> */,
+/* pos 0377: 499 */    0x2D /* '-' */, 0x07, 0x00  /* (to 0x037E state 500) */,
+                       0x20 /* ' ' */, 0xB5, 0x00  /* (to 0x042F state 649) */,
+                       0x08, /* fail */
+/* pos 037e: 500 */    0xE1 /* 'a' -> */,
+/* pos 037f: 501 */    0xF5 /* 'u' -> */,
+/* pos 0380: 502 */    0xF4 /* 't' -> */,
+/* pos 0381: 503 */    0xE8 /* 'h' -> */,
+/* pos 0382: 504 */    0x65 /* 'e' */, 0x07, 0x00  /* (to 0x0389 state 505) */,
+                       0x6F /* 'o' */, 0x0E, 0x00  /* (to 0x0393 state 514) */,
+                       0x08, /* fail */
+/* pos 0389: 505 */    0xEE /* 'n' -> */,
+/* pos 038a: 506 */    0xF4 /* 't' -> */,
+/* pos 038b: 507 */    0xE9 /* 'i' -> */,
+/* pos 038c: 508 */    0xE3 /* 'c' -> */,
+/* pos 038d: 509 */    0xE1 /* 'a' -> */,
+/* pos 038e: 510 */    0xF4 /* 't' -> */,
+/* pos 038f: 511 */    0xE5 /* 'e' -> */,
+/* pos 0390: 512 */    0xBA /* ':' -> */,
+/* pos 0391: 513 */    0x00, 0x3D                  /* - terminal marker 61 - */,
+/* pos 0393: 514 */    0xF2 /* 'r' -> */,
+/* pos 0394: 515 */    0xE9 /* 'i' -> */,
+/* pos 0395: 516 */    0xFA /* 'z' -> */,
+/* pos 0396: 517 */    0xE1 /* 'a' -> */,
+/* pos 0397: 518 */    0xF4 /* 't' -> */,
+/* pos 0398: 519 */    0xE9 /* 'i' -> */,
+/* pos 0399: 520 */    0xEF /* 'o' -> */,
+/* pos 039a: 521 */    0xEE /* 'n' -> */,
+/* pos 039b: 522 */    0xBA /* ':' -> */,
+/* pos 039c: 523 */    0x00, 0x3E                  /* - terminal marker 62 - */,
+/* pos 039e: 524 */    0xE5 /* 'e' -> */,
+/* pos 039f: 525 */    0xF3 /* 's' -> */,
+/* pos 03a0: 526 */    0xE8 /* 'h' -> */,
+/* pos 03a1: 527 */    0xBA /* ':' -> */,
+/* pos 03a2: 528 */    0x00, 0x3F                  /* - terminal marker 63 - */,
+/* pos 03a4: 529 */    0xF2 /* 'r' -> */,
+/* pos 03a5: 530 */    0xF9 /* 'y' -> */,
+/* pos 03a6: 531 */    0xAD /* '-' -> */,
+/* pos 03a7: 532 */    0xE1 /* 'a' -> */,
+/* pos 03a8: 533 */    0xE6 /* 'f' -> */,
+/* pos 03a9: 534 */    0xF4 /* 't' -> */,
+/* pos 03aa: 535 */    0xE5 /* 'e' -> */,
+/* pos 03ab: 536 */    0xF2 /* 'r' -> */,
+/* pos 03ac: 537 */    0xBA /* ':' -> */,
+/* pos 03ad: 538 */    0x00, 0x40                  /* - terminal marker 64 - */,
+/* pos 03af: 539 */    0xF6 /* 'v' -> */,
+/* pos 03b0: 540 */    0xE5 /* 'e' -> */,
+/* pos 03b1: 541 */    0xF2 /* 'r' -> */,
+/* pos 03b2: 542 */    0xBA /* ':' -> */,
+/* pos 03b3: 543 */    0x00, 0x41                  /* - terminal marker 65 - */,
+/* pos 03b5: 544 */    0xAD /* '-' -> */,
+/* pos 03b6: 545 */    0xE3 /* 'c' -> */,
+/* pos 03b7: 546 */    0xEF /* 'o' -> */,
+/* pos 03b8: 547 */    0xEF /* 'o' -> */,
+/* pos 03b9: 548 */    0xEB /* 'k' -> */,
+/* pos 03ba: 549 */    0xE9 /* 'i' -> */,
+/* pos 03bb: 550 */    0xE5 /* 'e' -> */,
+/* pos 03bc: 551 */    0xBA /* ':' -> */,
+/* pos 03bd: 552 */    0x00, 0x42                  /* - terminal marker 66 - */,
+/* pos 03bf: 553 */    0xF2 /* 'r' -> */,
+/* pos 03c0: 554 */    0xE9 /* 'i' -> */,
+/* pos 03c1: 555 */    0xE3 /* 'c' -> */,
+/* pos 03c2: 556 */    0xF4 /* 't' -> */,
+/* pos 03c3: 557 */    0xAD /* '-' -> */,
+/* pos 03c4: 558 */    0xF4 /* 't' -> */,
+/* pos 03c5: 559 */    0xF2 /* 'r' -> */,
+/* pos 03c6: 560 */    0xE1 /* 'a' -> */,
+/* pos 03c7: 561 */    0xEE /* 'n' -> */,
+/* pos 03c8: 562 */    0xF3 /* 's' -> */,
+/* pos 03c9: 563 */    0xF0 /* 'p' -> */,
+/* pos 03ca: 564 */    0xEF /* 'o' -> */,
+/* pos 03cb: 565 */    0xF2 /* 'r' -> */,
+/* pos 03cc: 566 */    0xF4 /* 't' -> */,
+/* pos 03cd: 567 */    0xAD /* '-' -> */,
+/* pos 03ce: 568 */    0xF3 /* 's' -> */,
+/* pos 03cf: 569 */    0xE5 /* 'e' -> */,
+/* pos 03d0: 570 */    0xE3 /* 'c' -> */,
+/* pos 03d1: 571 */    0xF5 /* 'u' -> */,
+/* pos 03d2: 572 */    0xF2 /* 'r' -> */,
+/* pos 03d3: 573 */    0xE9 /* 'i' -> */,
+/* pos 03d4: 574 */    0xF4 /* 't' -> */,
+/* pos 03d5: 575 */    0xF9 /* 'y' -> */,
+/* pos 03d6: 576 */    0xBA /* ':' -> */,
+/* pos 03d7: 577 */    0x00, 0x43                  /* - terminal marker 67 - */,
+/* pos 03d9: 578 */    0xF2 /* 'r' -> */,
+/* pos 03da: 579 */    0xE1 /* 'a' -> */,
+/* pos 03db: 580 */    0xEE /* 'n' -> */,
+/* pos 03dc: 581 */    0xF3 /* 's' -> */,
+/* pos 03dd: 582 */    0xE6 /* 'f' -> */,
+/* pos 03de: 583 */    0xE5 /* 'e' -> */,
+/* pos 03df: 584 */    0xF2 /* 'r' -> */,
+/* pos 03e0: 585 */    0xAD /* '-' -> */,
+/* pos 03e1: 586 */    0xE5 /* 'e' -> */,
+/* pos 03e2: 587 */    0xEE /* 'n' -> */,
+/* pos 03e3: 588 */    0xE3 /* 'c' -> */,
+/* pos 03e4: 589 */    0xEF /* 'o' -> */,
+/* pos 03e5: 590 */    0xE4 /* 'd' -> */,
+/* pos 03e6: 591 */    0xE9 /* 'i' -> */,
 /* pos 03e7: 592 */    0xEE /* 'n' -> */,
-/* pos 03e8: 593 */    0xE3 /* 'c' -> */,
-/* pos 03e9: 594 */    0xEF /* 'o' -> */,
-/* pos 03ea: 595 */    0xE4 /* 'd' -> */,
-/* pos 03eb: 596 */    0xE9 /* 'i' -> */,
-/* pos 03ec: 597 */    0xEE /* 'n' -> */,
-/* pos 03ed: 598 */    0xE7 /* 'g' -> */,
-/* pos 03ee: 599 */    0xBA /* ':' -> */,
-/* pos 03ef: 600 */    0x00, 0x44                  /* - terminal marker 68 - */,
+/* pos 03e8: 593 */    0xE7 /* 'g' -> */,
+/* pos 03e9: 594 */    0xBA /* ':' -> */,
+/* pos 03ea: 595 */    0x00, 0x44                  /* - terminal marker 68 - */,
+/* pos 03ec: 596 */    0xE5 /* 'e' -> */,
+/* pos 03ed: 597 */    0xF2 /* 'r' -> */,
+/* pos 03ee: 598 */    0xAD /* '-' -> */,
+/* pos 03ef: 599 */    0xE1 /* 'a' -> */,
+/* pos 03f0: 600 */    0xE7 /* 'g' -> */,
 /* pos 03f1: 601 */    0xE5 /* 'e' -> */,
-/* pos 03f2: 602 */    0xF2 /* 'r' -> */,
-/* pos 03f3: 603 */    0xAD /* '-' -> */,
-/* pos 03f4: 604 */    0xE1 /* 'a' -> */,
-/* pos 03f5: 605 */    0xE7 /* 'g' -> */,
-/* pos 03f6: 606 */    0xE5 /* 'e' -> */,
-/* pos 03f7: 607 */    0xEE /* 'n' -> */,
-/* pos 03f8: 608 */    0xF4 /* 't' -> */,
-/* pos 03f9: 609 */    0xBA /* ':' -> */,
-/* pos 03fa: 610 */    0x00, 0x45                  /* - terminal marker 69 - */,
-/* pos 03fc: 611 */    0x61 /* 'a' */, 0x07, 0x00  /* (to 0x0403 state 612) */,
-                       0x69 /* 'i' */, 0x09, 0x00  /* (to 0x0408 state 616) */,
-                       0x08, /* fail */
-/* pos 0403: 612 */    0xF2 /* 'r' -> */,
-/* pos 0404: 613 */    0xF9 /* 'y' -> */,
-/* pos 0405: 614 */    0xBA /* ':' -> */,
-/* pos 0406: 615 */    0x00, 0x46                  /* - terminal marker 70 - */,
-/* pos 0408: 616 */    0xE1 /* 'a' -> */,
-/* pos 0409: 617 */    0xBA /* ':' -> */,
-/* pos 040a: 618 */    0x00, 0x47                  /* - terminal marker 71 - */,
-/* pos 040c: 619 */    0xF7 /* 'w' -> */,
-/* pos 040d: 620 */    0xF7 /* 'w' -> */,
-/* pos 040e: 621 */    0xAD /* '-' -> */,
-/* pos 040f: 622 */    0xE1 /* 'a' -> */,
-/* pos 0410: 623 */    0xF5 /* 'u' -> */,
-/* pos 0411: 624 */    0xF4 /* 't' -> */,
-/* pos 0412: 625 */    0xE8 /* 'h' -> */,
-/* pos 0413: 626 */    0xE5 /* 'e' -> */,
-/* pos 0414: 627 */    0xEE /* 'n' -> */,
-/* pos 0415: 628 */    0xF4 /* 't' -> */,
-/* pos 0416: 629 */    0xE9 /* 'i' -> */,
-/* pos 0417: 630 */    0xE3 /* 'c' -> */,
-/* pos 0418: 631 */    0xE1 /* 'a' -> */,
-/* pos 0419: 632 */    0xF4 /* 't' -> */,
-/* pos 041a: 633 */    0xE5 /* 'e' -> */,
-/* pos 041b: 634 */    0xBA /* ':' -> */,
-/* pos 041c: 635 */    0x00, 0x48                  /* - terminal marker 72 - */,
-/* pos 041e: 636 */    0xF4 /* 't' -> */,
-/* pos 041f: 637 */    0xE3 /* 'c' -> */,
-/* pos 0420: 638 */    0xE8 /* 'h' -> */,
-/* pos 0421: 639 */    0x00, 0x49                  /* - terminal marker 73 - */,
-/* pos 0423: 640 */    0xF4 /* 't' -> */,
-/* pos 0424: 641 */    0x00, 0x4A                  /* - terminal marker 74 - */,
-/* pos 0426: 642 */    0xEC /* 'l' -> */,
-/* pos 0427: 643 */    0xE5 /* 'e' -> */,
-/* pos 0428: 644 */    0xF4 /* 't' -> */,
-/* pos 0429: 645 */    0xE5 /* 'e' -> */,
-/* pos 042a: 646 */    0x00, 0x4B                  /* - terminal marker 75 - */,
-/* pos 042c: 647 */    0xE9 /* 'i' -> */,
-/* pos 042d: 648 */    0xAD /* '-' -> */,
-/* pos 042e: 649 */    0xE1 /* 'a' -> */,
-/* pos 042f: 650 */    0xF2 /* 'r' -> */,
-/* pos 0430: 651 */    0xE7 /* 'g' -> */,
-/* pos 0431: 652 */    0xF3 /* 's' -> */,
-/* pos 0432: 653 */    0x00, 0x4C                  /* - terminal marker 76 - */,
-/* pos 0434: 654 */    0x00, 0x4D                  /* - terminal marker 77 - */,
+/* pos 03f2: 602 */    0xEE /* 'n' -> */,
+/* pos 03f3: 603 */    0xF4 /* 't' -> */,
+/* pos 03f4: 604 */    0xBA /* ':' -> */,
+/* pos 03f5: 605 */    0x00, 0x45                  /* - terminal marker 69 - */,
+/* pos 03f7: 606 */    0x61 /* 'a' */, 0x07, 0x00  /* (to 0x03FE state 607) */,
+                       0x69 /* 'i' */, 0x09, 0x00  /* (to 0x0403 state 611) */,
+                       0x08, /* fail */
+/* pos 03fe: 607 */    0xF2 /* 'r' -> */,
+/* pos 03ff: 608 */    0xF9 /* 'y' -> */,
+/* pos 0400: 609 */    0xBA /* ':' -> */,
+/* pos 0401: 610 */    0x00, 0x46                  /* - terminal marker 70 - */,
+/* pos 0403: 611 */    0xE1 /* 'a' -> */,
+/* pos 0404: 612 */    0xBA /* ':' -> */,
+/* pos 0405: 613 */    0x00, 0x47                  /* - terminal marker 71 - */,
+/* pos 0407: 614 */    0xF7 /* 'w' -> */,
+/* pos 0408: 615 */    0xF7 /* 'w' -> */,
+/* pos 0409: 616 */    0xAD /* '-' -> */,
+/* pos 040a: 617 */    0xE1 /* 'a' -> */,
+/* pos 040b: 618 */    0xF5 /* 'u' -> */,
+/* pos 040c: 619 */    0xF4 /* 't' -> */,
+/* pos 040d: 620 */    0xE8 /* 'h' -> */,
+/* pos 040e: 621 */    0xE5 /* 'e' -> */,
+/* pos 040f: 622 */    0xEE /* 'n' -> */,
+/* pos 0410: 623 */    0xF4 /* 't' -> */,
+/* pos 0411: 624 */    0xE9 /* 'i' -> */,
+/* pos 0412: 625 */    0xE3 /* 'c' -> */,
+/* pos 0413: 626 */    0xE1 /* 'a' -> */,
+/* pos 0414: 627 */    0xF4 /* 't' -> */,
+/* pos 0415: 628 */    0xE5 /* 'e' -> */,
+/* pos 0416: 629 */    0xBA /* ':' -> */,
+/* pos 0417: 630 */    0x00, 0x48                  /* - terminal marker 72 - */,
+/* pos 0419: 631 */    0xF4 /* 't' -> */,
+/* pos 041a: 632 */    0xE3 /* 'c' -> */,
+/* pos 041b: 633 */    0xE8 /* 'h' -> */,
+/* pos 041c: 634 */    0x00, 0x49                  /* - terminal marker 73 - */,
+/* pos 041e: 635 */    0xF4 /* 't' -> */,
+/* pos 041f: 636 */    0x00, 0x4A                  /* - terminal marker 74 - */,
+/* pos 0421: 637 */    0xEC /* 'l' -> */,
+/* pos 0422: 638 */    0xE5 /* 'e' -> */,
+/* pos 0423: 639 */    0xF4 /* 't' -> */,
+/* pos 0424: 640 */    0xE5 /* 'e' -> */,
+/* pos 0425: 641 */    0x00, 0x4B                  /* - terminal marker 75 - */,
+/* pos 0427: 642 */    0xE9 /* 'i' -> */,
+/* pos 0428: 643 */    0xAD /* '-' -> */,
+/* pos 0429: 644 */    0xE1 /* 'a' -> */,
+/* pos 042a: 645 */    0xF2 /* 'r' -> */,
+/* pos 042b: 646 */    0xE7 /* 'g' -> */,
+/* pos 042c: 647 */    0xF3 /* 's' -> */,
+/* pos 042d: 648 */    0x00, 0x4C                  /* - terminal marker 76 - */,
+/* pos 042f: 649 */    0x00, 0x4D                  /* - terminal marker 77 - */,
+/* pos 0431: 650 */    0xAD /* '-' -> */,
+/* pos 0432: 651 */    0xF2 /* 'r' -> */,
+/* pos 0433: 652 */    0xE5 /* 'e' -> */,
+/* pos 0434: 653 */    0xE1 /* 'a' -> */,
+/* pos 0435: 654 */    0xEC /* 'l' -> */,
 /* pos 0436: 655 */    0xAD /* '-' -> */,
-/* pos 0437: 656 */    0xF2 /* 'r' -> */,
-/* pos 0438: 657 */    0xE5 /* 'e' -> */,
-/* pos 0439: 658 */    0xE1 /* 'a' -> */,
-/* pos 043a: 659 */    0xEC /* 'l' -> */,
-/* pos 043b: 660 */    0xAD /* '-' -> */,
-/* pos 043c: 661 */    0xE9 /* 'i' -> */,
-/* pos 043d: 662 */    0xF0 /* 'p' -> */,
-/* pos 043e: 663 */    0xBA /* ':' -> */,
-/* pos 043f: 664 */    0x00, 0x4E                  /* - terminal marker 78 - */,
-/* pos 0441: 665 */    0xA0 /* ' ' -> */,
-/* pos 0442: 666 */    0x00, 0x4F                  /* - terminal marker 79 - */,
-/* total size 1092 bytes */
+/* pos 0437: 656 */    0xE9 /* 'i' -> */,
+/* pos 0438: 657 */    0xF0 /* 'p' -> */,
+/* pos 0439: 658 */    0xBA /* ':' -> */,
+/* pos 043a: 659 */    0x00, 0x4E                  /* - terminal marker 78 - */,
+/* pos 043c: 660 */    0xA0 /* ' ' -> */,
+/* pos 043d: 661 */    0x00, 0x4F                  /* - terminal marker 79 - */,
+/* total size 1087 bytes */
diff --git a/lib/lws-plat-unix.c b/lib/lws-plat-unix.c
index 880ad85da8aeafed43e17d49374d47aab4c70346..abfe72cc50f43144a007b885baade7f781b27977 100644
--- a/lib/lws-plat-unix.c
+++ b/lib/lws-plat-unix.c
@@ -440,12 +440,14 @@ next:
 #endif
 
 
+#if 0
 static void
 sigabrt_handler(int x)
 {
 	printf("%s\n", __func__);
 	//*(char *)0 = 0;
 }
+#endif
 
 LWS_VISIBLE int
 lws_plat_context_early_init(void)
@@ -460,7 +462,7 @@ lws_plat_context_early_init(void)
 
 	signal(SIGPIPE, SIG_IGN);
 
-	signal(SIGABRT, sigabrt_handler);
+//	signal(SIGABRT, sigabrt_handler);
 
 	return 0;
 }
diff --git a/lib/output.c b/lib/output.c
index b527e9c53149a3950184ab33adbeaf34a11251c8..d23c3281474411744357c06bc57d40ab8a1b7219 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -560,7 +560,7 @@ LWS_VISIBLE int lws_serve_http_file_fragment(struct lws *wsi)
 	unsigned long amount;
 	int n, m;
 
-	while (!lws_send_pipe_choked(wsi)) {
+	while (wsi->http2_substream || !lws_send_pipe_choked(wsi)) {
 		if (wsi->trunc_len) {
 			if (lws_issue_raw(wsi, wsi->trunc_alloc +
 					  wsi->trunc_offset,
diff --git a/lib/pollfd.c b/lib/pollfd.c
index 7a4f17e489b8258ae222be84723e7df124601913..9168b9ed7babaf06ad0da5ac3193a6c68b6b44aa 100644
--- a/lib/pollfd.c
+++ b/lib/pollfd.c
@@ -43,6 +43,10 @@ _lws_change_pollfd(struct lws *wsi, int _and, int _or, struct lws_pollargs *pa)
 	pa->prev_events = pfd->events;
 	pa->events = pfd->events = (pfd->events & ~_and) | _or;
 
+
+	if (wsi->http2_substream)
+		return 0;
+
 	if (wsi->vhost->protocols[0].callback(wsi, LWS_CALLBACK_CHANGE_MODE_POLL_FD,
 					   wsi->user_space, (void *)pa, 0)) {
 		ret = -1;
@@ -76,6 +80,7 @@ _lws_change_pollfd(struct lws *wsi, int _and, int _or, struct lws_pollargs *pa)
 #if LWS_POSIX
 	pa_events = pa->prev_events != pa->events;
 #endif
+
 	if (pa_events) {
 
 		if (lws_plat_change_pollfd(context, wsi, pfd)) {
diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h
index 0684326d8efe2c68a408a785673028c989200426..cff846231cec89ef169bbde4d751b0e86e9b6cf6 100644
--- a/lib/private-libwebsockets.h
+++ b/lib/private-libwebsockets.h
@@ -392,6 +392,7 @@ enum lws_connection_states {
 enum http_version {
 	HTTP_VERSION_1_0,
 	HTTP_VERSION_1_1,
+	HTTP_VERSION_2
 };
 
 enum http_connection_type {
@@ -1216,6 +1217,7 @@ struct lws {
 #endif
 
 	unsigned int hdr_parsing_completed:1;
+	unsigned int http2_substream:1;
 	unsigned int listener:1;
 	unsigned int user_space_externally_allocated:1;
 	unsigned int socket_is_permanently_unusable:1;
@@ -1562,7 +1564,7 @@ lws_ssl_destroy(struct lws_vhost *vhost);
 
 #ifdef LWS_USE_HTTP2
 LWS_EXTERN void
-lws_context_init_http2_ssl(struct lws_context *context);
+lws_context_init_http2_ssl(struct lws_vhost *vhost);
 #else
 #define lws_context_init_http2_ssl(_a)
 #endif
diff --git a/lib/server.c b/lib/server.c
index b28c9bbaac05b1a86e5c30551584b09dc816c41a..aca8ad79fcfbbdc9fad398be059d6d4fb7e753f6 100644
--- a/lib/server.c
+++ b/lib/server.c
@@ -359,37 +359,41 @@ lws_http_action(struct lws *wsi)
 		wsi->u.http.content_length = atoi(content_length_str);
 	}
 
-	/* http_version? Default to 1.0, override with token: */
-	request_version = HTTP_VERSION_1_0;
-
-	/* Works for single digit HTTP versions. : */
-	http_version_len = lws_hdr_total_length(wsi, WSI_TOKEN_HTTP);
-	if (http_version_len > 7) {
-		lws_hdr_copy(wsi, http_version_str,
-				sizeof(http_version_str) - 1, WSI_TOKEN_HTTP);
-		if (http_version_str[5] == '1' && http_version_str[7] == '1')
-			request_version = HTTP_VERSION_1_1;
-	}
-	wsi->u.http.request_version = request_version;
+	if (wsi->http2_substream) {
+		wsi->u.http.request_version = HTTP_VERSION_2;
+	} else {
+		/* http_version? Default to 1.0, override with token: */
+		request_version = HTTP_VERSION_1_0;
+
+		/* Works for single digit HTTP versions. : */
+		http_version_len = lws_hdr_total_length(wsi, WSI_TOKEN_HTTP);
+		if (http_version_len > 7) {
+			lws_hdr_copy(wsi, http_version_str,
+					sizeof(http_version_str) - 1, WSI_TOKEN_HTTP);
+			if (http_version_str[5] == '1' && http_version_str[7] == '1')
+				request_version = HTTP_VERSION_1_1;
+		}
+		wsi->u.http.request_version = request_version;
 
-	/* HTTP/1.1 defaults to "keep-alive", 1.0 to "close" */
-	if (request_version == HTTP_VERSION_1_1)
-		connection_type = HTTP_CONNECTION_KEEP_ALIVE;
-	else
-		connection_type = HTTP_CONNECTION_CLOSE;
-
-	/* Override default if http "Connection:" header: */
-	if (lws_hdr_total_length(wsi, WSI_TOKEN_CONNECTION)) {
-		lws_hdr_copy(wsi, http_conn_str, sizeof(http_conn_str) - 1,
-			     WSI_TOKEN_CONNECTION);
-		http_conn_str[sizeof(http_conn_str) - 1] = '\0';
-		if (!strcasecmp(http_conn_str, "keep-alive"))
+		/* HTTP/1.1 defaults to "keep-alive", 1.0 to "close" */
+		if (request_version == HTTP_VERSION_1_1)
 			connection_type = HTTP_CONNECTION_KEEP_ALIVE;
 		else
-			if (!strcasecmp(http_conn_str, "close"))
-				connection_type = HTTP_CONNECTION_CLOSE;
+			connection_type = HTTP_CONNECTION_CLOSE;
+
+		/* Override default if http "Connection:" header: */
+		if (lws_hdr_total_length(wsi, WSI_TOKEN_CONNECTION)) {
+			lws_hdr_copy(wsi, http_conn_str, sizeof(http_conn_str) - 1,
+				     WSI_TOKEN_CONNECTION);
+			http_conn_str[sizeof(http_conn_str) - 1] = '\0';
+			if (!strcasecmp(http_conn_str, "keep-alive"))
+				connection_type = HTTP_CONNECTION_KEEP_ALIVE;
+			else
+				if (!strcasecmp(http_conn_str, "close"))
+					connection_type = HTTP_CONNECTION_CLOSE;
+		}
+		wsi->u.http.connection_type = connection_type;
 	}
-	wsi->u.http.connection_type = connection_type;
 
 	n = wsi->protocol->callback(wsi, LWS_CALLBACK_FILTER_HTTP_CONNECTION,
 				    wsi->user_space, uri_ptr, uri_len);
@@ -479,6 +483,8 @@ lws_http_action(struct lws *wsi)
 				"http://", "https://"
 			};
 
+			// lwsl_err("inin '%s'\n", s);
+
 			if (!lws_hdr_total_length(wsi, WSI_TOKEN_HOST))
 				goto bail_nuke_ah;
 			if (lws_add_http_header_status(wsi, 301, &p, end))
@@ -550,7 +556,7 @@ lws_http_action(struct lws *wsi)
 		if (!s)
 			s = "index.html";
 
-
+			// lwsl_err("okok\n");
 
 		n = lws_http_serve(wsi, s, hit->origin);
 	} else
@@ -632,8 +638,8 @@ lws_handshake_server(struct lws *wsi, unsigned char **buf, size_t len)
 			}
 #ifdef LWS_USE_HTTP2
 			if (!strcasecmp(lws_hdr_simple_ptr(wsi, WSI_TOKEN_UPGRADE),
-					"h2c-14")) {
-				lwsl_info("Upgrade to h2c-14\n");
+					"h2c")) {
+				lwsl_info("Upgrade to h2c\n");
 				goto upgrade_h2c;
 			}
 #endif
diff --git a/lib/ssl-http2.c b/lib/ssl-http2.c
index f1344c23bc5c7d408fccceca205a14b4835968fc..f03ee602ada6655a04fa1cc2c10882419aaaabef 100644
--- a/lib/ssl-http2.c
+++ b/lib/ssl-http2.c
@@ -87,16 +87,16 @@ alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,
 #endif
 
 LWS_VISIBLE void
-lws_context_init_http2_ssl(struct lws_context *context)
+lws_context_init_http2_ssl(struct lws_vhost *vhost)
 {
 #if OPENSSL_VERSION_NUMBER >= 0x10002000L
-	static struct alpn_ctx protos = { (unsigned char *)"\x05h2-14"
+	static struct alpn_ctx protos = { (unsigned char *)"\x02h2"
 					  "\x08http/1.1", 6 + 9 };
 
-	SSL_CTX_set_next_protos_advertised_cb(context->ssl_ctx, npn_cb, &protos);
+	SSL_CTX_set_next_protos_advertised_cb(vhost->ssl_ctx, npn_cb, &protos);
 
 	// ALPN selection callback
-	SSL_CTX_set_alpn_select_cb(context->ssl_ctx, alpn_cb, &protos);
+	SSL_CTX_set_alpn_select_cb(vhost->ssl_ctx, alpn_cb, &protos);
 	lwsl_notice(" HTTP2 / ALPN enabled\n");
 #else
 	lwsl_notice(
diff --git a/lib/ssl-server.c b/lib/ssl-server.c
index 55ff61bd58868e2f7ec04a45f88607fdef453dc2..f544fbe9ff2b00cab38701b5d8bdc297327bc2d2 100644
--- a/lib/ssl-server.c
+++ b/lib/ssl-server.c
@@ -366,7 +366,7 @@ lws_context_init_server_ssl(struct lws_context_creation_info *info,
 		 * If we're supporting HTTP2, initialize that
 		 */
 
-		lws_context_init_http2_ssl(context);
+		lws_context_init_http2_ssl(vhost);
 	}
 
 	return 0;
diff --git a/lib/ssl.c b/lib/ssl.c
index 1bb8e0c2b215308a8e481d18460a107efcd0d61d..b4722b3904bb1c4d8a77dd2de070fa850df6b744 100644
--- a/lib/ssl.c
+++ b/lib/ssl.c
@@ -98,8 +98,12 @@ lws_ssl_destroy(struct lws_vhost *vhost)
 
 #if (OPENSSL_VERSION_NUMBER < 0x01000000) || defined(USE_WOLFSSL)
 	ERR_remove_state(0);
+#else
+#if (OPENSSL_VERSION_NUMBER >= 0x10100005L)
+	ERR_remove_thread_state();
 #else
 	ERR_remove_thread_state(NULL);
+#endif
 #endif
 	ERR_free_strings();
 	EVP_cleanup();
@@ -442,8 +446,12 @@ lws_ssl_context_destroy(struct lws_context *context)
 {
 #if (OPENSSL_VERSION_NUMBER < 0x01000000) || defined(USE_WOLFSSL)
 	ERR_remove_state(0);
+#else
+#if (OPENSSL_VERSION_NUMBER >= 0x10100005L)
+	ERR_remove_thread_state();
 #else
 	ERR_remove_thread_state(NULL);
+#endif
 #endif
 	ERR_free_strings();
 	EVP_cleanup();
diff --git a/lwsws/main.c b/lwsws/main.c
index 24fc31d1bf9f0d808705f96a00cb453bbf88792b..8d84552b84cbdc701ee146bb76ef9fc44773d74c 100644
--- a/lwsws/main.c
+++ b/lwsws/main.c
@@ -133,6 +133,7 @@ int main(int argc, char **argv)
 			#ifndef _WIN32
 			syslog_options &= ~LOG_PERROR;
 			#endif
+			printf("Daemonizing...\n");
 			break;
 #endif
 		case 'd':
@@ -159,6 +160,8 @@ int main(int argc, char **argv)
 		fprintf(stderr, "Failed to daemonize\n");
 		return 10;
 	}
+	if (daemonize)
+		lwsl_notice("Daemonized\n");
 #endif
 
 	signal(SIGINT, sighandler);
diff --git a/plugins/protocol_dumb_increment.c b/plugins/protocol_dumb_increment.c
index f26e5936f8c11d3551e7446d59bad10b5f5acbc3..711251b506f1ac3fd7d791545d90cecbc568e5d3 100644
--- a/plugins/protocol_dumb_increment.c
+++ b/plugins/protocol_dumb_increment.c
@@ -18,6 +18,7 @@
  * Public Domain.
  */
 #include "../lib/libwebsockets.h"
+#include <string.h>
 
 struct per_vhost_data__dumb_increment {
 	uv_timer_t timeout_watcher;
diff --git a/plugins/protocol_lws_mirror.c b/plugins/protocol_lws_mirror.c
index ba656603327086c553881800ba49cd171a1d8b20..05614db9ade8194257eff53a5df26fe7658166d1 100644
--- a/plugins/protocol_lws_mirror.c
+++ b/plugins/protocol_lws_mirror.c
@@ -18,6 +18,7 @@
  * Public Domain.
  */
 #include "../lib/libwebsockets.h"
+#include <string.h>
 
 /* lws-mirror_protocol */
 
diff --git a/plugins/protocol_lws_status.c b/plugins/protocol_lws_status.c
index fabaf6d0b351dbb169a6cd76f728cd5e7270059f..359fd9408c0d94ee10bdabd1eb8b895dd9253387 100644
--- a/plugins/protocol_lws_status.c
+++ b/plugins/protocol_lws_status.c
@@ -19,6 +19,7 @@
  */
 #include "../lib/libwebsockets.h"
 #include <time.h>
+#include <string.h>
 
 struct per_session_data__lws_status {
 	struct per_session_data__lws_status *list;