]> granicus.if.org Git - re2c/commitdiff
Added benchmarks to test suite.
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 16 Aug 2017 17:43:13 +0000 (18:43 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 16 Aug 2017 17:43:13 +0000 (18:43 +0100)
re2c/test/tags/bench_http_rfc7230.i.c [new file with mode: 0644]
re2c/test/tags/bench_http_rfc7230.i.re [new file with mode: 0644]
re2c/test/tags/bench_http_simple.i.c [new file with mode: 0644]
re2c/test/tags/bench_http_simple.i.re [new file with mode: 0644]
re2c/test/tags/bench_uri_rfc3986.i.c [new file with mode: 0644]
re2c/test/tags/bench_uri_rfc3986.i.re [new file with mode: 0644]
re2c/test/tags/bench_uri_simple.i.c [new file with mode: 0644]
re2c/test/tags/bench_uri_simple.i.re [new file with mode: 0644]

diff --git a/re2c/test/tags/bench_http_rfc7230.i.c b/re2c/test/tags/bench_http_rfc7230.i.c
new file mode 100644 (file)
index 0000000..a94637f
--- /dev/null
@@ -0,0 +1,13288 @@
+/* Generated by re2c */
+#include <assert.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct taglist_t {
+    struct taglist_t *pred;
+    long dist;
+} taglist_t;
+
+typedef struct taglistpool_t {
+    taglist_t *head;
+    taglist_t *next;
+    taglist_t *last;
+} taglistpool_t;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    char *yyt1;
+char *yyt10;
+char *yyt11;
+char *yyt12;
+char *yyt13;
+char *yyt14;
+char *yyt15;
+char *yyt16;
+char *yyt17;
+char *yyt18;
+char *yyt19;
+char *yyt2;
+char *yyt20;
+char *yyt21;
+char *yyt22;
+char *yyt23;
+char *yyt24;
+char *yyt25;
+char *yyt26;
+char *yyt27;
+char *yyt28;
+char *yyt29;
+char *yyt3;
+char *yyt30;
+char *yyt31;
+char *yyt32;
+char *yyt33;
+char *yyt34;
+char *yyt35;
+char *yyt4;
+char *yyt5;
+char *yyt6;
+char *yyt7;
+char *yyt8;
+char *yyt9;
+
+    taglist_t *yyt36;
+taglist_t *yyt37;
+taglist_t *yyt38;
+taglist_t *yyt39;
+taglist_t *yyt40;
+taglist_t *yyt41;
+taglist_t *yyt42;
+
+    taglistpool_t tlp;
+    int eof;
+} input_t;
+
+static void taglistpool_clear(taglistpool_t *tlp, input_t *in)
+{
+    tlp->next = tlp->head;
+    in->yyt36 = 0;
+in->yyt37 = 0;
+in->yyt38 = 0;
+in->yyt39 = 0;
+in->yyt40 = 0;
+in->yyt41 = 0;
+in->yyt42 = 0;
+
+}
+
+static void taglistpool_init(taglistpool_t *tlp)
+{
+    static const unsigned size = 1024 * 1024;
+    tlp->head = (taglist_t*)malloc(size * sizeof(taglist_t));
+    tlp->next = tlp->head;
+    tlp->last = tlp->head + size;
+}
+
+static void taglistpool_free(taglistpool_t *tlp)
+{
+    free(tlp->head);
+    tlp->head = tlp->next = tlp->last = NULL;
+}
+
+static taglist_t *taglistpool_next(taglistpool_t *tlp)
+{
+    if (tlp->next < tlp->last) {
+        return tlp->next++;
+    }
+
+    const unsigned size = tlp->last - tlp->head;
+    taglist_t *head = (taglist_t*)malloc(2 * size * sizeof(taglist_t));
+    memcpy(head, tlp->head, size * sizeof(taglist_t));
+    free(tlp->head);
+    tlp->head = head;
+    tlp->next = head + size;
+    tlp->last = head + size * 2;
+    return tlp->next++;
+}
+
+static void taglist(taglist_t **ptl, const char *b, const char *t, taglistpool_t *tlp)
+{
+    taglist_t *tl = taglistpool_next(tlp);
+    tl->pred = *ptl;
+    tl->dist = t - b;
+    *ptl = tl;
+}
+
+#define YYMAXFILL 66
+
+static const size_t SIZE = 4096;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    in->yyt1 = 0;
+in->yyt10 = 0;
+in->yyt11 = 0;
+in->yyt12 = 0;
+in->yyt13 = 0;
+in->yyt14 = 0;
+in->yyt15 = 0;
+in->yyt16 = 0;
+in->yyt17 = 0;
+in->yyt18 = 0;
+in->yyt19 = 0;
+in->yyt2 = 0;
+in->yyt20 = 0;
+in->yyt21 = 0;
+in->yyt22 = 0;
+in->yyt23 = 0;
+in->yyt24 = 0;
+in->yyt25 = 0;
+in->yyt26 = 0;
+in->yyt27 = 0;
+in->yyt28 = 0;
+in->yyt29 = 0;
+in->yyt3 = 0;
+in->yyt30 = 0;
+in->yyt31 = 0;
+in->yyt32 = 0;
+in->yyt33 = 0;
+in->yyt34 = 0;
+in->yyt35 = 0;
+in->yyt4 = 0;
+in->yyt5 = 0;
+in->yyt6 = 0;
+in->yyt7 = 0;
+in->yyt8 = 0;
+in->yyt9 = 0;
+
+    in->yyt36 = 0;
+in->yyt37 = 0;
+in->yyt38 = 0;
+in->yyt39 = 0;
+in->yyt40 = 0;
+in->yyt41 = 0;
+in->yyt42 = 0;
+
+    taglistpool_init(&in->tlp);
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    fclose(in->file);
+    free(in->buf);
+    taglistpool_free(&in->tlp);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    if (in->yyt1) in->yyt1 -= free;
+if (in->yyt10) in->yyt10 -= free;
+if (in->yyt11) in->yyt11 -= free;
+if (in->yyt12) in->yyt12 -= free;
+if (in->yyt13) in->yyt13 -= free;
+if (in->yyt14) in->yyt14 -= free;
+if (in->yyt15) in->yyt15 -= free;
+if (in->yyt16) in->yyt16 -= free;
+if (in->yyt17) in->yyt17 -= free;
+if (in->yyt18) in->yyt18 -= free;
+if (in->yyt19) in->yyt19 -= free;
+if (in->yyt2) in->yyt2 -= free;
+if (in->yyt20) in->yyt20 -= free;
+if (in->yyt21) in->yyt21 -= free;
+if (in->yyt22) in->yyt22 -= free;
+if (in->yyt23) in->yyt23 -= free;
+if (in->yyt24) in->yyt24 -= free;
+if (in->yyt25) in->yyt25 -= free;
+if (in->yyt26) in->yyt26 -= free;
+if (in->yyt27) in->yyt27 -= free;
+if (in->yyt28) in->yyt28 -= free;
+if (in->yyt29) in->yyt29 -= free;
+if (in->yyt3) in->yyt3 -= free;
+if (in->yyt30) in->yyt30 -= free;
+if (in->yyt31) in->yyt31 -= free;
+if (in->yyt32) in->yyt32 -= free;
+if (in->yyt33) in->yyt33 -= free;
+if (in->yyt34) in->yyt34 -= free;
+if (in->yyt35) in->yyt35 -= free;
+if (in->yyt4) in->yyt4 -= free;
+if (in->yyt5) in->yyt5 -= free;
+if (in->yyt6) in->yyt6 -= free;
+if (in->yyt7) in->yyt7 -= free;
+if (in->yyt8) in->yyt8 -= free;
+if (in->yyt9) in->yyt9 -= free;
+
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void print_headers(const char *tok,
+    const taglist_t *h1, const taglist_t *h2,
+    const taglist_t *h3, const taglist_t *h4,
+    const taglist_t *h5)
+{
+    if (!h1 || !h2 || !h3 || !h4 || !h5) {
+        assert(!h1 && !h2 && !h3 && !h4 && !h5);
+        return;
+    }
+    print_headers(tok, h1->pred, h2->pred, h3->pred, h4->pred, h5->pred);
+    printf("%.*s%.*s%.*s%.*s\n",
+        (int)(h2->dist - h1->dist), tok + h1->dist,
+        (int)(h3->dist - h2->dist), tok + h2->dist,
+        (int)(h4->dist - h3->dist), tok + h3->dist,
+        (int)(h5->dist - h4->dist), tok + h4->dist);
+}
+
+#define YYCTYPE        char
+#define YYCURSOR       in->cur
+#define YYMARKER       in->mar
+#define YYLIMIT        in->lim
+#define YYMTAGP(tl)    taglist(&tl, in->tok, in->cur, &in->tlp)
+#define YYMTAGN(tl)    taglist(&tl, in->tok, NULL, &in->tlp)
+#define YYFILL(n)      if (fill(in, n) != 0) return 2;
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char *of, *au, *at,
+        *hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3,
+        *hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4,
+        *r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3,
+        *r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4;
+    taglist_t *h1, *h2, *h3, *h4, *h5;
+    long c, t;
+
+    c = 0; t = 0;
+    of = au = at
+        = hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3
+        = hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4
+        = r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3
+        = r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL;
+loop:
+    in->tok = in->cur;
+
+{
+       YYCTYPE yych;
+       if ((YYLIMIT - YYCURSOR) < 66) YYFILL(66);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:      goto yy2;
+       case '\n':      goto yy6;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               in->yyt1 = YYCURSOR;
+               goto yy8;
+       case 'H':
+               in->yyt1 = in->yyt30 = YYCURSOR;
+               goto yy9;
+       default:        goto yy4;
+       }
+yy2:
+       ++YYCURSOR;
+       { *count = c; *total = t; return 0; }
+yy4:
+       ++YYCURSOR;
+yy5:
+       { return 1; }
+yy6:
+       ++YYCURSOR;
+       { goto loop; }
+yy8:
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case ' ':
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy13;
+       default:        goto yy5;
+       }
+yy9:
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case ' ':
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy13;
+       case 'T':       goto yy14;
+       default:        goto yy5;
+       }
+yy10:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt3 = in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case '_':
+       case '~':
+               in->yyt4 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt5 = in->yyt11 = YYCURSOR;
+               goto yy16;
+       case '%':
+               in->yyt4 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt5 = in->yyt11 = YYCURSOR;
+               goto yy18;
+       case '/':
+               in->yyt27 = YYCURSOR;
+               goto yy19;
+       case ':':
+               in->yyt4 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt5 = in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy21;
+       case '?':
+               in->yyt27 = in->yyt28 = YYCURSOR;
+               goto yy22;
+       case '@':
+               in->yyt3 = in->yyt5 = in->yyt10 = YYCURSOR;
+               goto yy23;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+               in->yyt4 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt5 = in->yyt11 = in->yyt14 = YYCURSOR;
+               goto yy24;
+       case '[':
+               in->yyt4 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt11 = YYCURSOR;
+               goto yy26;
+       default:        goto yy11;
+       }
+yy11:
+       YYCURSOR = YYMARKER;
+       goto yy5;
+yy12:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 62) YYFILL(62);
+       yych = *YYCURSOR;
+yy13:
+       switch (yych) {
+       case ' ':
+               in->yyt2 = YYCURSOR;
+               goto yy10;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy12;
+       default:        goto yy11;
+       }
+yy14:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy27;
+       default:        goto yy13;
+       }
+yy15:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'H':
+               in->yyt8 = YYCURSOR;
+               goto yy28;
+       default:        goto yy11;
+       }
+yy16:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 61) YYFILL(61);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy16;
+       case '%':       goto yy18;
+       case ':':
+               in->yyt12 = YYCURSOR;
+               goto yy21;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy23;
+       default:        goto yy11;
+       }
+yy18:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy29;
+       default:        goto yy11;
+       }
+yy19:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt29 = NULL;
+               in->yyt28 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy19;
+       case '%':       goto yy30;
+       case '?':
+               in->yyt28 = YYCURSOR;
+               goto yy22;
+       default:        goto yy11;
+       }
+yy21:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = in->yyt13 = YYCURSOR;
+               goto yy15;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt13 = YYCURSOR;
+               goto yy34;
+       default:        goto yy32;
+       }
+yy22:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = NULL;
+               in->yyt7 = in->yyt29 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt29 = YYCURSOR;
+               goto yy36;
+       case '%':
+               in->yyt29 = YYCURSOR;
+               goto yy38;
+       default:        goto yy11;
+       }
+yy23:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt11 = YYCURSOR;
+               goto yy39;
+       case '%':
+               in->yyt11 = YYCURSOR;
+               goto yy41;
+       case ':':
+               in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy42;
+       case '[':
+               in->yyt4 = in->yyt5;
+               in->yyt11 = YYCURSOR;
+               goto yy26;
+       default:        goto yy11;
+       }
+yy24:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 65) YYFILL(65);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case ',':
+       case ';':
+       case '=':
+       case '_':
+       case '~':       goto yy16;
+       case '%':       goto yy18;
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy24;
+       case ':':
+               in->yyt12 = in->yyt15 = YYCURSOR;
+               goto yy43;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy23;
+       default:        goto yy11;
+       }
+yy26:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy44;
+       case ':':       goto yy45;
+       case 'v':       goto yy46;
+       default:        goto yy11;
+       }
+yy27:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'P':       goto yy47;
+       default:        goto yy13;
+       }
+yy28:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy48;
+       default:        goto yy11;
+       }
+yy29:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy16;
+       default:        goto yy11;
+       }
+yy30:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy49;
+       default:        goto yy11;
+       }
+yy31:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 60) YYFILL(60);
+       yych = *YYCURSOR;
+yy32:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy31;
+       case '%':       goto yy33;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy23;
+       default:        goto yy11;
+       }
+yy33:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy50;
+       default:        goto yy11;
+       }
+yy34:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 60) YYFILL(60);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy31;
+       case '%':       goto yy33;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy34;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy23;
+       default:        goto yy11;
+       }
+yy36:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = NULL;
+               in->yyt7 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy36;
+       case '%':       goto yy38;
+       default:        goto yy11;
+       }
+yy38:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy51;
+       default:        goto yy11;
+       }
+yy39:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy39;
+       case '%':       goto yy41;
+       case ':':
+               in->yyt12 = YYCURSOR;
+               goto yy42;
+       default:        goto yy11;
+       }
+yy41:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy52;
+       default:        goto yy11;
+       }
+yy42:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = in->yyt13 = YYCURSOR;
+               goto yy15;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt13 = YYCURSOR;
+               goto yy53;
+       default:        goto yy11;
+       }
+yy43:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = in->yyt13 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt24 = YYCURSOR;
+               goto yy55;
+       case '%':
+               in->yyt24 = YYCURSOR;
+               goto yy57;
+       case '/':
+               in->yyt24 = YYCURSOR;
+               goto yy58;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt13 = in->yyt24 = YYCURSOR;
+               goto yy59;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt24 = in->yyt25 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt10 = in->yyt24 = YYCURSOR;
+               goto yy62;
+       default:        goto yy11;
+       }
+yy44:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy63;
+       case ':':       goto yy64;
+       default:        goto yy11;
+       }
+yy45:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy65;
+       default:        goto yy11;
+       }
+yy46:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy11;
+       default:        goto yy67;
+       }
+yy47:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy68;
+       default:        goto yy13;
+       }
+yy48:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy69;
+       default:        goto yy11;
+       }
+yy49:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy19;
+       default:        goto yy11;
+       }
+yy50:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy31;
+       default:        goto yy11;
+       }
+yy51:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy36;
+       default:        goto yy11;
+       }
+yy52:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy39;
+       default:        goto yy11;
+       }
+yy53:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = YYCURSOR;
+               goto yy15;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy53;
+       default:        goto yy11;
+       }
+yy55:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 60) YYFILL(60);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy55;
+       case '%':       goto yy57;
+       case '/':       goto yy70;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy62;
+       default:        goto yy11;
+       }
+yy57:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy72;
+       default:        goto yy11;
+       }
+yy58:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy74;
+       default:        goto yy71;
+       }
+yy59:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 60) YYFILL(60);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy55;
+       case '%':       goto yy57;
+       case '/':       goto yy70;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy59;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt10 = YYCURSOR;
+               goto yy62;
+       default:        goto yy11;
+       }
+yy61:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt6 = in->yyt26 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt26 = YYCURSOR;
+               goto yy75;
+       case '%':
+               in->yyt26 = YYCURSOR;
+               goto yy77;
+       default:        goto yy11;
+       }
+yy62:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt11 = YYCURSOR;
+               goto yy78;
+       case '%':
+               in->yyt11 = YYCURSOR;
+               goto yy80;
+       case ':':
+               in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy81;
+       case '[':
+               in->yyt4 = in->yyt5;
+               in->yyt11 = YYCURSOR;
+               goto yy26;
+       default:        goto yy79;
+       }
+yy63:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy82;
+       case ':':       goto yy64;
+       default:        goto yy11;
+       }
+yy64:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy83;
+       case ':':       goto yy84;
+       default:        goto yy11;
+       }
+yy65:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy85;
+       case '1':       goto yy86;
+       case '2':       goto yy87;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy88;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy89;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy66:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+yy67:
+       switch (yych) {
+       case '.':       goto yy91;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy66;
+       default:        goto yy11;
+       }
+yy68:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy92;
+       default:        goto yy11;
+       }
+yy69:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'P':       goto yy93;
+       default:        goto yy11;
+       }
+yy70:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+yy71:
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy70;
+       case '%':       goto yy73;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy72:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy55;
+       default:        goto yy11;
+       }
+yy73:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy94;
+       default:        goto yy11;
+       }
+yy74:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt16 = in->yyt17 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt16 = in->yyt17 = NULL;
+               in->yyt3 = in->yyt18 = YYCURSOR;
+               goto yy95;
+       case '%':
+               in->yyt16 = in->yyt17 = NULL;
+               in->yyt3 = in->yyt18 = YYCURSOR;
+               goto yy97;
+       case '/':
+               in->yyt16 = in->yyt17 = in->yyt20 = in->yyt21 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case ':':
+               in->yyt16 = in->yyt17 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = YYCURSOR;
+               goto yy100;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt3 = in->yyt17 = YYCURSOR;
+               goto yy101;
+       case '[':
+               in->yyt16 = in->yyt17 = NULL;
+               in->yyt18 = YYCURSOR;
+               goto yy102;
+       default:        goto yy11;
+       }
+yy75:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt6 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy75;
+       case '%':       goto yy77;
+       default:        goto yy11;
+       }
+yy77:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy103;
+       default:        goto yy11;
+       }
+yy78:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+       yych = *YYCURSOR;
+yy79:
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt12 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy78;
+       case '%':       goto yy80;
+       case '/':
+       case '@':       goto yy70;
+       case ':':
+               in->yyt12 = YYCURSOR;
+               goto yy81;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy80:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy104;
+       default:        goto yy11;
+       }
+yy81:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = in->yyt13 = YYCURSOR;
+               goto yy15;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt13 = YYCURSOR;
+               goto yy105;
+       default:        goto yy71;
+       }
+yy82:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy107;
+       case ':':       goto yy64;
+       default:        goto yy11;
+       }
+yy83:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy108;
+       case ':':       goto yy109;
+       default:        goto yy11;
+       }
+yy84:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy110;
+       case '1':       goto yy111;
+       case '2':       goto yy112;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy113;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy114;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy85:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy116;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy86:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy118;
+       case ':':       goto yy117;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy116;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy87:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy118;
+       case '5':       goto yy119;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy120;
+       case ':':       goto yy117;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy116;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy88:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy120;
+       case ':':       goto yy117;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy116;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy89:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy116;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy90:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt5 = in->yyt6 = in->yyt7 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt12 = YYCURSOR;
+               goto yy15;
+       case ':':
+               in->yyt5 = in->yyt4;
+               in->yyt12 = YYCURSOR;
+               goto yy42;
+       default:        goto yy11;
+       }
+yy91:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ']':       goto yy11;
+       default:        goto yy122;
+       }
+yy92:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy123;
+       default:        goto yy11;
+       }
+yy93:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy124;
+       default:        goto yy11;
+       }
+yy94:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy70;
+       default:        goto yy11;
+       }
+yy95:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 62) YYFILL(62);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy95;
+       case '%':       goto yy97;
+       case '/':
+               in->yyt20 = in->yyt21 = NULL;
+               in->yyt19 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case ':':
+               in->yyt19 = YYCURSOR;
+               goto yy100;
+       case '?':
+               in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt17 = YYCURSOR;
+               goto yy101;
+       default:        goto yy11;
+       }
+yy97:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       default:        goto yy11;
+       }
+yy98:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy98;
+       case '%':       goto yy126;
+       case '?':
+               in->yyt24 = in->yyt25 = NULL;
+               in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy100:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '/':
+               in->yyt20 = in->yyt21 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt20 = YYCURSOR;
+               goto yy130;
+       case '?':
+               in->yyt24 = in->yyt25 = NULL;
+               in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy128;
+       }
+yy101:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt16 = in->yyt3;
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt18 = YYCURSOR;
+               goto yy132;
+       case '%':
+               in->yyt18 = YYCURSOR;
+               goto yy134;
+       case '/':
+               in->yyt16 = in->yyt3;
+               in->yyt20 = in->yyt21 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case ':':
+               in->yyt18 = in->yyt19 = YYCURSOR;
+               goto yy135;
+       case '?':
+               in->yyt16 = in->yyt3;
+               in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = NULL;
+               in->yyt18 = in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       case '[':
+               in->yyt16 = in->yyt3;
+               in->yyt18 = YYCURSOR;
+               goto yy102;
+       default:        goto yy11;
+       }
+yy102:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy136;
+       case ':':       goto yy137;
+       case 'v':       goto yy138;
+       default:        goto yy11;
+       }
+yy103:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy75;
+       default:        goto yy11;
+       }
+yy104:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy78;
+       default:        goto yy11;
+       }
+yy105:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = in->yyt5;
+               in->yyt6 = in->yyt7 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt5 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy70;
+       case '%':       goto yy73;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy105;
+       case '?':
+               in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = NULL;
+               in->yyt25 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy107:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy64;
+       default:        goto yy11;
+       }
+yy108:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy139;
+       case ':':       goto yy109;
+       default:        goto yy11;
+       }
+yy109:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy140;
+       case ':':       goto yy141;
+       default:        goto yy11;
+       }
+yy110:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy111:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy144;
+       case ':':       goto yy143;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy112:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy144;
+       case '5':       goto yy145;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy146;
+       case ':':       goto yy143;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy113:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy146;
+       case ':':       goto yy143;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy114:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy115:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy147;
+       case '1':       goto yy148;
+       case '2':       goto yy149;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy150;
+       default:        goto yy11;
+       }
+yy116:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy151;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy117:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy110;
+       case '1':       goto yy111;
+       case '2':       goto yy112;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy113;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy114;
+       default:        goto yy11;
+       }
+yy118:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy152;
+       case ':':       goto yy117;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy151;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy119:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy152;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy151;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy120:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy151;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy121:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+       yych = *YYCURSOR;
+yy122:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy121;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy123:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy153;
+       default:        goto yy11;
+       }
+yy124:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy154;
+       default:        goto yy11;
+       }
+yy125:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy95;
+       default:        goto yy11;
+       }
+yy126:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy155;
+       default:        goto yy11;
+       }
+yy127:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 61) YYFILL(61);
+       yych = *YYCURSOR;
+yy128:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy127;
+       case '%':       goto yy129;
+       case '@':
+               in->yyt17 = YYCURSOR;
+               goto yy101;
+       default:        goto yy11;
+       }
+yy129:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy156;
+       default:        goto yy11;
+       }
+yy130:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 61) YYFILL(61);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy127;
+       case '%':       goto yy129;
+       case '/':
+               in->yyt21 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy130;
+       case '?':
+               in->yyt24 = in->yyt25 = NULL;
+               in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       case '@':
+               in->yyt17 = YYCURSOR;
+               goto yy101;
+       default:        goto yy11;
+       }
+yy132:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt16 = in->yyt3;
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy132;
+       case '%':       goto yy134;
+       case '/':
+               in->yyt16 = in->yyt3;
+               in->yyt20 = in->yyt21 = NULL;
+               in->yyt19 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case ':':
+               in->yyt19 = YYCURSOR;
+               goto yy135;
+       case '?':
+               in->yyt16 = in->yyt3;
+               in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy134:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy157;
+       default:        goto yy11;
+       }
+yy135:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt16 = in->yyt3;
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '/':
+               in->yyt16 = in->yyt3;
+               in->yyt20 = in->yyt21 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt20 = YYCURSOR;
+               goto yy158;
+       case '?':
+               in->yyt16 = in->yyt3;
+               in->yyt24 = in->yyt25 = NULL;
+               in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy136:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy160;
+       case ':':       goto yy161;
+       default:        goto yy11;
+       }
+yy137:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy162;
+       default:        goto yy11;
+       }
+yy138:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy11;
+       default:        goto yy164;
+       }
+yy139:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy165;
+       case ':':       goto yy109;
+       default:        goto yy11;
+       }
+yy140:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy166;
+       case ':':       goto yy167;
+       default:        goto yy11;
+       }
+yy141:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy168;
+       case '1':       goto yy169;
+       case '2':       goto yy170;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy171;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy172;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy142:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy173;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy143:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy168;
+       case '1':       goto yy169;
+       case '2':       goto yy170;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy171;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy172;
+       default:        goto yy11;
+       }
+yy144:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy174;
+       case ':':       goto yy143;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy173;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy145:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy174;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy173;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy146:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy173;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy147:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy175;
+       default:        goto yy11;
+       }
+yy148:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy175;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy150;
+       default:        goto yy11;
+       }
+yy149:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy175;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy150;
+       case '5':       goto yy176;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy147;
+       default:        goto yy11;
+       }
+yy150:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy175;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy147;
+       default:        goto yy11;
+       }
+yy151:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy177;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy152:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy177;
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy153:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt31 = YYCURSOR;
+               goto yy178;
+       default:        goto yy11;
+       }
+yy154:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy179;
+       default:        goto yy11;
+       }
+yy155:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy98;
+       default:        goto yy11;
+       }
+yy156:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy127;
+       default:        goto yy11;
+       }
+yy157:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy132;
+       default:        goto yy11;
+       }
+yy158:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt16 = in->yyt3;
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '/':
+               in->yyt16 = in->yyt3;
+               in->yyt21 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy158;
+       case '?':
+               in->yyt16 = in->yyt3;
+               in->yyt24 = in->yyt25 = NULL;
+               in->yyt21 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy160:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy180;
+       case ':':       goto yy161;
+       default:        goto yy11;
+       }
+yy161:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy181;
+       case ':':       goto yy182;
+       default:        goto yy11;
+       }
+yy162:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy183;
+       case '1':       goto yy184;
+       case '2':       goto yy185;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy186;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy187;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy163:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+yy164:
+       switch (yych) {
+       case '.':       goto yy189;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       default:        goto yy11;
+       }
+yy165:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy109;
+       default:        goto yy11;
+       }
+yy166:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy190;
+       case ':':       goto yy167;
+       default:        goto yy11;
+       }
+yy167:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy191;
+       case ':':       goto yy192;
+       default:        goto yy11;
+       }
+yy168:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy193;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy169:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy195;
+       case ':':       goto yy194;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy193;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy170:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy195;
+       case '5':       goto yy196;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy197;
+       case ':':       goto yy194;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy193;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy171:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy197;
+       case ':':       goto yy194;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy193;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy172:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy193;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy173:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy198;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy174:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy198;
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy175:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy199;
+       case '1':       goto yy200;
+       case '2':       goto yy201;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy202;
+       default:        goto yy11;
+       }
+yy176:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy175;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy147;
+       default:        goto yy11;
+       }
+yy177:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy117;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy178:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt32 = YYCURSOR;
+               goto yy203;
+       default:        goto yy11;
+       }
+yy179:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy204;
+       default:        goto yy11;
+       }
+yy180:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy205;
+       case ':':       goto yy161;
+       default:        goto yy11;
+       }
+yy181:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy206;
+       case ':':       goto yy207;
+       default:        goto yy11;
+       }
+yy182:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy208;
+       case '1':       goto yy209;
+       case '2':       goto yy210;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy211;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy212;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy183:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy214;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy184:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy216;
+       case ':':       goto yy215;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy214;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy185:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy216;
+       case '5':       goto yy217;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy218;
+       case ':':       goto yy215;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy214;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy186:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy218;
+       case ':':       goto yy215;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy214;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy187:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy214;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy188:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy15;
+       case '/':
+               in->yyt20 = in->yyt21 = NULL;
+               in->yyt19 = in->yyt22 = YYCURSOR;
+               goto yy98;
+       case ':':
+               in->yyt3 = in->yyt16;
+               in->yyt19 = YYCURSOR;
+               goto yy135;
+       case '?':
+               in->yyt20 = in->yyt21 = in->yyt24 = in->yyt25 = NULL;
+               in->yyt19 = in->yyt22 = in->yyt23 = YYCURSOR;
+               goto yy61;
+       default:        goto yy11;
+       }
+yy189:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ']':       goto yy11;
+       default:        goto yy220;
+       }
+yy190:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy221;
+       case ':':       goto yy167;
+       default:        goto yy11;
+       }
+yy191:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy222;
+       case ':':       goto yy223;
+       default:        goto yy11;
+       }
+yy192:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy224;
+       case '1':       goto yy225;
+       case '2':       goto yy226;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy227;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy228;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy193:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy229;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy194:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy224;
+       case '1':       goto yy225;
+       case '2':       goto yy226;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy227;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy228;
+       default:        goto yy11;
+       }
+yy195:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy230;
+       case ':':       goto yy194;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy229;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy196:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy230;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy229;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy197:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy229;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy198:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy143;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy199:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy231;
+       default:        goto yy11;
+       }
+yy200:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy231;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy202;
+       default:        goto yy11;
+       }
+yy201:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy231;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy202;
+       case '5':       goto yy232;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy199;
+       default:        goto yy11;
+       }
+yy202:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy231;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy199;
+       default:        goto yy11;
+       }
+yy203:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy233;
+       default:        goto yy11;
+       }
+yy204:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               in->yyt9 = YYCURSOR;
+               goto yy234;
+       default:        goto yy11;
+       }
+yy205:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy161;
+       default:        goto yy11;
+       }
+yy206:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy235;
+       case ':':       goto yy207;
+       default:        goto yy11;
+       }
+yy207:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ':':       goto yy237;
+       default:        goto yy11;
+       }
+yy208:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy238;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy209:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy240;
+       case ':':       goto yy239;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy238;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy210:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy240;
+       case '5':       goto yy241;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy242;
+       case ':':       goto yy239;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy238;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy211:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy242;
+       case ':':       goto yy239;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy238;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy212:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy238;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy213:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy243;
+       case '1':       goto yy244;
+       case '2':       goto yy245;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy246;
+       default:        goto yy11;
+       }
+yy214:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy247;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy215:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy208;
+       case '1':       goto yy209;
+       case '2':       goto yy210;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy211;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy212;
+       default:        goto yy11;
+       }
+yy216:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy248;
+       case ':':       goto yy215;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy247;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy217:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy248;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy247;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy218:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy247;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy219:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 14) YYFILL(14);
+       yych = *YYCURSOR;
+yy220:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy219;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy221:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy167;
+       default:        goto yy11;
+       }
+yy222:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy249;
+       case ':':       goto yy223;
+       default:        goto yy11;
+       }
+yy223:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy250;
+       case ':':       goto yy251;
+       default:        goto yy11;
+       }
+yy224:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy252;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy225:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy254;
+       case ':':       goto yy253;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy252;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy226:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy254;
+       case '5':       goto yy255;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy256;
+       case ':':       goto yy253;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy252;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy227:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy256;
+       case ':':       goto yy253;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy252;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy228:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy252;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy229:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy257;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy230:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy257;
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy231:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy258;
+       case '1':       goto yy259;
+       case '2':       goto yy260;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy261;
+       default:        goto yy11;
+       }
+yy232:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy231;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy199;
+       default:        goto yy11;
+       }
+yy233:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy262;
+       default:        goto yy11;
+       }
+yy234:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               YYMTAGN (in->yyt40);
+               YYMTAGN (in->yyt39);
+               YYMTAGN (in->yyt38);
+               YYMTAGN (in->yyt37);
+               YYMTAGN (in->yyt36);
+               in->yyt30 = in->yyt31 = in->yyt32 = in->yyt33 = in->yyt34 = in->yyt35 = NULL;
+               goto yy263;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               YYMTAGP (in->yyt36);
+               in->yyt30 = in->yyt31 = in->yyt32 = in->yyt33 = in->yyt34 = in->yyt35 = NULL;
+               goto yy265;
+       default:        goto yy11;
+       }
+yy235:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy267;
+       case ':':       goto yy207;
+       default:        goto yy11;
+       }
+yy236:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy268;
+       case ':':       goto yy269;
+       default:        goto yy11;
+       }
+yy237:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy270;
+       case '1':       goto yy271;
+       case '2':       goto yy272;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy273;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy274;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy238:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy275;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy239:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy270;
+       case '1':       goto yy271;
+       case '2':       goto yy272;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy273;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy274;
+       default:        goto yy11;
+       }
+yy240:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy276;
+       case ':':       goto yy239;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy275;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy241:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy276;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy275;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy242:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy275;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy243:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy277;
+       default:        goto yy11;
+       }
+yy244:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy277;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy246;
+       default:        goto yy11;
+       }
+yy245:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy277;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy246;
+       case '5':       goto yy278;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy243;
+       default:        goto yy11;
+       }
+yy246:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy277;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy243;
+       default:        goto yy11;
+       }
+yy247:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy279;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy248:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy279;
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy249:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy280;
+       case ':':       goto yy223;
+       default:        goto yy11;
+       }
+yy250:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy281;
+       case ':':       goto yy282;
+       default:        goto yy11;
+       }
+yy251:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy283;
+       case '1':       goto yy284;
+       case '2':       goto yy285;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy286;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy287;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy252:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy288;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy253:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy283;
+       case '1':       goto yy284;
+       case '2':       goto yy285;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy286;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy287;
+       default:        goto yy11;
+       }
+yy254:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy289;
+       case ':':       goto yy253;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy288;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy255:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy289;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy288;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy256:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy288;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy257:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy194;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy258:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy259:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy261;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy260:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy261;
+       case '5':       goto yy290;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy258;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy261:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy258;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy262:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt33 = YYCURSOR;
+               goto yy291;
+       default:        goto yy11;
+       }
+yy263:
+       ++YYCURSOR;
+       m1 = in->yyt1;
+       m2 = in->yyt2;
+       at = in->yyt3;
+       u3 = in->yyt4;
+       u4 = in->yyt10;
+       hs3 = in->yyt11;
+       hs4 = in->yyt12;
+       r3 = in->yyt13;
+       r4 = in->yyt5;
+       au = in->yyt14;
+       s1 = in->yyt14;
+       s2 = in->yyt15;
+       u1 = in->yyt16;
+       u2 = in->yyt17;
+       hs1 = in->yyt18;
+       hs2 = in->yyt19;
+       r1 = in->yyt20;
+       r2 = in->yyt21;
+       p1 = in->yyt22;
+       p2 = in->yyt23;
+       p3 = in->yyt24;
+       p4 = in->yyt25;
+       q1 = in->yyt26;
+       q2 = in->yyt6;
+       of = in->yyt27;
+       p5 = in->yyt27;
+       p6 = in->yyt28;
+       q3 = in->yyt29;
+       q4 = in->yyt7;
+       v3 = in->yyt8;
+       v4 = in->yyt9;
+       v1 = in->yyt30;
+       v2 = in->yyt31;
+       st1 = in->yyt32;
+       st2 = in->yyt33;
+       rp1 = in->yyt34;
+       rp2 = in->yyt35;
+       h1 = in->yyt36;
+       h2 = in->yyt37;
+       h3 = in->yyt38;
+       h4 = in->yyt39;
+       h5 = in->yyt40;
+       {
+#ifndef VERIFY
+        c += 1;
+        if (st1) t += (v2 - v1) + (st2 - st1) + (rp2 - rp1);
+        if (m1) {
+            if (of) t += (p6 - p5) + (q4 - q3);
+            if (au) t += (s2 - s1) + (u2 - u1) + (hs2 - hs1)
+                + (r2 - r1) + (p2 - p1) + (p4 - p3) + (q2 - q1);
+            if (at) t += (u4 - u3) + (hs4 - hs3) + (r4 - r3);
+            t += (v4 - v3);
+        }
+        for (; h1 != 0; h1 = h1->pred, h2 = h2->pred,
+            h3 = h3->pred, h4 = h4->pred, h5 = h5->pred) {
+            t += (h2->dist - h1->dist) + (h3->dist - h2->dist)
+                + (h4->dist - h3->dist) + (h5->dist - h4->dist);
+        }
+#else
+        if (st1) {
+            printf("%.*s %.*s %.*s\n",
+                (int)(v2 - v1), v1,
+                (int)(st2 - st1), st1,
+                (int)(rp2 - rp1), rp1);
+        } else if (m1) {
+            printf("%.*s ", (int)(m2 - m1), m1);
+            if (of) {
+                printf("%.*s", (int)(p6 - p5), p5);
+                if (q3) printf("?%.*s", (int)(q4 - q3), q3);
+            } else if (au) {
+                printf("%.*s:", (int)(s2 - s1), s1);
+                if (p1) printf("//");
+                if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+                printf("%.*s", (int)(hs2 - hs1), hs1);
+                if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+                if (p1) printf("%.*s",  (int)(p2 - p1), p1);
+                if (p3) printf("%.*s",  (int)(p4 - p3), p3);
+                if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+            } else if (at) {
+                if (u3) printf("%.*s@", (int)(u4 - u3), u3);
+                printf("%.*s", (int)(hs4 - hs3), hs3);
+                if (r3) printf(":%.*s", (int)(r4 - r3), r3);
+            } else {
+                printf("*");
+            }
+            printf(" %.*s\n", (int)(v4 - v3), v3);
+        }
+        print_headers(in->tok, h1, h2, h3, h4, h5);
+        printf("\n");
+#endif
+        taglistpool_clear(&in->tlp, in);
+        goto loop;
+    }
+yy265:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy265;
+       case ':':
+               YYMTAGP (in->yyt37);
+               goto yy292;
+       default:        goto yy11;
+       }
+yy267:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy207;
+       default:        goto yy11;
+       }
+yy268:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy294;
+       case ':':       goto yy269;
+       default:        goto yy11;
+       }
+yy269:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy295;
+       case ':':       goto yy296;
+       default:        goto yy11;
+       }
+yy270:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy297;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy271:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy299;
+       case ':':       goto yy298;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy297;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy272:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy299;
+       case '5':       goto yy300;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy301;
+       case ':':       goto yy298;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy297;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy273:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy301;
+       case ':':       goto yy298;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy297;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy274:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy297;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy275:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy302;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy276:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy302;
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy277:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy303;
+       case '1':       goto yy304;
+       case '2':       goto yy305;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy306;
+       default:        goto yy11;
+       }
+yy278:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy277;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy243;
+       default:        goto yy11;
+       }
+yy279:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy215;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy280:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy223;
+       default:        goto yy11;
+       }
+yy281:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy307;
+       case ':':       goto yy282;
+       default:        goto yy11;
+       }
+yy282:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy308;
+       case ':':       goto yy309;
+       default:        goto yy11;
+       }
+yy283:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy310;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy284:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy312;
+       case ':':       goto yy311;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy310;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy285:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy312;
+       case '5':       goto yy313;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy314;
+       case ':':       goto yy311;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy310;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy286:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy314;
+       case ':':       goto yy311;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy310;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy287:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy310;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy288:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy315;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy289:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy315;
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy290:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy258;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy291:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\n':
+               in->yyt34 = in->yyt35 = YYCURSOR;
+               goto yy318;
+       default:
+               in->yyt34 = YYCURSOR;
+               goto yy316;
+       }
+yy292:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+       case ' ':       goto yy292;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               YYMTAGP (in->yyt38);
+               goto yy319;
+       default:
+               YYMTAGP (in->yyt38);
+               goto yy320;
+       }
+yy294:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy322;
+       case ':':       goto yy269;
+       default:        goto yy11;
+       }
+yy295:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy323;
+       case ':':       goto yy324;
+       default:        goto yy11;
+       }
+yy296:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy325;
+       case '1':       goto yy326;
+       case '2':       goto yy327;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy328;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy329;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy297:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy330;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy298:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy325;
+       case '1':       goto yy326;
+       case '2':       goto yy327;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy328;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy329;
+       default:        goto yy11;
+       }
+yy299:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy331;
+       case ':':       goto yy298;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy330;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy300:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy331;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy330;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy301:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy330;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy302:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy239;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy303:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy332;
+       default:        goto yy11;
+       }
+yy304:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy332;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy306;
+       default:        goto yy11;
+       }
+yy305:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy332;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy306;
+       case '5':       goto yy333;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy303;
+       default:        goto yy11;
+       }
+yy306:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy332;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy303;
+       default:        goto yy11;
+       }
+yy307:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy334;
+       case ':':       goto yy282;
+       default:        goto yy11;
+       }
+yy308:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy335;
+       case ':':       goto yy336;
+       default:        goto yy11;
+       }
+yy309:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy337;
+       case '1':       goto yy338;
+       case '2':       goto yy339;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy340;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy341;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy310:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy342;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy311:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy337;
+       case '1':       goto yy338;
+       case '2':       goto yy339;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy340;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy341;
+       default:        goto yy11;
+       }
+yy312:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy343;
+       case ':':       goto yy311;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy342;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy313:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy343;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy342;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy314:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy342;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy315:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy253;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy316:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\n':
+               in->yyt35 = YYCURSOR;
+               goto yy318;
+       default:        goto yy316;
+       }
+yy318:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               YYMTAGN (in->yyt40);
+               YYMTAGN (in->yyt39);
+               YYMTAGN (in->yyt38);
+               YYMTAGN (in->yyt37);
+               YYMTAGN (in->yyt36);
+               in->yyt1 = in->yyt2 = in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               goto yy263;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               YYMTAGP (in->yyt36);
+               in->yyt1 = in->yyt2 = in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = in->yyt21 = in->yyt22 = in->yyt23 = in->yyt24 = in->yyt25 = in->yyt26 = in->yyt27 = in->yyt28 = in->yyt29 = NULL;
+               goto yy265;
+       default:        goto yy11;
+       }
+yy319:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy344;
+       case '\n':
+               in->yyt39 = in->yyt42;
+               in->yyt40 = in->yyt41;
+               goto yy263;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               in->yyt39 = in->yyt42;
+               in->yyt40 = in->yyt41;
+               YYMTAGP (in->yyt36);
+               goto yy265;
+       default:        goto yy11;
+       }
+yy320:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy346;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy319;
+       case ' ':       goto yy348;
+       default:        goto yy320;
+       }
+yy322:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy269;
+       default:        goto yy11;
+       }
+yy323:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy350;
+       case ':':       goto yy324;
+       default:        goto yy11;
+       }
+yy324:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy351;
+       case ':':       goto yy352;
+       default:        goto yy11;
+       }
+yy325:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy353;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy326:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy355;
+       case ':':       goto yy354;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy353;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy327:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy355;
+       case '5':       goto yy356;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy357;
+       case ':':       goto yy354;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy353;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy328:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy357;
+       case ':':       goto yy354;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy353;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy329:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy353;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy330:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy358;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy331:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy358;
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy332:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy359;
+       case '1':       goto yy360;
+       case '2':       goto yy361;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy362;
+       default:        goto yy11;
+       }
+yy333:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy332;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy303;
+       default:        goto yy11;
+       }
+yy334:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy282;
+       default:        goto yy11;
+       }
+yy335:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy363;
+       case ':':       goto yy336;
+       default:        goto yy11;
+       }
+yy336:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy364;
+       case '1':       goto yy365;
+       case '2':       goto yy366;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy367;
+       case ':':       goto yy368;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy369;
+       default:        goto yy11;
+       }
+yy337:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy370;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy338:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy372;
+       case ':':       goto yy371;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy370;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy339:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy372;
+       case '5':       goto yy373;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy374;
+       case ':':       goto yy371;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy370;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy340:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy374;
+       case ':':       goto yy371;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy370;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy341:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy370;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy342:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy375;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy343:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy375;
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy344:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+       case ' ':       goto yy344;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy319;
+       default:        goto yy320;
+       }
+yy346:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy346;
+       case '\n':
+               YYMTAGP (in->yyt40);
+               goto yy376;
+       case ' ':       goto yy348;
+       default:        goto yy377;
+       }
+yy348:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy346;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy319;
+       case ' ':       goto yy348;
+       default:        goto yy378;
+       }
+yy350:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy379;
+       case ':':       goto yy324;
+       default:        goto yy11;
+       }
+yy351:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy380;
+       case ':':       goto yy381;
+       default:        goto yy11;
+       }
+yy352:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy382;
+       case '1':       goto yy383;
+       case '2':       goto yy384;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy385;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy386;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy353:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy387;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy354:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy382;
+       case '1':       goto yy383;
+       case '2':       goto yy384;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy385;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy386;
+       default:        goto yy11;
+       }
+yy355:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy388;
+       case ':':       goto yy354;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy387;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy356:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy388;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy387;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy357:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy387;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy358:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy298;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy359:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy360:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy362;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy361:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy362;
+       case '5':       goto yy389;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy359;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy362:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy359;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy363:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy390;
+       case ':':       goto yy336;
+       default:        goto yy11;
+       }
+yy364:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy391;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy365:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy393;
+       case ':':       goto yy392;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy391;
+       default:        goto yy11;
+       }
+yy366:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy393;
+       case '5':       goto yy394;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy395;
+       case ':':       goto yy392;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy391;
+       default:        goto yy11;
+       }
+yy367:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy395;
+       case ':':       goto yy392;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy391;
+       default:        goto yy11;
+       }
+yy368:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy396;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy369:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy391;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy370:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy397;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy371:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy396;
+       default:        goto yy11;
+       }
+yy372:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy398;
+       case ':':       goto yy371;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy397;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy373:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy398;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy397;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy374:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy397;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy375:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy311;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy376:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\n':
+               in->yyt39 = in->yyt42;
+               goto yy263;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               in->yyt39 = in->yyt42;
+               YYMTAGP (in->yyt36);
+               goto yy265;
+       default:        goto yy11;
+       }
+yy377:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+               YYMTAGP (in->yyt39);
+               goto yy399;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy319;
+       default:        goto yy320;
+       }
+yy378:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy401;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt42);
+               goto yy319;
+       default:        goto yy320;
+       }
+yy379:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy324;
+       default:        goto yy11;
+       }
+yy380:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy403;
+       case ':':       goto yy381;
+       default:        goto yy11;
+       }
+yy381:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy404;
+       case ':':       goto yy405;
+       default:        goto yy11;
+       }
+yy382:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy406;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy383:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy408;
+       case ':':       goto yy407;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy406;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy384:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy408;
+       case '5':       goto yy409;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy410;
+       case ':':       goto yy407;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy406;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy385:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy410;
+       case ':':       goto yy407;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy406;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy386:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy406;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy387:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy411;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy388:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy411;
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy389:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy359;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy390:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy336;
+       default:        goto yy11;
+       }
+yy391:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy412;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy392:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy396;
+       case ':':       goto yy258;
+       default:        goto yy11;
+       }
+yy393:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy413;
+       case ':':       goto yy392;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy412;
+       default:        goto yy11;
+       }
+yy394:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy413;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy412;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy395:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy412;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy396:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy414;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy397:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy415;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy398:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy415;
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy399:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy399;
+       case '\n':
+               in->yyt42 = in->yyt39;
+               YYMTAGP (in->yyt40);
+               goto yy376;
+       default:        goto yy11;
+       }
+yy401:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy401;
+       case '\n':
+               YYMTAGP (in->yyt40);
+               goto yy376;
+       case ' ':       goto yy416;
+       default:        goto yy377;
+       }
+yy403:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy418;
+       case ':':       goto yy381;
+       default:        goto yy11;
+       }
+yy404:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy419;
+       case ':':       goto yy420;
+       default:        goto yy11;
+       }
+yy405:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy421;
+       case '1':       goto yy422;
+       case '2':       goto yy423;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy424;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy425;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy406:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy426;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy407:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy421;
+       case '1':       goto yy422;
+       case '2':       goto yy423;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy424;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy425;
+       default:        goto yy11;
+       }
+yy408:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy427;
+       case ':':       goto yy407;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy426;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy409:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy427;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy426;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy410:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy426;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy411:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy354;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy412:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy428;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy413:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy115;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy428;
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy414:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy429;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy415:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy371;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy416:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy401;
+       case '\n':
+               in->yyt41 = in->yyt40;
+               YYMTAGP (in->yyt41);
+               goto yy319;
+       case ' ':       goto yy416;
+       default:        goto yy378;
+       }
+yy418:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy381;
+       default:        goto yy11;
+       }
+yy419:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy430;
+       case ':':       goto yy420;
+       default:        goto yy11;
+       }
+yy420:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':       goto yy431;
+       case '1':       goto yy432;
+       case '2':       goto yy433;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy434;
+       case ':':       goto yy435;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy436;
+       default:        goto yy11;
+       }
+yy421:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy437;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy422:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy439;
+       case ':':       goto yy438;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy437;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy423:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy439;
+       case '5':       goto yy440;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy441;
+       case ':':       goto yy438;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy437;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy424:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy441;
+       case ':':       goto yy438;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy437;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy425:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy437;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy426:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy442;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy427:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy442;
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy428:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy392;
+       default:        goto yy11;
+       }
+yy429:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy258;
+       case ']':       goto yy90;
+       default:        goto yy11;
+       }
+yy430:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy443;
+       case ':':       goto yy420;
+       default:        goto yy11;
+       }
+yy431:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy444;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy432:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy446;
+       case ':':       goto yy445;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy444;
+       default:        goto yy11;
+       }
+yy433:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy446;
+       case '5':       goto yy447;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy448;
+       case ':':       goto yy445;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy444;
+       default:        goto yy11;
+       }
+yy434:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy448;
+       case ':':       goto yy445;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy444;
+       default:        goto yy11;
+       }
+yy435:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy449;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy436:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy444;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy437:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy450;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy438:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy449;
+       default:        goto yy11;
+       }
+yy439:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy451;
+       case ':':       goto yy438;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy450;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy440:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy451;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy450;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy441:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy450;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy442:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy407;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy443:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy420;
+       default:        goto yy11;
+       }
+yy444:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy452;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy445:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy449;
+       case ':':       goto yy359;
+       default:        goto yy11;
+       }
+yy446:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy453;
+       case ':':       goto yy445;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy452;
+       default:        goto yy11;
+       }
+yy447:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy453;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy452;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy448:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy452;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy449:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy454;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy450:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy455;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy451:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy455;
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy452:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy456;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy453:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy213;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy456;
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy454:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy457;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy455:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy438;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+yy456:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ':':       goto yy445;
+       default:        goto yy11;
+       }
+yy457:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy359;
+       case ']':       goto yy188;
+       default:        goto yy11;
+       }
+}
+
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld HTTPs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error: %s\n", in.cur); break;
+        case 2: fprintf(stderr, "fill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+re2c: warning: line 249: tag 'm1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'at' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'u3' has 3rd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'u4' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'hs3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'hs4' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'r3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'au' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 's1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 's2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'u1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'u2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'hs1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'hs2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'r1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'p3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'v1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'h3' has 3rd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'h4' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 249: tag 'h5' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
diff --git a/re2c/test/tags/bench_http_rfc7230.i.re b/re2c/test/tags/bench_http_rfc7230.i.re
new file mode 100644 (file)
index 0000000..b39d747
--- /dev/null
@@ -0,0 +1,318 @@
+#include <assert.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct taglist_t {
+    struct taglist_t *pred;
+    long dist;
+} taglist_t;
+
+typedef struct taglistpool_t {
+    taglist_t *head;
+    taglist_t *next;
+    taglist_t *last;
+} taglistpool_t;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    /*!mtags:re2c format = "taglist_t *@@;\n"; */
+    taglistpool_t tlp;
+    int eof;
+} input_t;
+
+static void taglistpool_clear(taglistpool_t *tlp, input_t *in)
+{
+    tlp->next = tlp->head;
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+}
+
+static void taglistpool_init(taglistpool_t *tlp)
+{
+    static const unsigned size = 1024 * 1024;
+    tlp->head = (taglist_t*)malloc(size * sizeof(taglist_t));
+    tlp->next = tlp->head;
+    tlp->last = tlp->head + size;
+}
+
+static void taglistpool_free(taglistpool_t *tlp)
+{
+    free(tlp->head);
+    tlp->head = tlp->next = tlp->last = NULL;
+}
+
+static taglist_t *taglistpool_next(taglistpool_t *tlp)
+{
+    if (tlp->next < tlp->last) {
+        return tlp->next++;
+    }
+
+    const unsigned size = tlp->last - tlp->head;
+    taglist_t *head = (taglist_t*)malloc(2 * size * sizeof(taglist_t));
+    memcpy(head, tlp->head, size * sizeof(taglist_t));
+    free(tlp->head);
+    tlp->head = head;
+    tlp->next = head + size;
+    tlp->last = head + size * 2;
+    return tlp->next++;
+}
+
+static void taglist(taglist_t **ptl, const char *b, const char *t, taglistpool_t *tlp)
+{
+    taglist_t *tl = taglistpool_next(tlp);
+    tl->pred = *ptl;
+    tl->dist = t - b;
+    *ptl = tl;
+}
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+    taglistpool_init(&in->tlp);
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    fclose(in->file);
+    free(in->buf);
+    taglistpool_free(&in->tlp);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void print_headers(const char *tok,
+    const taglist_t *h1, const taglist_t *h2,
+    const taglist_t *h3, const taglist_t *h4,
+    const taglist_t *h5)
+{
+    if (!h1 || !h2 || !h3 || !h4 || !h5) {
+        assert(!h1 && !h2 && !h3 && !h4 && !h5);
+        return;
+    }
+    print_headers(tok, h1->pred, h2->pred, h3->pred, h4->pred, h5->pred);
+    printf("%.*s%.*s%.*s%.*s\n",
+        (int)(h2->dist - h1->dist), tok + h1->dist,
+        (int)(h3->dist - h2->dist), tok + h2->dist,
+        (int)(h4->dist - h3->dist), tok + h3->dist,
+        (int)(h5->dist - h4->dist), tok + h4->dist);
+}
+
+#define YYCTYPE        char
+#define YYCURSOR       in->cur
+#define YYMARKER       in->mar
+#define YYLIMIT        in->lim
+#define YYMTAGP(tl)    taglist(&tl, in->tok, in->cur, &in->tlp)
+#define YYMTAGN(tl)    taglist(&tl, in->tok, NULL, &in->tlp)
+#define YYFILL(n)      if (fill(in, n) != 0) return 2;
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char *of, *au, *at,
+        *hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3,
+        *hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4,
+        *r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3,
+        *r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4;
+    taglist_t *h1, *h2, *h3, *h4, *h5;
+    long c, t;
+
+    c = 0; t = 0;
+    of = au = at
+        = hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3
+        = hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4
+        = r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3
+        = r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL;
+loop:
+    in->tok = in->cur;
+/*!re2c
+    re2c:flags:tags = 1;
+    re2c:tags:expression = "in->@@";
+
+    end = "\x00";
+    eol = "\n";
+
+    crlf        = eol;
+    sp          = " ";
+    htab        = "\t";
+    ows         = (sp | htab)*;
+    digit       = [0-9];
+    alpha       = [a-zA-Z];
+    hexdigit    = [0-9a-fA-F];
+    unreserved  = alpha | digit | [-._~];
+    pct_encoded = "%" hexdigit{2};
+    sub_delims  = [!$&'()*+,;=];
+    pchar       = unreserved | pct_encoded | sub_delims | [:@];
+    vchar       = [\x1f-\x7e];
+    tchar       = [-!#$%&'*+.^_`|~] | digit | alpha;
+
+    obs_fold       = crlf (sp | htab)+;
+    obs_text       = [\x80-\xff];
+    field_name     = tchar+;
+    field_vchar    = vchar | obs_text;
+    field_content  = field_vchar ((sp | htab)+ field_vchar)?;
+    field_value    = (field_content | obs_fold)*;
+    header_field   = #h1 field_name #h2 ":" ows #h3 field_value #h4 ows #h5;
+    scheme         = alpha (alpha | digit | [-+.])*;
+    userinfo       = (unreserved | pct_encoded | sub_delims | ":")*;
+    dec_octet
+        = digit
+        | [\x31-\x39] digit
+        | "1" digit{2}
+        | "2" [\x30-\x34] digit
+        | "25" [\x30-\x35];
+    ipv4address    = dec_octet "." dec_octet "." dec_octet "." dec_octet;
+    h16            = hexdigit{1,4};
+    ls32           = h16 ":" h16 | ipv4address;
+    ipv6address
+        =                            (h16 ":"){6} ls32
+        |                       "::" (h16 ":"){5} ls32
+        | (               h16)? "::" (h16 ":"){4} ls32
+        | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32
+        | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32
+        | ((h16 ":"){0,3} h16)? "::"  h16 ":"     ls32
+        | ((h16 ":"){0,4} h16)? "::"              ls32
+        | ((h16 ":"){0,5} h16)? "::"              h16
+        | ((h16 ":"){0,6} h16)? "::";
+    ipvfuture      = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+;
+    ip_literal     = "[" ( ipv6address | ipvfuture ) "]";
+    reg_name       = (unreserved | pct_encoded | sub_delims)*;
+    path_abempty   = ("/" pchar*)*;
+    path_absolute  = "/" (pchar+ ("/" pchar*)*)?;
+    path_rootless  = pchar+ ("/" pchar*)*;
+    path_empty     = "";
+    host           = ip_literal | ipv4address | reg_name;
+    port           = digit*;
+    query          = (pchar | [/?])*;
+    absolute_uri   = @s1 scheme @s2 ":"
+        ( "//" (@u1 userinfo @u2 "@")? @hs1 host @hs2 (":" @r1 port @r2)? @p1 path_abempty @p2
+        | @p3 (path_absolute | path_rootless | path_empty) @p4
+        ) ("?" @q1 query @q2)?;
+    authority      = (@u3 userinfo @u4 "@")? @hs3 host @hs4 (":" @r3 port @r4)?;
+    origin_form    = @p5 path_abempty @p6 ("?" @q3 query @q4)?;
+    http_name      = "HTTP";
+    http_version   = http_name "/" digit "." digit;
+    request_target
+        = @at authority
+        | @au absolute_uri
+        | @of origin_form
+        | "*";
+    method         = tchar+;
+    request_line   = @m1 method @m2 sp request_target sp @v3 http_version @v4 crlf;
+    status_code    = digit{3};
+    reason_phrase  = (htab | sp | vchar | obs_text)*;
+    status_line    = @v1 http_version @v2 sp @st1 status_code @st2 sp @rp1 reason_phrase @rp2 crlf;
+    start_line     = (request_line | status_line);
+    message_head   = start_line (header_field crlf)* crlf;
+
+    *   { return 1; }
+    end { *count = c; *total = t; return 0; }
+    eol { goto loop; }
+    message_head {
+#ifndef VERIFY
+        c += 1;
+        if (st1) t += (v2 - v1) + (st2 - st1) + (rp2 - rp1);
+        if (m1) {
+            if (of) t += (p6 - p5) + (q4 - q3);
+            if (au) t += (s2 - s1) + (u2 - u1) + (hs2 - hs1)
+                + (r2 - r1) + (p2 - p1) + (p4 - p3) + (q2 - q1);
+            if (at) t += (u4 - u3) + (hs4 - hs3) + (r4 - r3);
+            t += (v4 - v3);
+        }
+        for (; h1 != 0; h1 = h1->pred, h2 = h2->pred,
+            h3 = h3->pred, h4 = h4->pred, h5 = h5->pred) {
+            t += (h2->dist - h1->dist) + (h3->dist - h2->dist)
+                + (h4->dist - h3->dist) + (h5->dist - h4->dist);
+        }
+#else
+        if (st1) {
+            printf("%.*s %.*s %.*s\n",
+                (int)(v2 - v1), v1,
+                (int)(st2 - st1), st1,
+                (int)(rp2 - rp1), rp1);
+        } else if (m1) {
+            printf("%.*s ", (int)(m2 - m1), m1);
+            if (of) {
+                printf("%.*s", (int)(p6 - p5), p5);
+                if (q3) printf("?%.*s", (int)(q4 - q3), q3);
+            } else if (au) {
+                printf("%.*s:", (int)(s2 - s1), s1);
+                if (p1) printf("//");
+                if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+                printf("%.*s", (int)(hs2 - hs1), hs1);
+                if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+                if (p1) printf("%.*s",  (int)(p2 - p1), p1);
+                if (p3) printf("%.*s",  (int)(p4 - p3), p3);
+                if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+            } else if (at) {
+                if (u3) printf("%.*s@", (int)(u4 - u3), u3);
+                printf("%.*s", (int)(hs4 - hs3), hs3);
+                if (r3) printf(":%.*s", (int)(r4 - r3), r3);
+            } else {
+                printf("*");
+            }
+            printf(" %.*s\n", (int)(v4 - v3), v3);
+        }
+        print_headers(in->tok, h1, h2, h3, h4, h5);
+        printf("\n");
+#endif
+        taglistpool_clear(&in->tlp, in);
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld HTTPs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error: %s\n", in.cur); break;
+        case 2: fprintf(stderr, "fill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
diff --git a/re2c/test/tags/bench_http_simple.i.c b/re2c/test/tags/bench_http_simple.i.c
new file mode 100644 (file)
index 0000000..0111300
--- /dev/null
@@ -0,0 +1,2437 @@
+/* Generated by re2c */
+#include <assert.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct taglist_t {
+    struct taglist_t *pred;
+    long dist;
+} taglist_t;
+
+typedef struct taglistpool_t {
+    taglist_t *head;
+    taglist_t *next;
+    taglist_t *last;
+} taglistpool_t;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    char *yyt1;
+char *yyt10;
+char *yyt11;
+char *yyt12;
+char *yyt2;
+char *yyt3;
+char *yyt4;
+char *yyt5;
+char *yyt6;
+char *yyt7;
+char *yyt8;
+char *yyt9;
+
+    taglist_t *yyt13;
+taglist_t *yyt14;
+taglist_t *yyt15;
+taglist_t *yyt16;
+
+    taglistpool_t tlp;
+    int eof;
+} input_t;
+
+static void taglistpool_clear(taglistpool_t *tlp, input_t *in)
+{
+    tlp->next = tlp->head;
+    in->yyt13 = 0;
+in->yyt14 = 0;
+in->yyt15 = 0;
+in->yyt16 = 0;
+
+}
+
+static void taglistpool_init(taglistpool_t *tlp)
+{
+    static const unsigned size = 1024 * 1024;
+    tlp->head = (taglist_t*)malloc(size * sizeof(taglist_t));
+    tlp->next = tlp->head;
+    tlp->last = tlp->head + size;
+}
+
+static void taglistpool_free(taglistpool_t *tlp)
+{
+    free(tlp->head);
+    tlp->head = tlp->next = tlp->last = NULL;
+}
+
+static taglist_t *taglistpool_next(taglistpool_t *tlp)
+{
+    if (tlp->next < tlp->last) {
+        return tlp->next++;
+    }
+
+    const unsigned size = tlp->last - tlp->head;
+    taglist_t *head = (taglist_t*)malloc(2 * size * sizeof(taglist_t));
+    memcpy(head, tlp->head, size * sizeof(taglist_t));
+    free(tlp->head);
+    tlp->head = head;
+    tlp->next = head + size;
+    tlp->last = head + size * 2;
+    return tlp->next++;
+}
+
+static void taglist(taglist_t **ptl, const char *b, const char *t, taglistpool_t *tlp)
+{
+    taglist_t *tl = taglistpool_next(tlp);
+    tl->pred = *ptl;
+    tl->dist = t - b;
+    *ptl = tl;
+}
+
+#define YYMAXFILL 15
+
+static const size_t SIZE = 4096;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    in->yyt1 = 0;
+in->yyt10 = 0;
+in->yyt11 = 0;
+in->yyt12 = 0;
+in->yyt2 = 0;
+in->yyt3 = 0;
+in->yyt4 = 0;
+in->yyt5 = 0;
+in->yyt6 = 0;
+in->yyt7 = 0;
+in->yyt8 = 0;
+in->yyt9 = 0;
+
+    in->yyt13 = 0;
+in->yyt14 = 0;
+in->yyt15 = 0;
+in->yyt16 = 0;
+
+    taglistpool_init(&in->tlp);
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    fclose(in->file);
+    free(in->buf);
+    taglistpool_free(&in->tlp);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    if (in->yyt1) in->yyt1 -= free;
+if (in->yyt10) in->yyt10 -= free;
+if (in->yyt11) in->yyt11 -= free;
+if (in->yyt12) in->yyt12 -= free;
+if (in->yyt2) in->yyt2 -= free;
+if (in->yyt3) in->yyt3 -= free;
+if (in->yyt4) in->yyt4 -= free;
+if (in->yyt5) in->yyt5 -= free;
+if (in->yyt6) in->yyt6 -= free;
+if (in->yyt7) in->yyt7 -= free;
+if (in->yyt8) in->yyt8 -= free;
+if (in->yyt9) in->yyt9 -= free;
+
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void print_headers(const char *tok,
+    const taglist_t *h1, const taglist_t *h2, const taglist_t *h3)
+{
+    if (!h1 || !h2 || !h3) {
+        assert(!h1 && !h2 && !h3);
+        return;
+    }
+    print_headers(tok, h1->pred, h2->pred, h3->pred);
+    printf("%.*s%.*s\n",
+        (int)(h2->dist - h1->dist), tok + h1->dist,
+        (int)(h3->dist - h2->dist), tok + h2->dist);
+}
+
+#define YYCTYPE        char
+#define YYCURSOR       in->cur
+#define YYMARKER       in->mar
+#define YYLIMIT        in->lim
+#define YYMTAGP(tl)    taglist(&tl, in->tok, in->cur, &in->tlp)
+#define YYMTAGN(tl)    taglist(&tl, in->tok, NULL, &in->tlp)
+#define YYFILL(n)      if (fill(in, n) != 0) return 2;
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char *s1, *s2, *v1, *v2, *v3, *v4, *m1, *m2, *rp1, *rp2, *rt1, *rt2;
+    taglist_t *h1, *h2, *h3;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+
+{
+       YYCTYPE yych;
+       if ((YYLIMIT - YYCURSOR) < 15) YYFILL(15);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:      goto yy2;
+       case '\n':      goto yy6;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               in->yyt1 = YYCURSOR;
+               goto yy8;
+       case 'H':
+               in->yyt1 = in->yyt7 = YYCURSOR;
+               goto yy9;
+       default:        goto yy4;
+       }
+yy2:
+       ++YYCURSOR;
+       { *count = c; *total = t; return 0; }
+yy4:
+       ++YYCURSOR;
+yy5:
+       { return 1; }
+yy6:
+       ++YYCURSOR;
+       { goto loop; }
+yy8:
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case ' ':
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy13;
+       default:        goto yy5;
+       }
+yy9:
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case ' ':
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy13;
+       case 'T':       goto yy14;
+       default:        goto yy5;
+       }
+yy10:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case ',':
+       case ':':
+       case ';':
+       case '=':
+       case '_':
+       case '~':
+               in->yyt3 = YYCURSOR;
+               goto yy15;
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+               in->yyt3 = YYCURSOR;
+               goto yy17;
+       case '/':
+               in->yyt3 = YYCURSOR;
+               goto yy19;
+       case '[':
+       case ']':
+               in->yyt3 = YYCURSOR;
+               goto yy21;
+       default:        goto yy11;
+       }
+yy11:
+       YYCURSOR = YYMARKER;
+       goto yy5;
+yy12:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+yy13:
+       switch (yych) {
+       case ' ':
+               in->yyt2 = YYCURSOR;
+               goto yy10;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy12;
+       default:        goto yy11;
+       }
+yy14:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy23;
+       default:        goto yy13;
+       }
+yy15:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy15;
+       case '@':       goto yy25;
+       case '[':
+       case ']':       goto yy21;
+       default:        goto yy11;
+       }
+yy17:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 14) YYFILL(14);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case ',':
+       case ';':
+       case '=':
+       case '_':
+       case '~':       goto yy15;
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy17;
+       case ':':       goto yy26;
+       case '@':       goto yy25;
+       case '[':
+       case ']':       goto yy21;
+       default:        goto yy11;
+       }
+yy19:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+yy20:
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy19;
+       default:        goto yy11;
+       }
+yy21:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+yy22:
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '[':
+       case ']':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy21;
+       default:        goto yy11;
+       }
+yy23:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'P':       goto yy27;
+       default:        goto yy13;
+       }
+yy24:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'H':
+               in->yyt5 = YYCURSOR;
+               goto yy28;
+       default:        goto yy11;
+       }
+yy25:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':       goto yy11;
+       default:        goto yy22;
+       }
+yy26:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy31;
+       default:        goto yy30;
+       }
+yy27:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy34;
+       default:        goto yy13;
+       }
+yy28:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy35;
+       default:        goto yy11;
+       }
+yy29:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+yy30:
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy29;
+       case '/':
+       case '?':       goto yy19;
+       case '@':       goto yy32;
+       case '[':
+       case ']':       goto yy21;
+       default:        goto yy11;
+       }
+yy31:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy36;
+       default:        goto yy20;
+       }
+yy32:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy32;
+       case '/':
+       case '?':
+       case '@':       goto yy19;
+       case '[':
+       case ']':       goto yy21;
+       default:        goto yy11;
+       }
+yy34:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy37;
+       default:        goto yy11;
+       }
+yy35:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'T':       goto yy38;
+       default:        goto yy11;
+       }
+yy36:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '@':       goto yy19;
+       default:        goto yy40;
+       }
+yy37:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy43;
+       default:        goto yy11;
+       }
+yy38:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 'P':       goto yy44;
+       default:        goto yy11;
+       }
+yy39:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+yy40:
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy39;
+       case '/':
+       case '?':       goto yy19;
+       case '@':
+       case '[':
+       case ']':       goto yy41;
+       default:        goto yy11;
+       }
+yy41:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt4 = YYCURSOR;
+               goto yy24;
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '[':
+       case ']':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy41;
+       case '/':
+       case '?':
+       case '@':       goto yy19;
+       default:        goto yy11;
+       }
+yy43:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy45;
+       default:        goto yy11;
+       }
+yy44:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '/':       goto yy46;
+       default:        goto yy11;
+       }
+yy45:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt8 = YYCURSOR;
+               goto yy47;
+       default:        goto yy11;
+       }
+yy46:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy48;
+       default:        goto yy11;
+       }
+yy47:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt9 = YYCURSOR;
+               goto yy49;
+       default:        goto yy11;
+       }
+yy48:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '.':       goto yy50;
+       default:        goto yy11;
+       }
+yy49:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy51;
+       default:        goto yy11;
+       }
+yy50:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy52;
+       default:        goto yy11;
+       }
+yy51:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy53;
+       default:        goto yy11;
+       }
+yy52:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               in->yyt6 = YYCURSOR;
+               goto yy54;
+       default:        goto yy11;
+       }
+yy53:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case ' ':
+               in->yyt10 = YYCURSOR;
+               goto yy55;
+       default:        goto yy11;
+       }
+yy54:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               YYMTAGN (in->yyt15);
+               YYMTAGN (in->yyt14);
+               YYMTAGN (in->yyt13);
+               in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = NULL;
+               goto yy56;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               YYMTAGP (in->yyt13);
+               in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = NULL;
+               goto yy58;
+       default:        goto yy11;
+       }
+yy55:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\n':
+               in->yyt11 = in->yyt12 = YYCURSOR;
+               goto yy62;
+       default:
+               in->yyt11 = YYCURSOR;
+               goto yy60;
+       }
+yy56:
+       ++YYCURSOR;
+       m1 = in->yyt1;
+       m2 = in->yyt2;
+       rt1 = in->yyt3;
+       rt2 = in->yyt4;
+       v3 = in->yyt5;
+       v4 = in->yyt6;
+       v1 = in->yyt7;
+       v2 = in->yyt8;
+       s1 = in->yyt9;
+       s2 = in->yyt10;
+       rp1 = in->yyt11;
+       rp2 = in->yyt12;
+       h1 = in->yyt13;
+       h2 = in->yyt14;
+       h3 = in->yyt15;
+       {
+#ifndef VERIFY
+        c += 1;
+        t += (v2 - v1) + (s2 - s1) + (rp2 - rp1)
+            + (m2 - m1) + (rt2 - rt1) + (v4 - v3);
+        for (; h1 != 0; h1 = h1->pred, h2 = h2->pred, h3 = h3->pred) {
+            t += (h2->dist - h1->dist) + (h3->dist - h2->dist);
+        }
+#else
+        if (s1) printf("%.*s %.*s %.*s\n",
+            (int)(v2 - v1), v1,
+            (int)(s2 - s1), s1,
+            (int)(rp2 - rp1), rp1);
+        if (m1) printf("%.*s %.*s %.*s\n",
+            (int)(m2 - m1), m1,
+            (int)(rt2 - rt1), rt1,
+            (int)(v4 - v3), v3);
+        print_headers(in->tok, h1, h2, h3);
+        printf("\n");
+#endif
+        taglistpool_clear(&in->tlp, in);
+        goto loop;
+    }
+yy58:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':       goto yy58;
+       case ':':       goto yy63;
+       default:        goto yy11;
+       }
+yy60:
+       ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\n':
+               in->yyt12 = YYCURSOR;
+               goto yy62;
+       default:        goto yy60;
+       }
+yy62:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '\n':
+               YYMTAGN (in->yyt15);
+               YYMTAGN (in->yyt14);
+               YYMTAGN (in->yyt13);
+               in->yyt1 = in->yyt2 = in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = NULL;
+               goto yy56;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               YYMTAGP (in->yyt13);
+               in->yyt1 = in->yyt2 = in->yyt3 = in->yyt4 = in->yyt5 = in->yyt6 = NULL;
+               goto yy58;
+       default:        goto yy11;
+       }
+yy63:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+       case ' ':
+               YYMTAGP (in->yyt14);
+               goto yy64;
+       case '\n':
+               in->yyt16 = in->yyt15;
+               YYMTAGP (in->yyt16);
+               YYMTAGP (in->yyt14);
+               goto yy66;
+       default:
+               YYMTAGP (in->yyt14);
+               goto yy67;
+       }
+yy64:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':
+       case ' ':       goto yy64;
+       case '\n':
+               in->yyt16 = in->yyt15;
+               YYMTAGP (in->yyt16);
+               goto yy66;
+       default:        goto yy67;
+       }
+yy66:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy64;
+       case '\n':
+               in->yyt15 = in->yyt16;
+               goto yy56;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               in->yyt15 = in->yyt16;
+               YYMTAGP (in->yyt13);
+               goto yy58;
+       default:        goto yy11;
+       }
+yy67:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy69;
+       case '\n':
+               in->yyt16 = in->yyt15;
+               YYMTAGP (in->yyt16);
+               goto yy66;
+       default:        goto yy67;
+       }
+yy69:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy69;
+       case '\n':
+               YYMTAGP (in->yyt15);
+               goto yy71;
+       case ' ':       goto yy67;
+       default:        goto yy72;
+       }
+yy71:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\n':      goto yy56;
+       case '!':
+       case '#':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '*':
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '|':
+       case '~':
+               YYMTAGP (in->yyt13);
+               goto yy58;
+       default:        goto yy11;
+       }
+yy72:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x00:
+       case 0x01:
+       case 0x02:
+       case 0x03:
+       case 0x04:
+       case 0x05:
+       case 0x06:
+       case 0x07:
+       case 0x08:
+       case '\v':
+       case '\f':
+       case '\r':
+       case 0x0E:
+       case 0x0F:
+       case 0x10:
+       case 0x11:
+       case 0x12:
+       case 0x13:
+       case 0x14:
+       case 0x15:
+       case 0x16:
+       case 0x17:
+       case 0x18:
+       case 0x19:
+       case 0x1A:
+       case 0x1B:
+       case 0x1C:
+       case 0x1D:
+       case 0x1E:
+       case 0x7F:      goto yy11;
+       case '\t':      goto yy73;
+       case '\n':
+               in->yyt16 = in->yyt15;
+               YYMTAGP (in->yyt16);
+               goto yy66;
+       default:        goto yy67;
+       }
+yy73:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case '\t':
+       case ' ':       goto yy73;
+       case '\n':
+               YYMTAGP (in->yyt15);
+               goto yy71;
+       default:        goto yy11;
+       }
+}
+
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld HTTPs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error: %s\n", in.cur); break;
+        case 2: fprintf(stderr, "fill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+re2c: warning: line 190: tag 'm1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 190: tag 'v1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 190: tag 'h3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
diff --git a/re2c/test/tags/bench_http_simple.i.re b/re2c/test/tags/bench_http_simple.i.re
new file mode 100644 (file)
index 0000000..bcbbabe
--- /dev/null
@@ -0,0 +1,231 @@
+#include <assert.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct taglist_t {
+    struct taglist_t *pred;
+    long dist;
+} taglist_t;
+
+typedef struct taglistpool_t {
+    taglist_t *head;
+    taglist_t *next;
+    taglist_t *last;
+} taglistpool_t;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    /*!mtags:re2c format = "taglist_t *@@;\n"; */
+    taglistpool_t tlp;
+    int eof;
+} input_t;
+
+static void taglistpool_clear(taglistpool_t *tlp, input_t *in)
+{
+    tlp->next = tlp->head;
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+}
+
+static void taglistpool_init(taglistpool_t *tlp)
+{
+    static const unsigned size = 1024 * 1024;
+    tlp->head = (taglist_t*)malloc(size * sizeof(taglist_t));
+    tlp->next = tlp->head;
+    tlp->last = tlp->head + size;
+}
+
+static void taglistpool_free(taglistpool_t *tlp)
+{
+    free(tlp->head);
+    tlp->head = tlp->next = tlp->last = NULL;
+}
+
+static taglist_t *taglistpool_next(taglistpool_t *tlp)
+{
+    if (tlp->next < tlp->last) {
+        return tlp->next++;
+    }
+
+    const unsigned size = tlp->last - tlp->head;
+    taglist_t *head = (taglist_t*)malloc(2 * size * sizeof(taglist_t));
+    memcpy(head, tlp->head, size * sizeof(taglist_t));
+    free(tlp->head);
+    tlp->head = head;
+    tlp->next = head + size;
+    tlp->last = head + size * 2;
+    return tlp->next++;
+}
+
+static void taglist(taglist_t **ptl, const char *b, const char *t, taglistpool_t *tlp)
+{
+    taglist_t *tl = taglistpool_next(tlp);
+    tl->pred = *ptl;
+    tl->dist = t - b;
+    *ptl = tl;
+}
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+    taglistpool_init(&in->tlp);
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    fclose(in->file);
+    free(in->buf);
+    taglistpool_free(&in->tlp);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void print_headers(const char *tok,
+    const taglist_t *h1, const taglist_t *h2, const taglist_t *h3)
+{
+    if (!h1 || !h2 || !h3) {
+        assert(!h1 && !h2 && !h3);
+        return;
+    }
+    print_headers(tok, h1->pred, h2->pred, h3->pred);
+    printf("%.*s%.*s\n",
+        (int)(h2->dist - h1->dist), tok + h1->dist,
+        (int)(h3->dist - h2->dist), tok + h2->dist);
+}
+
+#define YYCTYPE        char
+#define YYCURSOR       in->cur
+#define YYMARKER       in->mar
+#define YYLIMIT        in->lim
+#define YYMTAGP(tl)    taglist(&tl, in->tok, in->cur, &in->tlp)
+#define YYMTAGN(tl)    taglist(&tl, in->tok, NULL, &in->tlp)
+#define YYFILL(n)      if (fill(in, n) != 0) return 2;
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char *s1, *s2, *v1, *v2, *v3, *v4, *m1, *m2, *rp1, *rp2, *rt1, *rt2;
+    taglist_t *h1, *h2, *h3;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+/*!re2c
+    re2c:flags:tags = 1;
+    re2c:tags:expression = "in->@@";
+
+    end            = "\x00";
+    eol            = "\n";
+    sp             = " ";
+    htab           = "\t";
+    ows            = (sp | htab)*;
+    char           = [-._~%!$&'()*+,;=a-zA-Z0-9];
+    tchar          = [-._~%!$&'*+#^`|a-zA-Z0-9];
+    vchar          = [\x1f-\x7e\x80-\xff];
+    scheme         = [-+.a-zA-Z0-9]+;
+    userinfo       = (char | [:])+;
+    host           = (char | [:[\]])+;
+    port           = [0-9]*;
+    path           = (char | [:@/])*;
+    query          = (char | [:@?/])*;
+    obs_fold       = eol (sp | htab)+;
+    field_content  = vchar ((sp | htab)+ vchar)?;
+    header_field   = #h1 tchar+ ":" #h2 ows (field_content | obs_fold)* ows #h3;
+    authority      = (userinfo "@")? host (":" port)?;
+    absolute_uri   = scheme ":" ("//" (userinfo "@")? host (":" port)?)? path ("?" query)?;
+    origin_form    = "/" path ("?" query)?;
+    http_version   = "HTTP/" [0-9] "." [0-9];
+    request_target = authority | absolute_uri | origin_form | "*";
+    method         = tchar+;
+    request_line   = @m1 method @m2 sp @rt1 request_target @rt2 sp @v3 http_version @v4 eol;
+    status_code    = [0-9]{3};
+    reason_phrase  = (htab | sp | vchar)*;
+    status_line    = @v1 http_version @v2 sp @s1 status_code @s2 sp @rp1 reason_phrase @rp2 eol;
+    start_line     = (request_line | status_line);
+    message_head   = start_line (header_field eol)* eol;
+
+    *   { return 1; }
+    end { *count = c; *total = t; return 0; }
+    eol { goto loop; }
+    message_head {
+#ifndef VERIFY
+        c += 1;
+        t += (v2 - v1) + (s2 - s1) + (rp2 - rp1)
+            + (m2 - m1) + (rt2 - rt1) + (v4 - v3);
+        for (; h1 != 0; h1 = h1->pred, h2 = h2->pred, h3 = h3->pred) {
+            t += (h2->dist - h1->dist) + (h3->dist - h2->dist);
+        }
+#else
+        if (s1) printf("%.*s %.*s %.*s\n",
+            (int)(v2 - v1), v1,
+            (int)(s2 - s1), s1,
+            (int)(rp2 - rp1), rp1);
+        if (m1) printf("%.*s %.*s %.*s\n",
+            (int)(m2 - m1), m1,
+            (int)(rt2 - rt1), rt1,
+            (int)(v4 - v3), v3);
+        print_headers(in->tok, h1, h2, h3);
+        printf("\n");
+#endif
+        taglistpool_clear(&in->tlp, in);
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld HTTPs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error: %s\n", in.cur); break;
+        case 2: fprintf(stderr, "fill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
diff --git a/re2c/test/tags/bench_uri_rfc3986.i.c b/re2c/test/tags/bench_uri_rfc3986.i.c
new file mode 100644 (file)
index 0000000..da85824
--- /dev/null
@@ -0,0 +1,7943 @@
+/* Generated by re2c */
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define YYMAXFILL 72
+
+static const size_t SIZE = 4096;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    char *yyt1;
+char *yyt10;
+char *yyt11;
+char *yyt12;
+char *yyt13;
+char *yyt14;
+char *yyt15;
+char *yyt16;
+char *yyt17;
+char *yyt18;
+char *yyt19;
+char *yyt2;
+char *yyt20;
+char *yyt3;
+char *yyt4;
+char *yyt5;
+char *yyt6;
+char *yyt7;
+char *yyt8;
+char *yyt9;
+
+    int eof;
+} input_t;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    in->yyt1 = 0;
+in->yyt10 = 0;
+in->yyt11 = 0;
+in->yyt12 = 0;
+in->yyt13 = 0;
+in->yyt14 = 0;
+in->yyt15 = 0;
+in->yyt16 = 0;
+in->yyt17 = 0;
+in->yyt18 = 0;
+in->yyt19 = 0;
+in->yyt2 = 0;
+in->yyt20 = 0;
+in->yyt3 = 0;
+in->yyt4 = 0;
+in->yyt5 = 0;
+in->yyt6 = 0;
+in->yyt7 = 0;
+in->yyt8 = 0;
+in->yyt9 = 0;
+
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    free(in->buf);
+    fclose(in->file);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    if (in->yyt1) in->yyt1 -= free;
+if (in->yyt10) in->yyt10 -= free;
+if (in->yyt11) in->yyt11 -= free;
+if (in->yyt12) in->yyt12 -= free;
+if (in->yyt13) in->yyt13 -= free;
+if (in->yyt14) in->yyt14 -= free;
+if (in->yyt15) in->yyt15 -= free;
+if (in->yyt16) in->yyt16 -= free;
+if (in->yyt17) in->yyt17 -= free;
+if (in->yyt18) in->yyt18 -= free;
+if (in->yyt19) in->yyt19 -= free;
+if (in->yyt2) in->yyt2 -= free;
+if (in->yyt20) in->yyt20 -= free;
+if (in->yyt3) in->yyt3 -= free;
+if (in->yyt4) in->yyt4 -= free;
+if (in->yyt5) in->yyt5 -= free;
+if (in->yyt6) in->yyt6 -= free;
+if (in->yyt7) in->yyt7 -= free;
+if (in->yyt8) in->yyt8 -= free;
+if (in->yyt9) in->yyt9 -= free;
+
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char
+        *s1, *u1, *h1, *h3, *h5, *r1, *p1, *p3, *q1, *f1,
+        *s2, *u2, *h2, *h4, *h6, *r2, *p2, *p4, *q2, *f2;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+
+{
+       char yych;
+       unsigned int yyaccept = 0;
+       if ((in->lim - in->cur) < 72) if (fill(in, 72) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case 0x00:      goto yy2;
+       case '\n':      goto yy6;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+               in->yyt1 = in->cur;
+               goto yy8;
+       default:        goto yy4;
+       }
+yy2:
+       ++in->cur;
+       { *count = c; *total = t; return 0; }
+yy4:
+       ++in->cur;
+yy5:
+       { return 1; }
+yy6:
+       ++in->cur;
+       { goto loop; }
+yy8:
+       yyaccept = 0;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy10;
+       default:        goto yy5;
+       }
+yy9:
+       ++in->cur;
+       if ((in->lim - in->cur) < 71) if (fill(in, 71) != 0) return 2;
+       yych = *in->cur;
+yy10:
+       switch (yych) {
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy9;
+       case ':':
+               in->yyt2 = in->cur;
+               goto yy12;
+       default:        goto yy11;
+       }
+yy11:
+       in->cur = in->mar;
+       switch (yyaccept) {
+       case 0:         goto yy5;
+       case 1: 
+               in->yyt3 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt4 = in->yyt5 = in->cur;
+               goto yy13;
+       case 2: 
+               in->yyt3 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt5 = in->cur;
+               goto yy13;
+       case 3: 
+               in->yyt7 = in->yyt8 = in->cur;
+               goto yy13;
+       case 4: 
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt6 = in->yyt20 = in->cur;
+               goto yy13;
+       case 5: 
+               in->yyt8 = in->cur;
+               goto yy13;
+       case 6: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       case 7: 
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt6 = in->cur;
+               goto yy13;
+       case 8: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       case 9: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->cur;
+               goto yy13;
+       case 10: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       case 11: 
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       case 12: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       case 13: 
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       case 14: 
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy12:
+       yyaccept = 1;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt4 = in->cur;
+               goto yy14;
+       case '#':
+               in->yyt3 = in->yyt6 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt4 = in->yyt5 = in->cur;
+               goto yy16;
+       case '%':
+               in->yyt4 = in->cur;
+               goto yy17;
+       case '/':
+               in->yyt4 = in->cur;
+               goto yy18;
+       case '?':
+               in->yyt3 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = NULL;
+               in->yyt4 = in->yyt5 = in->cur;
+               goto yy19;
+       default:
+               in->yyt3 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt4 = in->yyt5 = in->cur;
+               goto yy13;
+       }
+yy13:
+       s1 = in->yyt1;
+       s2 = in->yyt2;
+       u1 = in->yyt9;
+       u2 = in->yyt10;
+       h1 = in->yyt11;
+       h2 = in->yyt12;
+       h3 = in->yyt13;
+       h4 = in->yyt14;
+       h5 = in->yyt15;
+       h6 = in->yyt16;
+       r1 = in->yyt17;
+       r2 = in->yyt18;
+       p1 = in->yyt19;
+       p2 = in->yyt3;
+       p3 = in->yyt4;
+       p4 = in->yyt5;
+       q1 = in->yyt20;
+       q2 = in->yyt6;
+       f1 = in->yyt7;
+       f2 = in->yyt8;
+       {
+#ifndef VERIFY
+        c += 1;
+        t += (s2 - s1) + (u2 - u1) + (h2 - h1) + (h4 - h3)
+            + (h6 - h5) + (r2 - r1) + (p2 - p1) + (p4 - p3)
+            + (q2 - q1) + (f2 - f1);
+#else
+                printf("%.*s:", (int)(s2 - s1), s1);
+        if (p1) printf("//");
+        if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+        if (h1) printf("%.*s",  (int)(h2 - h1), h1);
+        if (h3) printf("%.*s",  (int)(h4 - h3), h3);
+        if (h5) printf("%.*s",  (int)(h6 - h5), h5);
+        if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+        if (p1) printf("%.*s",  (int)(p2 - p1), p1);
+        if (p3) printf("%.*s",  (int)(p4 - p3), p3);
+        if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+        if (f1) printf("#%.*s", (int)(f2 - f1), f1);
+        printf("\n");
+#endif
+        goto loop;
+    }
+yy14:
+       yyaccept = 2;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 3) if (fill(in, 3) != 0) return 2;
+       yych = *in->cur;
+yy15:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy14;
+       case '#':
+               in->yyt3 = in->yyt6 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt5 = in->cur;
+               goto yy16;
+       case '%':       goto yy17;
+       case '?':
+               in->yyt3 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = NULL;
+               in->yyt5 = in->cur;
+               goto yy19;
+       default:
+               in->yyt3 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt19 = in->yyt20 = NULL;
+               in->yyt5 = in->cur;
+               goto yy13;
+       }
+yy16:
+       yyaccept = 3;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt7 = in->cur;
+               goto yy20;
+       case '%':
+               in->yyt7 = in->cur;
+               goto yy22;
+       default:
+               in->yyt7 = in->yyt8 = in->cur;
+               goto yy13;
+       }
+yy17:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy23;
+       default:        goto yy11;
+       }
+yy18:
+       yyaccept = 2;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '/':       goto yy24;
+       default:        goto yy15;
+       }
+yy19:
+       yyaccept = 4;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt20 = in->cur;
+               goto yy25;
+       case '#':
+               in->yyt6 = in->yyt20 = in->cur;
+               goto yy16;
+       case '%':
+               in->yyt20 = in->cur;
+               goto yy27;
+       default:
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt6 = in->yyt20 = in->cur;
+               goto yy13;
+       }
+yy20:
+       yyaccept = 5;
+       in->mar = ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy20;
+       case '%':       goto yy22;
+       default:
+               in->yyt8 = in->cur;
+               goto yy13;
+       }
+yy22:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy28;
+       default:        goto yy11;
+       }
+yy23:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy14;
+       default:        goto yy11;
+       }
+yy24:
+       yyaccept = 6;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt15 = in->cur;
+               goto yy29;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy16;
+       case '%':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt15 = in->cur;
+               goto yy31;
+       case '/':
+               in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt13 = in->yyt15 = in->cur;
+               goto yy34;
+       case '1':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt13 = in->yyt15 = in->cur;
+               goto yy35;
+       case '2':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt13 = in->yyt15 = in->cur;
+               goto yy36;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt3 = in->yyt13 = in->yyt15 = in->cur;
+               goto yy37;
+       case ':':
+               in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy19;
+       case '@':
+               in->yyt3 = in->yyt10 = in->cur;
+               goto yy39;
+       case '[':
+               in->yyt9 = in->yyt10 = NULL;
+               in->yyt11 = in->cur;
+               goto yy40;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy25:
+       yyaccept = 7;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 2) if (fill(in, 2) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy25;
+       case '#':
+               in->yyt6 = in->cur;
+               goto yy16;
+       case '%':       goto yy27;
+       default:
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt6 = in->cur;
+               goto yy13;
+       }
+yy27:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy41;
+       default:        goto yy11;
+       }
+yy28:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy20;
+       default:        goto yy11;
+       }
+yy29:
+       yyaccept = 8;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 53) if (fill(in, 53) != 0) return 2;
+       yych = *in->cur;
+yy30:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy29;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy16;
+       case '%':       goto yy31;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt16 = in->yyt19 = in->cur;
+               goto yy32;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = NULL;
+               in->yyt16 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy19;
+       case '@':
+               in->yyt10 = in->cur;
+               goto yy39;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy31:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy42;
+       default:        goto yy11;
+       }
+yy32:
+       yyaccept = 9;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 3) if (fill(in, 3) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy32;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt20 = NULL;
+               in->yyt3 = in->cur;
+               goto yy16;
+       case '%':       goto yy43;
+       case '?':
+               in->yyt4 = in->yyt5 = NULL;
+               in->yyt3 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->cur;
+               goto yy13;
+       }
+yy34:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy44;
+       default:        goto yy30;
+       }
+yy35:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy44;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy37;
+       default:        goto yy30;
+       }
+yy36:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy44;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy37;
+       case '5':       goto yy45;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy34;
+       default:        goto yy30;
+       }
+yy37:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy44;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy34;
+       default:        goto yy30;
+       }
+yy38:
+       yyaccept = 10;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy47;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt17 = in->cur;
+               goto yy49;
+       case '?':
+               in->yyt4 = in->yyt5 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy39:
+       yyaccept = 11;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt15 = in->cur;
+               goto yy51;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy16;
+       case '%':
+               in->yyt15 = in->cur;
+               goto yy53;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+               in->yyt13 = in->yyt15 = in->cur;
+               goto yy54;
+       case '1':
+               in->yyt13 = in->yyt15 = in->cur;
+               goto yy55;
+       case '2':
+               in->yyt13 = in->yyt15 = in->cur;
+               goto yy56;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt13 = in->yyt15 = in->cur;
+               goto yy57;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = NULL;
+               in->yyt15 = in->yyt16 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy19;
+       case '[':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->cur;
+               goto yy40;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt15 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy40:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy59;
+       case ':':       goto yy60;
+       case 'v':       goto yy61;
+       default:        goto yy11;
+       }
+yy41:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy25;
+       default:        goto yy11;
+       }
+yy42:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy29;
+       default:        goto yy11;
+       }
+yy43:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy62;
+       default:        goto yy11;
+       }
+yy44:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy63;
+       case '1':       goto yy64;
+       case '2':       goto yy65;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy66;
+       default:        goto yy30;
+       }
+yy45:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy44;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy34;
+       default:        goto yy30;
+       }
+yy46:
+       ++in->cur;
+       if ((in->lim - in->cur) < 52) if (fill(in, 52) != 0) return 2;
+       yych = *in->cur;
+yy47:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy46;
+       case '%':       goto yy48;
+       case '@':
+               in->yyt10 = in->cur;
+               goto yy39;
+       default:        goto yy11;
+       }
+yy48:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy67;
+       default:        goto yy11;
+       }
+yy49:
+       yyaccept = 12;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 52) if (fill(in, 52) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy46;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy16;
+       case '%':       goto yy48;
+       case '/':
+               in->yyt18 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy49;
+       case '?':
+               in->yyt4 = in->yyt5 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy19;
+       case '@':
+               in->yyt10 = in->cur;
+               goto yy39;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy51:
+       yyaccept = 13;
+       in->mar = ++in->cur;
+       if ((in->lim - in->cur) < 4) if (fill(in, 4) != 0) return 2;
+       yych = *in->cur;
+yy52:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy51;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy16;
+       case '%':       goto yy53;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt16 = in->yyt19 = in->cur;
+               goto yy32;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = NULL;
+               in->yyt16 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt13 = in->yyt14 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt16 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy53:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy68;
+       default:        goto yy11;
+       }
+yy54:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy69;
+       default:        goto yy52;
+       }
+yy55:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy69;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy57;
+       default:        goto yy52;
+       }
+yy56:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy69;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy57;
+       case '5':       goto yy70;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy54;
+       default:        goto yy52;
+       }
+yy57:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy69;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy54;
+       default:        goto yy52;
+       }
+yy58:
+       yych = *++in->cur;
+       switch (yych) {
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+               in->yyt17 = in->cur;
+               goto yy71;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt17 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy59:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy73;
+       case ':':       goto yy74;
+       default:        goto yy11;
+       }
+yy60:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy75;
+       default:        goto yy11;
+       }
+yy61:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy11;
+       default:        goto yy77;
+       }
+yy62:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy32;
+       default:        goto yy11;
+       }
+yy63:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy78;
+       default:        goto yy30;
+       }
+yy64:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy78;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy66;
+       default:        goto yy30;
+       }
+yy65:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy78;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy66;
+       case '5':       goto yy79;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy63;
+       default:        goto yy30;
+       }
+yy66:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy78;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy63;
+       default:        goto yy30;
+       }
+yy67:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy46;
+       default:        goto yy11;
+       }
+yy68:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy51;
+       default:        goto yy11;
+       }
+yy69:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy80;
+       case '1':       goto yy81;
+       case '2':       goto yy82;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy83;
+       default:        goto yy52;
+       }
+yy70:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy69;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy54;
+       default:        goto yy52;
+       }
+yy71:
+       ++in->cur;
+       if ((in->lim - in->cur) < 3) if (fill(in, 3) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt18 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy71;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt18 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy73:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy84;
+       case ':':       goto yy74;
+       default:        goto yy11;
+       }
+yy74:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy85;
+       case ':':       goto yy86;
+       default:        goto yy11;
+       }
+yy75:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy87;
+       case '1':       goto yy88;
+       case '2':       goto yy89;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy90;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy91;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy76:
+       ++in->cur;
+       if ((in->lim - in->cur) < 2) if (fill(in, 2) != 0) return 2;
+       yych = *in->cur;
+yy77:
+       switch (yych) {
+       case '.':       goto yy93;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy76;
+       default:        goto yy11;
+       }
+yy78:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy94;
+       case '1':       goto yy95;
+       case '2':       goto yy96;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy97;
+       default:        goto yy30;
+       }
+yy79:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy78;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy63;
+       default:        goto yy30;
+       }
+yy80:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy98;
+       default:        goto yy52;
+       }
+yy81:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy83;
+       default:        goto yy52;
+       }
+yy82:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy83;
+       case '5':       goto yy99;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy80;
+       default:        goto yy52;
+       }
+yy83:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy80;
+       default:        goto yy52;
+       }
+yy84:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy100;
+       case ':':       goto yy74;
+       default:        goto yy11;
+       }
+yy85:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy101;
+       case ':':       goto yy102;
+       default:        goto yy11;
+       }
+yy86:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy103;
+       case '1':       goto yy104;
+       case '2':       goto yy105;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy106;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy107;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy87:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy109;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy88:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy111;
+       case ':':       goto yy110;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy109;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy89:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy111;
+       case '5':       goto yy112;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy113;
+       case ':':       goto yy110;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy109;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy90:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy113;
+       case ':':       goto yy110;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy109;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy91:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy109;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy92:
+       yych = *++in->cur;
+       switch (yych) {
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt12 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt12 = in->yyt19 = in->cur;
+               goto yy32;
+       case ':':
+               in->yyt3 = in->yyt9;
+               in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt12 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt12 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt13 = in->yyt14 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt12 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy93:
+       yych = *++in->cur;
+       switch (yych) {
+       case ']':       goto yy11;
+       default:        goto yy115;
+       }
+yy94:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy116;
+       default:        goto yy30;
+       }
+yy95:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy116;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy97;
+       default:        goto yy30;
+       }
+yy96:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy116;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy97;
+       case '5':       goto yy117;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy94;
+       default:        goto yy30;
+       }
+yy97:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy116;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy94;
+       default:        goto yy30;
+       }
+yy98:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy118;
+       case '1':       goto yy119;
+       case '2':       goto yy120;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy121;
+       default:        goto yy52;
+       }
+yy99:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy98;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy80;
+       default:        goto yy52;
+       }
+yy100:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy74;
+       default:        goto yy11;
+       }
+yy101:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy122;
+       case ':':       goto yy102;
+       default:        goto yy11;
+       }
+yy102:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy123;
+       case ':':       goto yy124;
+       default:        goto yy11;
+       }
+yy103:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy104:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy127;
+       case ':':       goto yy126;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy105:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy127;
+       case '5':       goto yy128;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy129;
+       case ':':       goto yy126;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy106:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy129;
+       case ':':       goto yy126;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy107:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy125;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy108:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy130;
+       case '1':       goto yy131;
+       case '2':       goto yy132;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy133;
+       default:        goto yy11;
+       }
+yy109:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy134;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy110:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy103;
+       case '1':       goto yy104;
+       case '2':       goto yy105;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy106;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy107;
+       default:        goto yy11;
+       }
+yy111:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy135;
+       case ':':       goto yy110;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy134;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy112:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy135;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy134;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy113:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy134;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy114:
+       ++in->cur;
+       if ((in->lim - in->cur) < 5) if (fill(in, 5) != 0) return 2;
+       yych = *in->cur;
+yy115:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy114;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy116:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy136;
+       case '1':       goto yy137;
+       case '2':       goto yy138;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy139;
+       default:        goto yy30;
+       }
+yy117:
+       yyaccept = 8;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy116;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy94;
+       default:        goto yy30;
+       }
+yy118:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy140;
+       default:        goto yy52;
+       }
+yy119:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy140;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy121;
+       default:        goto yy52;
+       }
+yy120:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy140;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy121;
+       case '5':       goto yy141;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy118;
+       default:        goto yy52;
+       }
+yy121:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy140;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy118;
+       default:        goto yy52;
+       }
+yy122:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy142;
+       case ':':       goto yy102;
+       default:        goto yy11;
+       }
+yy123:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy143;
+       case ':':       goto yy144;
+       default:        goto yy11;
+       }
+yy124:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy145;
+       case '1':       goto yy146;
+       case '2':       goto yy147;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy148;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy149;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy125:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy150;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy126:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy145;
+       case '1':       goto yy146;
+       case '2':       goto yy147;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy148;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy149;
+       default:        goto yy11;
+       }
+yy127:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy151;
+       case ':':       goto yy126;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy150;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy128:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy151;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy150;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy129:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy150;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy130:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy152;
+       default:        goto yy11;
+       }
+yy131:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy152;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy133;
+       default:        goto yy11;
+       }
+yy132:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy152;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy133;
+       case '5':       goto yy153;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy130;
+       default:        goto yy11;
+       }
+yy133:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy152;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy130;
+       default:        goto yy11;
+       }
+yy134:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy154;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy135:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy154;
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy136:
+       yyaccept = 14;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy30;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy137:
+       yyaccept = 14;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy30;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy139;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy138:
+       yyaccept = 14;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy30;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy139;
+       case '5':       goto yy155;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy136;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy139:
+       yyaccept = 14;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy30;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy136;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy140:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '0':       goto yy156;
+       case '1':       goto yy157;
+       case '2':       goto yy158;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy159;
+       default:        goto yy52;
+       }
+yy141:
+       yyaccept = 13;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '.':       goto yy140;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy118;
+       default:        goto yy52;
+       }
+yy142:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy102;
+       default:        goto yy11;
+       }
+yy143:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy160;
+       case ':':       goto yy144;
+       default:        goto yy11;
+       }
+yy144:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy161;
+       case ':':       goto yy162;
+       default:        goto yy11;
+       }
+yy145:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy146:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy165;
+       case ':':       goto yy164;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy147:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy165;
+       case '5':       goto yy166;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy167;
+       case ':':       goto yy164;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy148:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy167;
+       case ':':       goto yy164;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy149:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy163;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy150:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy168;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy151:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy168;
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy152:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy169;
+       case '1':       goto yy170;
+       case '2':       goto yy171;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy172;
+       default:        goto yy11;
+       }
+yy153:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy152;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy130;
+       default:        goto yy11;
+       }
+yy154:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy110;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy155:
+       yyaccept = 14;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy30;
+       case '#':
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy136;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy38;
+       case '?':
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy156:
+       yyaccept = 15;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy52;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy157:
+       yyaccept = 15;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy52;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy159;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy158:
+       yyaccept = 15;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy52;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy159;
+       case '5':       goto yy173;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy156;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy159:
+       yyaccept = 15;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy52;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy156;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy160:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy174;
+       case ':':       goto yy144;
+       default:        goto yy11;
+       }
+yy161:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy175;
+       case ':':       goto yy176;
+       default:        goto yy11;
+       }
+yy162:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy177;
+       case '1':       goto yy178;
+       case '2':       goto yy179;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy180;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy181;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy163:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy182;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy164:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy177;
+       case '1':       goto yy178;
+       case '2':       goto yy179;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy180;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy181;
+       default:        goto yy11;
+       }
+yy165:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy183;
+       case ':':       goto yy164;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy182;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy166:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy183;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy182;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy167:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy182;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy168:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy126;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy169:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy184;
+       default:        goto yy11;
+       }
+yy170:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy184;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy172;
+       default:        goto yy11;
+       }
+yy171:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy184;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy172;
+       case '5':       goto yy185;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy169;
+       default:        goto yy11;
+       }
+yy172:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy184;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy169;
+       default:        goto yy11;
+       }
+yy173:
+       yyaccept = 15;
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy52;
+       case '#':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt9 = in->yyt3;
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt14 = in->yyt19 = in->cur;
+               goto yy32;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy156;
+       case ':':
+               in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = NULL;
+               in->yyt14 = in->cur;
+               goto yy58;
+       case '?':
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy19;
+       default:
+               in->yyt9 = in->yyt3;
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt11 = in->yyt12 = in->yyt15 = in->yyt16 = in->yyt17 = in->yyt18 = in->yyt20 = NULL;
+               in->yyt3 = in->yyt14 = in->yyt19 = in->cur;
+               goto yy13;
+       }
+yy174:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy144;
+       default:        goto yy11;
+       }
+yy175:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy186;
+       case ':':       goto yy176;
+       default:        goto yy11;
+       }
+yy176:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy187;
+       case ':':       goto yy188;
+       default:        goto yy11;
+       }
+yy177:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy189;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy178:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy191;
+       case ':':       goto yy190;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy189;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy179:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy191;
+       case '5':       goto yy192;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy193;
+       case ':':       goto yy190;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy189;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy180:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy193;
+       case ':':       goto yy190;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy189;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy181:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy189;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy182:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy194;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy183:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy194;
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy184:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy195;
+       case '1':       goto yy196;
+       case '2':       goto yy197;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy198;
+       default:        goto yy11;
+       }
+yy185:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy184;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy169;
+       default:        goto yy11;
+       }
+yy186:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy199;
+       case ':':       goto yy176;
+       default:        goto yy11;
+       }
+yy187:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy200;
+       case ':':       goto yy201;
+       default:        goto yy11;
+       }
+yy188:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy202;
+       case '1':       goto yy203;
+       case '2':       goto yy204;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy205;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy206;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy189:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy207;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy190:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy202;
+       case '1':       goto yy203;
+       case '2':       goto yy204;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy205;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy206;
+       default:        goto yy11;
+       }
+yy191:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy208;
+       case ':':       goto yy190;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy207;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy192:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy208;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy207;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy193:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy207;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy194:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy164;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy195:
+       yych = *++in->cur;
+       switch (yych) {
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy196:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy198;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy197:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy198;
+       case '5':       goto yy209;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy195;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy198:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy195;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy199:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy176;
+       default:        goto yy11;
+       }
+yy200:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy210;
+       case ':':       goto yy201;
+       default:        goto yy11;
+       }
+yy201:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy211;
+       case ':':       goto yy212;
+       default:        goto yy11;
+       }
+yy202:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy213;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy203:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy215;
+       case ':':       goto yy214;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy213;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy204:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy215;
+       case '5':       goto yy216;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy217;
+       case ':':       goto yy214;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy213;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy205:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy217;
+       case ':':       goto yy214;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy213;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy206:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy213;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy207:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy218;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy208:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy218;
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy209:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy195;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy210:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy219;
+       case ':':       goto yy201;
+       default:        goto yy11;
+       }
+yy211:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy220;
+       case ':':       goto yy221;
+       default:        goto yy11;
+       }
+yy212:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy222;
+       case '1':       goto yy223;
+       case '2':       goto yy224;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy225;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy226;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy213:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy227;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy214:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy222;
+       case '1':       goto yy223;
+       case '2':       goto yy224;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy225;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy226;
+       default:        goto yy11;
+       }
+yy215:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy228;
+       case ':':       goto yy214;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy227;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy216:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy228;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy227;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy217:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy227;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy218:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy190;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy219:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy201;
+       default:        goto yy11;
+       }
+yy220:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy229;
+       case ':':       goto yy221;
+       default:        goto yy11;
+       }
+yy221:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':       goto yy230;
+       case '1':       goto yy231;
+       case '2':       goto yy232;
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy233;
+       case ':':       goto yy234;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy235;
+       default:        goto yy11;
+       }
+yy222:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy223:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy238;
+       case ':':       goto yy237;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy224:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy238;
+       case '5':       goto yy239;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy240;
+       case ':':       goto yy237;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy225:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy240;
+       case ':':       goto yy237;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy226:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy236;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy227:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy241;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy228:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy241;
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy229:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy242;
+       case ':':       goto yy221;
+       default:        goto yy11;
+       }
+yy230:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy243;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy231:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy245;
+       case ':':       goto yy244;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy243;
+       default:        goto yy11;
+       }
+yy232:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':       goto yy245;
+       case '5':       goto yy246;
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy247;
+       case ':':       goto yy244;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy243;
+       default:        goto yy11;
+       }
+yy233:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy247;
+       case ':':       goto yy244;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy243;
+       default:        goto yy11;
+       }
+yy234:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy248;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy235:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy243;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy236:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy249;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy237:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy248;
+       default:        goto yy11;
+       }
+yy238:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy250;
+       case ':':       goto yy237;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy249;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy239:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy250;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy249;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy240:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy249;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy241:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy214;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy242:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy221;
+       default:        goto yy11;
+       }
+yy243:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy251;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy244:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy248;
+       case ':':       goto yy195;
+       default:        goto yy11;
+       }
+yy245:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':       goto yy252;
+       case ':':       goto yy244;
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy251;
+       default:        goto yy11;
+       }
+yy246:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':       goto yy252;
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy251;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy247:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy251;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy248:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy253;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy249:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy254;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy250:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy254;
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy251:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy255;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy252:
+       yych = *++in->cur;
+       switch (yych) {
+       case '.':       goto yy108;
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy255;
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy253:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy256;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy254:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy237;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+yy255:
+       yych = *++in->cur;
+       switch (yych) {
+       case ':':       goto yy244;
+       default:        goto yy11;
+       }
+yy256:
+       yych = *++in->cur;
+       switch (yych) {
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':       goto yy195;
+       case ']':       goto yy92;
+       default:        goto yy11;
+       }
+}
+
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld URIs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error\n"); break;
+        case 2: fprintf(stderr, "yyfill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+re2c: warning: line 138: tag 'u1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'u2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h4' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h5' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'h6' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'r1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 138: tag 'p3' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
diff --git a/re2c/test/tags/bench_uri_rfc3986.i.re b/re2c/test/tags/bench_uri_rfc3986.i.re
new file mode 100644 (file)
index 0000000..0a9c80f
--- /dev/null
@@ -0,0 +1,178 @@
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    int eof;
+} input_t;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    free(in->buf);
+    fclose(in->file);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char
+        *s1, *u1, *h1, *h3, *h5, *r1, *p1, *p3, *q1, *f1,
+        *s2, *u2, *h2, *h4, *h6, *r2, *p2, *p4, *q2, *f2;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+/*!re2c
+
+    re2c:define:YYCTYPE = char;
+    re2c:define:YYCURSOR = in->cur;
+    re2c:define:YYMARKER = in->mar;
+    re2c:define:YYLIMIT = in->lim;
+    re2c:define:YYFILL = "if (fill(in, @@) != 0) return 2;";
+    re2c:define:YYFILL:naked = 1;
+    re2c:flags:tags = 1;
+    re2c:tags:expression = "in->@@";
+
+    end = "\x00";
+    eol = "\n";
+
+    alpha       = [a-zA-Z];
+    digit       = [0-9];
+    hexdigit    = [0-9a-fA-F];
+    unreserved  = alpha | digit | [-._~];
+    pct_encoded = "%" hexdigit{2};
+    sub_delims  = [!$&'()*+,;=];
+    pchar       = unreserved | pct_encoded | sub_delims | [:@];
+
+    scheme = @s1 alpha (alpha | digit | [-+.])* @s2;
+    userinfo = @u1 (unreserved | pct_encoded | sub_delims | ":")* @u2;
+    dec_octet
+        = digit
+        | [\x31-\x39] digit
+        | "1" digit{2}
+        | "2" [\x30-\x34] digit
+        | "25" [\x30-\x35];
+    ipv4address = dec_octet "." dec_octet "." dec_octet "." dec_octet;
+    h16         = hexdigit{1,4};
+    ls32        = h16 ":" h16 | ipv4address;
+    ipv6address
+        =                            (h16 ":"){6} ls32
+        |                       "::" (h16 ":"){5} ls32
+        | (               h16)? "::" (h16 ":"){4} ls32
+        | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32
+        | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32
+        | ((h16 ":"){0,3} h16)? "::"  h16 ":"     ls32
+        | ((h16 ":"){0,4} h16)? "::"              ls32
+        | ((h16 ":"){0,5} h16)? "::"              h16
+        | ((h16 ":"){0,6} h16)? "::";
+    ipvfuture   = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+;
+    ip_literal  = "[" ( ipv6address | ipvfuture ) "]";
+    reg_name    = (unreserved | pct_encoded | sub_delims)*;
+    host
+        = @h1 ip_literal  @h2
+        | @h3 ipv4address @h4
+        | @h5 reg_name    @h6;
+    port      = @r1 digit* @r2;
+    authority = (userinfo "@")? host (":" port)?;
+    path_abempty  = ("/" pchar*)*;
+    path_absolute = "/" (pchar+ ("/" pchar*)*)?;
+    path_rootless = pchar+ ("/" pchar*)*;
+    path_empty    = "";
+    hier_part
+        = "//" authority @p1 path_abempty @p2
+        | @p3 (path_absolute | path_rootless | path_empty) @p4;
+    query    = @q1 (pchar | [/?])* @q2;
+    fragment = @f1 (pchar | [/?])* @f2;
+    uri = scheme ":" hier_part ("?" query)? ("#" fragment)?;
+
+    *   { return 1; }
+    end { *count = c; *total = t; return 0; }
+    eol { goto loop; }
+    uri {
+#ifndef VERIFY
+        c += 1;
+        t += (s2 - s1) + (u2 - u1) + (h2 - h1) + (h4 - h3)
+            + (h6 - h5) + (r2 - r1) + (p2 - p1) + (p4 - p3)
+            + (q2 - q1) + (f2 - f1);
+#else
+                printf("%.*s:", (int)(s2 - s1), s1);
+        if (p1) printf("//");
+        if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+        if (h1) printf("%.*s",  (int)(h2 - h1), h1);
+        if (h3) printf("%.*s",  (int)(h4 - h3), h3);
+        if (h5) printf("%.*s",  (int)(h6 - h5), h5);
+        if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+        if (p1) printf("%.*s",  (int)(p2 - p1), p1);
+        if (p3) printf("%.*s",  (int)(p4 - p3), p3);
+        if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+        if (f1) printf("#%.*s", (int)(f2 - f1), f1);
+        printf("\n");
+#endif
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld URIs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error\n"); break;
+        case 2: fprintf(stderr, "yyfill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
diff --git a/re2c/test/tags/bench_uri_simple.i.c b/re2c/test/tags/bench_uri_simple.i.c
new file mode 100644 (file)
index 0000000..5f4efcc
--- /dev/null
@@ -0,0 +1,1382 @@
+/* Generated by re2c */
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define YYMAXFILL 7
+
+static const size_t SIZE = 4096;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    char *yyt1;
+char *yyt10;
+char *yyt11;
+char *yyt12;
+char *yyt13;
+char *yyt2;
+char *yyt3;
+char *yyt4;
+char *yyt5;
+char *yyt6;
+char *yyt7;
+char *yyt8;
+char *yyt9;
+
+    int eof;
+} input_t;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    in->yyt1 = 0;
+in->yyt10 = 0;
+in->yyt11 = 0;
+in->yyt12 = 0;
+in->yyt13 = 0;
+in->yyt2 = 0;
+in->yyt3 = 0;
+in->yyt4 = 0;
+in->yyt5 = 0;
+in->yyt6 = 0;
+in->yyt7 = 0;
+in->yyt8 = 0;
+in->yyt9 = 0;
+
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    free(in->buf);
+    fclose(in->file);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    if (in->yyt1) in->yyt1 -= free;
+if (in->yyt10) in->yyt10 -= free;
+if (in->yyt11) in->yyt11 -= free;
+if (in->yyt12) in->yyt12 -= free;
+if (in->yyt13) in->yyt13 -= free;
+if (in->yyt2) in->yyt2 -= free;
+if (in->yyt3) in->yyt3 -= free;
+if (in->yyt4) in->yyt4 -= free;
+if (in->yyt5) in->yyt5 -= free;
+if (in->yyt6) in->yyt6 -= free;
+if (in->yyt7) in->yyt7 -= free;
+if (in->yyt8) in->yyt8 -= free;
+if (in->yyt9) in->yyt9 -= free;
+
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char
+        *s1, *u1, *h1, *r1, *p1, *q1, *f1,
+        *s2, *u2, *h2, *r2, *p2, *q2, *f2;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+
+{
+       char yych;
+       if ((in->lim - in->cur) < 7) if (fill(in, 7) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case 0x00:      goto yy2;
+       case '\n':      goto yy6;
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+               in->yyt1 = in->cur;
+               goto yy8;
+       default:        goto yy4;
+       }
+yy2:
+       ++in->cur;
+       { *count = c; *total = t; return 0; }
+yy4:
+       ++in->cur;
+yy5:
+       { return 1; }
+yy6:
+       ++in->cur;
+       { goto loop; }
+yy8:
+       yych = *(in->mar = ++in->cur);
+       switch (yych) {
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy10;
+       default:        goto yy5;
+       }
+yy9:
+       ++in->cur;
+       if ((in->lim - in->cur) < 6) if (fill(in, 6) != 0) return 2;
+       yych = *in->cur;
+yy10:
+       switch (yych) {
+       case '+':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':       goto yy9;
+       case ':':
+               in->yyt2 = in->cur;
+               goto yy12;
+       default:        goto yy11;
+       }
+yy11:
+       in->cur = in->mar;
+       goto yy5;
+yy12:
+       yych = *++in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = NULL;
+               in->yyt12 = in->cur;
+               goto yy14;
+       case '#':
+               in->yyt4 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt12 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = NULL;
+               in->yyt12 = in->cur;
+               goto yy17;
+       case '?':
+               in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = NULL;
+               in->yyt3 = in->yyt12 = in->cur;
+               goto yy18;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt7 = in->yyt8 = in->yyt9 = in->yyt10 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt12 = in->cur;
+               goto yy13;
+       }
+yy13:
+       s1 = in->yyt1;
+       s2 = in->yyt2;
+       u1 = in->yyt7;
+       u2 = in->yyt8;
+       h1 = in->yyt9;
+       h2 = in->yyt10;
+       r1 = in->yyt11;
+       r2 = in->yyt11;
+       p1 = in->yyt12;
+       p2 = in->yyt3;
+       q1 = in->yyt13;
+       q2 = in->yyt4;
+       f1 = in->yyt5;
+       f2 = in->yyt6;
+       {
+#ifndef VERIFY
+        c += 1;
+        t += (s2 - s1) + (u2 - u1) + (h2 - h1)
+            + (r2 - r1) + (p2 - p1) + (q2 - q1) + (f2 - f1);
+#else
+                printf("%.*s:", (int)(s2 - s1), s1);
+        if (h1) printf("//");
+        if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+        if (h1) printf("%.*s",  (int)(h2 - h1), h1);
+        if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+                printf("%.*s",  (int)(p2 - p1), p1);
+        if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+        if (f1) printf("#%.*s", (int)(f2 - f1), f1);
+        printf("\n");
+#endif
+        goto loop;
+    }
+yy14:
+       ++in->cur;
+       if ((in->lim - in->cur) < 3) if (fill(in, 3) != 0) return 2;
+       yych = *in->cur;
+yy15:
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy14;
+       case '#':
+               in->yyt4 = in->yyt13 = NULL;
+               in->yyt3 = in->cur;
+               goto yy16;
+       case '?':
+               in->yyt3 = in->cur;
+               goto yy18;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt13 = NULL;
+               in->yyt3 = in->cur;
+               goto yy13;
+       }
+yy16:
+       yych = *++in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt5 = in->cur;
+               goto yy19;
+       default:
+               in->yyt5 = in->yyt6 = in->cur;
+               goto yy13;
+       }
+yy17:
+       yych = *++in->cur;
+       switch (yych) {
+       case '/':       goto yy21;
+       default:        goto yy15;
+       }
+yy18:
+       yych = *++in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt13 = in->cur;
+               goto yy22;
+       case '#':
+               in->yyt4 = in->yyt13 = in->cur;
+               goto yy16;
+       default:
+               in->yyt5 = in->yyt6 = NULL;
+               in->yyt4 = in->yyt13 = in->cur;
+               goto yy13;
+       }
+yy19:
+       ++in->cur;
+       if (in->lim <= in->cur) if (fill(in, 1) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy19;
+       default:
+               in->yyt6 = in->cur;
+               goto yy13;
+       }
+yy21:
+       yych = *++in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt3 = in->yyt9 = in->cur;
+               goto yy24;
+       case '[':
+       case ']':
+               in->yyt7 = in->yyt8 = NULL;
+               in->yyt9 = in->cur;
+               goto yy26;
+       default:        goto yy15;
+       }
+yy22:
+       ++in->cur;
+       if ((in->lim - in->cur) < 2) if (fill(in, 2) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '/':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case '?':
+       case '@':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy22;
+       case '#':
+               in->yyt4 = in->cur;
+               goto yy16;
+       default:
+               in->yyt5 = in->yyt6 = NULL;
+               in->yyt4 = in->cur;
+               goto yy13;
+       }
+yy24:
+       ++in->cur;
+       if ((in->lim - in->cur) < 4) if (fill(in, 4) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy24;
+       case '#':
+               in->yyt4 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy16;
+       case '/':
+               in->yyt11 = NULL;
+               in->yyt10 = in->yyt12 = in->cur;
+               goto yy14;
+       case '?':
+               in->yyt11 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy18;
+       case '@':
+               in->yyt11 = NULL;
+               in->yyt4 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy28;
+       case '[':
+       case ']':       goto yy26;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy13;
+       }
+yy26:
+       ++in->cur;
+       if ((in->lim - in->cur) < 3) if (fill(in, 3) != 0) return 2;
+       yych = *in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '[':
+       case ']':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':       goto yy26;
+       case '#':
+               in->yyt4 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy16;
+       case '/':
+       case '@':
+               in->yyt11 = NULL;
+               in->yyt10 = in->yyt12 = in->cur;
+               goto yy14;
+       case '?':
+               in->yyt11 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy18;
+       default:
+               in->yyt4 = in->yyt5 = in->yyt6 = in->yyt11 = in->yyt13 = NULL;
+               in->yyt3 = in->yyt10 = in->yyt12 = in->cur;
+               goto yy13;
+       }
+yy28:
+       yych = *++in->cur;
+       switch (yych) {
+       case '!':
+       case '$':
+       case '%':
+       case '&':
+       case '\'':
+       case '(':
+       case ')':
+       case '*':
+       case '+':
+       case ',':
+       case '-':
+       case '.':
+       case '0':
+       case '1':
+       case '2':
+       case '3':
+       case '4':
+       case '5':
+       case '6':
+       case '7':
+       case '8':
+       case '9':
+       case ':':
+       case ';':
+       case '=':
+       case 'A':
+       case 'B':
+       case 'C':
+       case 'D':
+       case 'E':
+       case 'F':
+       case 'G':
+       case 'H':
+       case 'I':
+       case 'J':
+       case 'K':
+       case 'L':
+       case 'M':
+       case 'N':
+       case 'O':
+       case 'P':
+       case 'Q':
+       case 'R':
+       case 'S':
+       case 'T':
+       case 'U':
+       case 'V':
+       case 'W':
+       case 'X':
+       case 'Y':
+       case 'Z':
+       case '[':
+       case ']':
+       case '_':
+       case 'a':
+       case 'b':
+       case 'c':
+       case 'd':
+       case 'e':
+       case 'f':
+       case 'g':
+       case 'h':
+       case 'i':
+       case 'j':
+       case 'k':
+       case 'l':
+       case 'm':
+       case 'n':
+       case 'o':
+       case 'p':
+       case 'q':
+       case 'r':
+       case 's':
+       case 't':
+       case 'u':
+       case 'v':
+       case 'w':
+       case 'x':
+       case 'y':
+       case 'z':
+       case '~':
+               in->yyt7 = in->yyt3;
+               in->yyt8 = in->yyt4;
+               in->yyt9 = in->cur;
+               goto yy26;
+       default:        goto yy15;
+       }
+}
+
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld URIs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error\n"); break;
+        case 2: fprintf(stderr, "yyfill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+re2c: warning: line 98: tag 'u1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'u2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'h1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'h2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'r1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'r2' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
+re2c: warning: line 98: tag 'p1' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
diff --git a/re2c/test/tags/bench_uri_simple.i.re b/re2c/test/tags/bench_uri_simple.i.re
new file mode 100644 (file)
index 0000000..24be914
--- /dev/null
@@ -0,0 +1,134 @@
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    int eof;
+} input_t;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    free(in->buf);
+    fclose(in->file);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static int lex(input_t *in, long *count, long *total)
+{
+    const char
+        *s1, *u1, *h1, *r1, *p1, *q1, *f1,
+        *s2, *u2, *h2, *r2, *p2, *q2, *f2;
+    long c, t;
+
+    c = 0; t = 0;
+loop:
+    in->tok = in->cur;
+/*!re2c
+
+    re2c:define:YYCTYPE = char;
+    re2c:define:YYCURSOR = in->cur;
+    re2c:define:YYMARKER = in->mar;
+    re2c:define:YYLIMIT = in->lim;
+    re2c:define:YYFILL = "if (fill(in, @@) != 0) return 2;";
+    re2c:define:YYFILL:naked = 1;
+    re2c:flags:tags = 1;
+    re2c:tags:expression = "in->@@";
+
+    end       = "\x00";
+    eol       = "\n";
+    char      = [-._~%!$&'()*+,;=a-zA-Z0-9];
+    scheme    = @s1 [-+.a-zA-Z0-9]+ @s2;
+    userinfo  = @u1 (char | [:])+ @u2;
+    host      = @h1 (char | [:[\]])+ @h2;
+    port      = @r1 [0-9]* @r2;
+    path      = @p1 (char | [:@/])* @p2;
+    query     = @q1 (char | [:@?/])* @q2;
+    fragment  = @f1 (char | [:@?/])* @f2;
+    uri       = scheme ":" ("//" (userinfo "@")? host (":" port)?)? path ("?" query)? ("#" fragment)?;
+
+    *   { return 1; }
+    end { *count = c; *total = t; return 0; }
+    eol { goto loop; }
+    uri {
+#ifndef VERIFY
+        c += 1;
+        t += (s2 - s1) + (u2 - u1) + (h2 - h1)
+            + (r2 - r1) + (p2 - p1) + (q2 - q1) + (f2 - f1);
+#else
+                printf("%.*s:", (int)(s2 - s1), s1);
+        if (h1) printf("//");
+        if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+        if (h1) printf("%.*s",  (int)(h2 - h1), h1);
+        if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+                printf("%.*s",  (int)(p2 - p1), p1);
+        if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+        if (f1) printf("#%.*s", (int)(f2 - f1), f1);
+        printf("\n");
+#endif
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count, total;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count, &total)) {
+        case 0: fprintf(stderr, "ok, parsed %ld URIs, peeked %ld chars\n", count, total); break;
+        case 1: fprintf(stderr, "syntax error\n"); break;
+        case 2: fprintf(stderr, "yyfill failed\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}