Version in base suite: 8.0.0-3 Base version: mapserver_8.0.0-3 Target version: mapserver_8.0.0-3+deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/m/mapserver/mapserver_8.0.0-3.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/m/mapserver/mapserver_8.0.0-3+deb12u1.dsc changelog | 12 libmapserver2.symbols | 3 patches/0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch | 250 patches/0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch | 200 patches/0007-mapfile-parser-fix-double-free-when-included-file-do.patch | 36 patches/9999-Update-maplexer.c.patch | 5038 ++++++++++ patches/CVE-2025-59431.patch | 255 patches/CVE-2026-33721.patch | 29 patches/series | 6 salsa-ci.yml | 9 10 files changed, 5836 insertions(+), 2 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpogwy5b7u/mapserver_8.0.0-3.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpogwy5b7u/mapserver_8.0.0-3+deb12u1.dsc: no acceptable signature found diff -Nru mapserver-8.0.0/debian/changelog mapserver-8.0.0/debian/changelog --- mapserver-8.0.0/debian/changelog 2022-11-05 13:38:38.000000000 +0000 +++ mapserver-8.0.0/debian/changelog 2026-04-17 14:43:37.000000000 +0000 @@ -1,3 +1,15 @@ +mapserver (8.0.0-3+deb12u1) bookworm; urgency=high + + * Non-maintainer upload. + * Fix CVE-2025-59431: Boolean-based SQL injection vulnerability in directive + PropertyName of the XML Filter Query. + * Fix CVE-2026-33721: Heap buffer overflow in SLD `Categorize` Threshold + parsing. + * Fix heap-buffer-overflow and double-free issues in maplexer. + * Add d/salsa-ci.yml for Salsa CI. + + -- Guilhem Moulin Fri, 17 Apr 2026 16:43:37 +0200 + mapserver (8.0.0-3) unstable; urgency=medium * Move from experimental to unstable. diff -Nru mapserver-8.0.0/debian/libmapserver2.symbols mapserver-8.0.0/debian/libmapserver2.symbols --- mapserver-8.0.0/debian/libmapserver2.symbols 2022-11-03 19:18:11.000000000 +0000 +++ mapserver-8.0.0/debian/libmapserver2.symbols 2026-04-17 14:43:37.000000000 +0000 @@ -2938,6 +2938,7 @@ msStringTrimBlanks@Base 6.2.1 msStringTrimEOL@Base 6.2.1 msStringTrimLeft@Base 6.2.1 + msStringUnescape@Base 8.0.0-3+deb12u1~ msStripPath@Base 6.2.1 msStrptime@Base 6.2.1 msStyleGetGeomTransform@Base 6.2.1 @@ -3135,12 +3136,10 @@ msyystring_begin@Base 6.2.1 msyystring_begin_state@Base 6.2.1 msyystring_buffer@Base 6.2.1 - msyystring_buffer_ptr@Base 6.2.1 msyystring_buffer_size@Base 6.2.1 msyystring_icase@Base 6.2.1 msyystring_return_state@Base 6.2.1 msyystring_size@Base 6.2.1 - msyystring_size_tmp@Base 6.2.1 msyytext@Base 6.2.1 msyywrap@Base 6.2.1 mvtWriteShape@Base 7.2.0 diff -Nru mapserver-8.0.0/debian/patches/0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch mapserver-8.0.0/debian/patches/0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch --- mapserver-8.0.0/debian/patches/0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,250 @@ +From: Even Rouault +Date: Fri, 7 Oct 2022 13:11:43 +0200 +Subject: maplexer.l: avoid non-null terminated msyystring_buffer that can + cause read heap-buffer-overflow + +Origin: https://github.com/MapServer/MapServer/commit/76c504a8acacde15781179c4b29e4123d0858c52 +Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52175 +--- + maplexer.l | 81 ++++++++++++++++++++++++++++---------------------------------- + 1 file changed, 36 insertions(+), 45 deletions(-) + +diff --git a/maplexer.l b/maplexer.l +index a3987da..00b3c85 100644 +--- a/maplexer.l ++++ b/maplexer.l +@@ -46,7 +46,6 @@ double msyynumber; + int msyystate=MS_TOKENIZE_DEFAULT; + char *msyystring=NULL; + char *msyybasepath=NULL; +-char *msyystring_buffer_ptr; + int msyystring_buffer_size = 0; + int msyystring_size; + char msyystring_begin; +@@ -54,25 +53,21 @@ char *msyystring_buffer = NULL; + int msyystring_icase = MS_FALSE; + int msyystring_return_state; + int msyystring_begin_state; +-int msyystring_size_tmp; + + int msyyreturncomments = 0; + +-#define MS_LEXER_STRING_REALLOC(string, string_size, max_size, string_ptr) \ ++#define MS_LEXER_STRING_REALLOC(string, string_size, max_size) \ + do { \ + const int string_size_macro = (int)(string_size); \ + if (string_size_macro >= (int)(max_size)) { \ +- msyystring_size_tmp = (max_size); \ + max_size = (((int)(max_size)*2) > string_size_macro) ? ((int)(max_size))*2 : string_size_macro+1; \ + string = (char *) msSmallRealloc(string, sizeof(char *) * (max_size)); \ +- string_ptr = string; \ +- string_ptr += msyystring_size_tmp; \ + } \ + } while(0) + + #define MS_LEXER_RETURN_TOKEN(token) \ + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), \ +- msyystring_buffer_size, msyystring_buffer_ptr); \ ++ msyystring_buffer_size); \ + strcpy(msyystring_buffer, msyytext); \ + return(token); + +@@ -491,7 +486,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + return(MS_BINDING); + } +@@ -513,7 +508,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_DOUBLE); + } +@@ -522,7 +517,7 @@ char path[MS_MAXPATHLEN]; + msyytext+=2; + msyytext[strlen(msyytext)-2] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_STRING); + } +@@ -531,14 +526,14 @@ char path[MS_MAXPATHLEN]; + msyytext+=2; + msyytext[strlen(msyytext)-2] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_TIME); + } + + -?[0-9]+|-?[0-9]+\.[0-9]*|-?\.[0-9]*|-?[0-9]+[eE][+-]?[0-9]+|-?[0-9]+\.[0-9]*[eE][+-]?[0-9]+|-?\.[0-9]*[eE][+-]?[0-9]+ { + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); + return(MS_NUMBER); +@@ -546,7 +541,7 @@ char path[MS_MAXPATHLEN]; + + -?[0-9]+|-?[0-9]+\.[0-9]*|-?\.[0-9]*|-?[0-9]+[eE][+-]?[0-9]+|-?[0-9]+\.[0-9]*[eE][+-]?[0-9]+|-?\.[0-9]*[eE][+-]?[0-9]+ { + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); + return(MS_TOKEN_LITERAL_NUMBER); +@@ -556,7 +551,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_LITERAL_TIME); + } +@@ -565,7 +560,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-2] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_IREGEX); + } +@@ -574,7 +569,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_REGEX); + } +@@ -583,7 +578,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_EXPRESSION); + } +@@ -592,7 +587,7 @@ char path[MS_MAXPATHLEN]; + msyytext++; + msyytext[strlen(msyytext)-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_LIST); + } +@@ -601,18 +596,13 @@ char path[MS_MAXPATHLEN]; + msyystring_return_state = MS_STRING; + msyystring_begin = msyytext[0]; + msyystring_size = 0; +- msyystring_buffer_ptr = msyystring_buffer; ++ msyystring_buffer[0] = '\0'; + BEGIN(MSSTRING); + } + + \'|\"|\"i|\'i { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); + if (msyystring_begin == msyytext[0]) { + BEGIN(msyystring_begin_state); +- +- *msyystring_buffer_ptr = '\0'; +- + if (msyystring_return_state == MS_STRING) { + if (msyystring_icase && strlen(msyytext)==2) { + msyystring_icase = MS_FALSE; // reset +@@ -624,36 +614,37 @@ char path[MS_MAXPATHLEN]; + + } + else { +- ++msyystring_size; +- *msyystring_buffer_ptr++ = *msyytext; ++ int old_size = msyystring_size; ++ msyystring_size += (strlen(msyytext)==2) ? 2 : 1; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ msyystring_buffer[old_size] = *msyytext; + if (strlen(msyytext)==2) { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- ++msyystring_size; +- *msyystring_buffer_ptr++ = msyytext[1]; ++ msyystring_buffer[old_size+1] = msyytext[1]; + } ++ msyystring_buffer[msyystring_size] = '\0'; + } + } + + \\\'|\\\"|\\\\|\\ { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- + ++msyystring_size; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ + if (strlen(msyytext) == 2) +- *msyystring_buffer_ptr++ = msyytext[1]; ++ msyystring_buffer[msyystring_size-1] = msyytext[1]; + else +- *msyystring_buffer_ptr++ = msyytext[0]; ++ msyystring_buffer[msyystring_size-1] = msyytext[0]; ++ msyystring_buffer[msyystring_size] = '\0'; + } + + [^\\\'\\\"]+ { +- char *yptr = msyytext; +- while ( *yptr ) { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- ++msyystring_size; +- *msyystring_buffer_ptr++ = *yptr++; +- } ++ int old_size = msyystring_size; ++ int msyytext_len = (int)strlen(msyytext); ++ msyystring_size += msyytext_len; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ memcpy(msyystring_buffer + old_size, msyytext, msyytext_len + 1); + } + + \"[^\"]*\"|\'[^\']*\' { +@@ -686,13 +677,13 @@ char path[MS_MAXPATHLEN]; + msyystring_return_state = MS_TOKEN_LITERAL_STRING; + msyystring_begin = msyytext[0]; + msyystring_size = 0; +- msyystring_buffer_ptr = msyystring_buffer; ++ msyystring_buffer[0] = '\0'; + BEGIN(MSSTRING); + } + + [a-z/\.][a-z0-9/\._\-\=]* { + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_STRING); + } +@@ -716,7 +707,7 @@ char path[MS_MAXPATHLEN]; + + . { + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(0); + } diff -Nru mapserver-8.0.0/debian/patches/0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch mapserver-8.0.0/debian/patches/0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch --- mapserver-8.0.0/debian/patches/0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,200 @@ +From: Even Rouault +Date: Tue, 11 Oct 2022 00:48:52 +0200 +Subject: maplexer.l: fix heap-buffer-overflow issues with NUL characters + +Origin: https://github.com/MapServer/MapServer/commit/700ea8243c496f3d574102c432deaf1a85472271 +Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52305 +--- + maplexer.l | 59 +++++++++++++++++++++++++++++------------------------------ + 1 file changed, 29 insertions(+), 30 deletions(-) + +diff --git a/maplexer.l b/maplexer.l +index 00b3c85..7a67479c 100644 +--- a/maplexer.l ++++ b/maplexer.l +@@ -484,8 +484,8 @@ char path[MS_MAXPATHLEN]; + + \[[^\]]*\] { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + return(MS_BINDING); +@@ -506,8 +506,8 @@ char path[MS_MAXPATHLEN]; + \[[^\]]*\] { + /* attribute binding - numeric (no quotes) */ + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_DOUBLE); +@@ -515,8 +515,8 @@ char path[MS_MAXPATHLEN]; + \"\[[^\"]*\]\"|\'\[[^\']*\]\' { + /* attribute binding - string (single or double quotes) */ + msyytext+=2; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-2-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_STRING); +@@ -524,15 +524,15 @@ char path[MS_MAXPATHLEN]; + \`\[[^\`]*\]\` { + /* attribute binding - time */ + msyytext+=2; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-2-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_BINDING_TIME); + } + + -?[0-9]+|-?[0-9]+\.[0-9]*|-?\.[0-9]*|-?[0-9]+[eE][+-]?[0-9]+|-?[0-9]+\.[0-9]*[eE][+-]?[0-9]+|-?\.[0-9]*[eE][+-]?[0-9]+ { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); +@@ -540,7 +540,7 @@ char path[MS_MAXPATHLEN]; + } + + -?[0-9]+|-?[0-9]+\.[0-9]*|-?\.[0-9]*|-?[0-9]+[eE][+-]?[0-9]+|-?[0-9]+\.[0-9]*[eE][+-]?[0-9]+|-?\.[0-9]*[eE][+-]?[0-9]+ { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); +@@ -549,8 +549,8 @@ char path[MS_MAXPATHLEN]; + + \`[^\`]*\` { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_LITERAL_TIME); +@@ -558,8 +558,8 @@ char path[MS_MAXPATHLEN]; + + \/[^*]{1}[^\/]*\/i { + msyytext++; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_IREGEX); +@@ -567,8 +567,8 @@ char path[MS_MAXPATHLEN]; + + \/[^*]{1}[^\/]*\/ { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_REGEX); +@@ -576,8 +576,8 @@ char path[MS_MAXPATHLEN]; + + \(.*\) { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_EXPRESSION); +@@ -585,8 +585,8 @@ char path[MS_MAXPATHLEN]; + + \{.*\} { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_LIST); +@@ -604,7 +604,7 @@ char path[MS_MAXPATHLEN]; + if (msyystring_begin == msyytext[0]) { + BEGIN(msyystring_begin_state); + if (msyystring_return_state == MS_STRING) { +- if (msyystring_icase && strlen(msyytext)==2) { ++ if (msyystring_icase && msyyleng==2) { + msyystring_icase = MS_FALSE; // reset + return MS_ISTRING; + } else +@@ -615,11 +615,11 @@ char path[MS_MAXPATHLEN]; + } + else { + int old_size = msyystring_size; +- msyystring_size += (strlen(msyytext)==2) ? 2 : 1; ++ msyystring_size += (msyyleng==2) ? 2 : 1; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, + msyystring_buffer_size); + msyystring_buffer[old_size] = *msyytext; +- if (strlen(msyytext)==2) { ++ if (msyyleng==2) { + msyystring_buffer[old_size+1] = msyytext[1]; + } + msyystring_buffer[msyystring_size] = '\0'; +@@ -631,7 +631,7 @@ char path[MS_MAXPATHLEN]; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, + msyystring_buffer_size); + +- if (strlen(msyytext) == 2) ++ if (msyyleng == 2) + msyystring_buffer[msyystring_size-1] = msyytext[1]; + else + msyystring_buffer[msyystring_size-1] = msyytext[0]; +@@ -640,16 +640,15 @@ char path[MS_MAXPATHLEN]; + + [^\\\'\\\"]+ { + int old_size = msyystring_size; +- int msyytext_len = (int)strlen(msyytext); +- msyystring_size += msyytext_len; ++ msyystring_size += msyyleng; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, + msyystring_buffer_size); +- memcpy(msyystring_buffer + old_size, msyytext, msyytext_len + 1); ++ memcpy(msyystring_buffer + old_size, msyytext, msyyleng + 1); + } + + \"[^\"]*\"|\'[^\']*\' { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; ++ msyytext[msyyleng-1-1] = '\0'; + + if(include_stack_ptr >= MAX_INCLUDE_DEPTH) { + msSetError(MS_IOERR, "Includes nested to deeply.", "msyylex()"); +@@ -682,7 +681,7 @@ char path[MS_MAXPATHLEN]; + } + + [a-z/\.][a-z0-9/\._\-\=]* { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_STRING); +@@ -706,7 +705,7 @@ char path[MS_MAXPATHLEN]; + } + + . { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(0); diff -Nru mapserver-8.0.0/debian/patches/0007-mapfile-parser-fix-double-free-when-included-file-do.patch mapserver-8.0.0/debian/patches/0007-mapfile-parser-fix-double-free-when-included-file-do.patch --- mapserver-8.0.0/debian/patches/0007-mapfile-parser-fix-double-free-when-included-file-do.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/0007-mapfile-parser-fix-double-free-when-included-file-do.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,36 @@ +From: Even Rouault +Date: Sat, 8 Apr 2023 13:18:50 +0200 +Subject: mapfile parser: fix double-free when included file doesn't exist + +Origin: https://github.com/MapServer/MapServer/commit/e3ca3cb2007c494d7dec8aec0e6443abd5ce62a2 +Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57788 +--- + maplexer.l | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/maplexer.l b/maplexer.l +index 7a67479c..bc37858 100644 +--- a/maplexer.l ++++ b/maplexer.l +@@ -655,10 +655,6 @@ char path[MS_MAXPATHLEN]; + return(-1); + } + +- include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; /* save state */ +- include_lineno[include_stack_ptr] = msyylineno; +- include_stack_ptr++; +- + msyyin = fopen(msBuildPath(path, msyybasepath, msyytext), "r"); + if(!msyyin) { + msSetError(MS_IOERR, "Error opening included file \"%s\".", "msyylex()", msyytext); +@@ -666,6 +662,10 @@ char path[MS_MAXPATHLEN]; + return(-1); + } + ++ include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; /* save state */ ++ include_lineno[include_stack_ptr] = msyylineno; ++ include_stack_ptr++; ++ + msyy_switch_to_buffer( msyy_create_buffer(msyyin, YY_BUF_SIZE) ); + msyylineno = 1; + diff -Nru mapserver-8.0.0/debian/patches/9999-Update-maplexer.c.patch mapserver-8.0.0/debian/patches/9999-Update-maplexer.c.patch --- mapserver-8.0.0/debian/patches/9999-Update-maplexer.c.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/9999-Update-maplexer.c.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,5038 @@ +From: Guilhem Moulin +Date: Mon, 23 Mar 2026 14:46:13 +0100 +Subject: Update maplexer.c + +Manually generated with `make lexer`, see scripts/vagrant/mapserver.sh +and the first paragraph in maplexer.l . + +It's pointless to carry individual re-generations in the patch queue, so +we do it once as the last patch. +--- + maplexer.c | 3170 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 1579 insertions(+), 1591 deletions(-) + +diff --git a/maplexer.c b/maplexer.c +index a2d9059..020d136 100644 +--- a/maplexer.c ++++ b/maplexer.c +@@ -1,6 +1,6 @@ +-#line 2 "/home/bjorn/code/MapServer/maplexer.c" ++#line 2 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + +-#line 4 "/home/bjorn/code/MapServer/maplexer.c" ++#line 4 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + + #define YY_INT_ALIGNED short int + +@@ -620,7 +620,7 @@ struct yy_trans_info + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +-static const flex_int16_t yy_accept[1732] = ++static const flex_int16_t yy_accept[1740] = + { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 345, 342, 1, 340, 333, 2, 342, 342, +@@ -672,147 +672,147 @@ static const flex_int16_t yy_accept[1732] = + 339, 339, 339, 339, 339, 339, 339, 304, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 234, 317, 339, 236, 318, +- 339, 68, 0, 0, 0, 0, 0, 327, 327, 0, +- 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, ++ 339, 68, 0, 0, 0, 0, 0, 0, 0, 327, ++ 327, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 2, 339, 9, 339, 339, 326, 329, 329, 2, 2, +- 0, 326, 339, 339, 339, 339, 339, 239, 339, 339, +- 339, 339, 339, 339, 339, 243, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 83, 339, 339, 339, ++ 0, 0, 328, 2, 339, 9, 339, 339, 326, 329, ++ 329, 2, 2, 0, 326, 339, 339, 339, 339, 339, ++ 239, 339, 339, 339, 339, 339, 339, 339, 243, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 339, 83, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 258, 339, 339, 339, 339, 98, 339, 339, 339, 102, +- 339, 339, 339, 105, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 121, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 269, 339, 270, 339, 145, ++ 339, 339, 339, 258, 339, 339, 339, 339, 98, 339, ++ 339, 339, 102, 339, 339, 339, 105, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 121, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 269, 339, + ++ 270, 339, 145, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 175, 339, +- 279, 339, 339, 339, 339, 339, 339, 339, 339, 339, ++ 339, 175, 339, 279, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 207, +- 339, 339, 339, 339, 339, 339, 339, 218, 339, 306, +- 339, 339, 339, 339, 308, 228, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 237, 324, 0, 327, 25, ++ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, ++ 339, 339, 207, 339, 339, 339, 339, 339, 339, 339, ++ 218, 339, 306, 339, 339, 339, 339, 308, 228, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 237, 324, + ++ 324, 0, 327, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, +- 0, 0, 0, 0, 325, 339, 10, 339, 2, 61, +- 339, 63, 339, 339, 240, 339, 339, 241, 339, 339, +- 339, 339, 339, 339, 246, 339, 72, 339, 76, 339, +- 339, 339, 339, 339, 339, 84, 339, 339, 339, 339, +- 256, 86, 339, 89, 339, 339, 257, 339, 339, 339, +- 339, 339, 339, 339, 100, 339, 339, 260, 339, 339, +- 108, 261, 339, 339, 110, 339, 339, 118, 339, 339, +- +- 186, 339, 339, 339, 339, 339, 125, 267, 339, 135, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, ++ 0, 0, 56, 0, 0, 0, 0, 0, 325, 0, ++ 339, 10, 339, 2, 61, 339, 63, 339, 339, 240, ++ 339, 339, 241, 339, 339, 339, 339, 339, 339, 246, ++ 339, 72, 339, 76, 339, 339, 339, 339, 339, 339, ++ 84, 339, 339, 339, 339, 256, 86, 339, 89, 339, ++ 339, 257, 339, 339, 339, 339, 339, 339, 339, 100, ++ 339, 339, 260, 339, 339, 108, 261, 339, 339, 110, ++ ++ 339, 339, 118, 339, 339, 186, 339, 339, 339, 339, ++ 339, 125, 267, 339, 135, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 276, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 277, 339, 252, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 276, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 339, 277, ++ 339, 252, 339, 339, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 291, 339, 339, ++ 339, 339, 339, 339, 339, 339, 295, 339, 339, 339, ++ 339, 339, 339, 339, 339, 297, 298, 200, 339, 339, ++ 339, 339, 339, 339, 302, 339, 339, 210, 339, 216, ++ ++ 339, 339, 339, 339, 222, 339, 339, 339, 339, 313, ++ 229, 339, 339, 339, 339, 339, 339, 235, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, ++ 0, 0, 0, 0, 43, 0, 0, 0, 31, 42, ++ 0, 29, 0, 0, 0, 0, 30, 0, 0, 0, ++ 0, 0, 0, 339, 339, 339, 339, 339, 339, 339, ++ 339, 242, 339, 70, 245, 339, 247, 339, 339, 339, ++ 339, 339, 79, 339, 80, 339, 339, 339, 339, 339, ++ 85, 339, 339, 339, 339, 91, 339, 94, 95, 339, ++ 259, 339, 97, 339, 339, 339, 339, 109, 264, 339, ++ ++ 339, 339, 339, 339, 265, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 134, 136, ++ 137, 339, 339, 143, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 273, 339, 274, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 291, 339, 339, 339, 339, 339, 339, 339, +- 339, 295, 339, 339, 339, 339, 339, 339, 339, 339, +- 297, 298, 200, 339, 339, 339, 339, 339, 339, 302, +- 339, 339, 210, 339, 216, 339, 339, 339, 339, 222, +- +- 339, 339, 339, 339, 313, 229, 339, 339, 339, 339, +- 339, 339, 235, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, 0, 57, 0, 0, 0, 0, 43, +- 0, 0, 0, 31, 42, 0, 29, 0, 0, 0, +- 0, 30, 0, 0, 0, 0, 339, 339, 339, 339, +- 339, 339, 339, 339, 242, 339, 70, 245, 339, 247, +- 339, 339, 339, 339, 339, 79, 339, 80, 339, 339, +- 339, 339, 339, 85, 339, 339, 339, 339, 91, 339, +- 94, 95, 339, 259, 339, 97, 339, 339, 339, 339, +- 109, 264, 339, 339, 339, 339, 339, 265, 339, 339, +- ++ 339, 339, 339, 339, 280, 176, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 290, 289, 294, 185, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 134, 136, 137, 339, 339, 143, 339, 339, 339, ++ 339, 296, 339, 195, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 300, 301, 339, 303, 209, 339, ++ ++ 212, 339, 339, 339, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 233, 316, 53, 34, 0, ++ 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, ++ 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, ++ 50, 0, 0, 0, 325, 8, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 75, 339, 339, ++ 339, 339, 315, 339, 253, 339, 255, 339, 339, 339, ++ 93, 339, 339, 99, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 117, 339, 339, 339, 339, 123, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 139, 339, ++ ++ 339, 146, 339, 339, 339, 339, 339, 339, 339, 339, ++ 155, 339, 339, 339, 339, 339, 161, 339, 339, 339, ++ 339, 339, 339, 171, 339, 339, 339, 339, 339, 177, ++ 339, 178, 339, 339, 339, 339, 184, 339, 339, 292, ++ 339, 293, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 273, 339, 274, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 280, 176, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 290, 289, +- 294, 185, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 296, 339, 195, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 300, 301, 339, +- 303, 209, 339, 212, 339, 339, 339, 339, 339, 339, +- +- 339, 339, 339, 339, 339, 339, 339, 339, 233, 316, +- 53, 34, 0, 0, 0, 0, 0, 0, 0, 0, +- 52, 0, 0, 0, 0, 0, 0, 26, 0, 0, +- 0, 0, 0, 50, 0, 0, 0, 8, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 75, +- 339, 339, 339, 339, 315, 339, 253, 339, 255, 339, +- 339, 339, 93, 339, 339, 99, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 117, 339, 339, 339, 339, +- 123, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 139, 339, 339, 146, 339, 339, 339, 339, 339, 339, +- +- 339, 339, 155, 339, 339, 339, 339, 339, 161, 339, +- 339, 339, 339, 339, 339, 171, 339, 339, 339, 339, +- 339, 177, 339, 178, 339, 339, 339, 339, 184, 339, +- 339, 292, 339, 293, 339, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 339, 221, ++ 339, 339, 339, 339, 339, 230, 231, 339, 339, 0, ++ 28, 0, 49, 41, 0, 0, 54, 0, 0, 0, ++ 32, 0, 0, 0, 0, 0, 0, 47, 0, 0, ++ ++ 320, 11, 339, 339, 339, 339, 339, 67, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 339, 87, 339, ++ 339, 339, 339, 339, 339, 339, 106, 339, 339, 339, ++ 339, 116, 339, 339, 339, 122, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 140, 339, 339, 339, 339, ++ 339, 339, 339, 339, 151, 339, 339, 158, 159, 160, ++ 339, 339, 339, 339, 339, 168, 339, 339, 174, 278, ++ 339, 339, 339, 339, 339, 339, 339, 183, 339, 339, ++ 187, 339, 339, 189, 339, 339, 339, 193, 339, 339, ++ 339, 339, 197, 339, 202, 339, 339, 299, 339, 339, ++ ++ 339, 339, 339, 339, 339, 217, 115, 339, 220, 339, ++ 339, 339, 307, 309, 314, 339, 0, 51, 0, 46, ++ 33, 55, 0, 0, 0, 48, 36, 0, 27, 0, ++ 0, 339, 339, 64, 339, 66, 339, 71, 339, 73, ++ 339, 339, 78, 339, 59, 339, 339, 92, 339, 339, ++ 339, 339, 107, 339, 113, 114, 112, 339, 120, 339, ++ 339, 339, 339, 339, 128, 339, 339, 339, 339, 339, ++ 339, 339, 339, 339, 339, 339, 154, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 221, 339, 339, 339, 339, 339, 230, 231, 339, +- 339, 0, 28, 0, 49, 41, 0, 0, 54, 0, +- 0, 0, 32, 0, 0, 0, 0, 0, 0, 47, +- 0, 0, 320, 11, 339, 339, 339, 339, 339, 67, + +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 87, 339, 339, 339, 339, 339, 339, 339, 106, 339, +- 339, 339, 339, 116, 339, 339, 339, 122, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 140, 339, 339, +- 339, 339, 339, 339, 339, 339, 151, 339, 339, 158, +- 159, 160, 339, 339, 339, 339, 339, 168, 339, 339, +- 174, 278, 339, 339, 339, 339, 339, 339, 339, 183, +- 339, 339, 187, 339, 339, 189, 339, 339, 339, 193, +- 339, 339, 339, 339, 197, 339, 202, 339, 339, 299, +- 339, 339, 339, 339, 339, 339, 339, 217, 115, 339, +- +- 220, 339, 339, 339, 307, 309, 314, 339, 0, 51, +- 0, 46, 33, 55, 0, 0, 0, 48, 36, 0, +- 27, 0, 0, 339, 339, 64, 339, 66, 339, 71, +- 339, 73, 339, 339, 78, 339, 59, 339, 339, 92, +- 339, 339, 339, 339, 107, 339, 113, 114, 112, 339, +- 120, 339, 339, 339, 339, 339, 128, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 154, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, +- 339, 339, 339, 339, 339, 60, 194, 339, 339, 339, +- +- 339, 339, 339, 339, 206, 208, 211, 339, 215, 219, +- 224, 227, 339, 339, 0, 0, 0, 0, 0, 0, +- 39, 0, 0, 339, 238, 339, 339, 74, 58, 77, +- 81, 339, 90, 96, 283, 339, 339, 111, 119, 339, +- 124, 266, 126, 339, 339, 339, 339, 339, 339, 144, +- 147, 339, 339, 339, 339, 339, 339, 339, 339, 162, +- 339, 339, 339, 339, 339, 339, 339, 339, 339, 285, +- 339, 339, 339, 339, 339, 339, 251, 339, 190, 191, +- 339, 196, 339, 198, 201, 203, 339, 205, 339, 339, +- 339, 232, 40, 35, 38, 45, 44, 37, 0, 0, +- +- 62, 339, 339, 339, 339, 339, 339, 339, 339, 127, +- 339, 339, 339, 339, 339, 148, 149, 153, 150, 339, +- 339, 339, 157, 163, 339, 170, 167, 339, 339, 173, +- 339, 286, 339, 339, 339, 339, 288, 305, 339, 192, +- 339, 204, 213, 339, 226, 0, 0, 339, 69, 339, +- 339, 339, 101, 339, 339, 339, 339, 339, 138, 339, +- 339, 339, 156, 339, 339, 172, 339, 339, 180, 181, +- 182, 339, 339, 339, 339, 0, 0, 339, 339, 339, +- 199, 104, 262, 129, 131, 133, 339, 339, 152, 339, +- 169, 275, 287, 339, 339, 339, 339, 0, 0, 339, +- +- 339, 82, 339, 339, 339, 339, 166, 188, 164, 339, +- 225, 0, 321, 65, 339, 339, 339, 141, 165, 339, +- 322, 339, 339, 339, 214, 179, 339, 339, 130, 132, +- 0 ++ 339, 339, 339, 60, 194, 339, 339, 339, 339, 339, ++ 339, 339, 206, 208, 211, 339, 215, 219, 224, 227, ++ 339, 339, 0, 0, 0, 0, 0, 0, 39, 0, ++ 0, 339, 238, 339, 339, 74, 58, 77, 81, 339, ++ 90, 96, 283, 339, 339, 111, 119, 339, 124, 266, ++ 126, 339, 339, 339, 339, 339, 339, 144, 147, 339, ++ 339, 339, 339, 339, 339, 339, 339, 162, 339, 339, ++ 339, 339, 339, 339, 339, 339, 339, 285, 339, 339, ++ 339, 339, 339, 339, 251, 339, 190, 191, 339, 196, ++ 339, 198, 201, 203, 339, 205, 339, 339, 339, 232, ++ ++ 40, 35, 38, 45, 44, 37, 0, 0, 62, 339, ++ 339, 339, 339, 339, 339, 339, 339, 127, 339, 339, ++ 339, 339, 339, 148, 149, 153, 150, 339, 339, 339, ++ 157, 163, 339, 170, 167, 339, 339, 173, 339, 286, ++ 339, 339, 339, 339, 288, 305, 339, 192, 339, 204, ++ 213, 339, 226, 0, 0, 339, 69, 339, 339, 339, ++ 101, 339, 339, 339, 339, 339, 138, 339, 339, 339, ++ 156, 339, 339, 172, 339, 339, 180, 181, 182, 339, ++ 339, 339, 339, 0, 0, 339, 339, 339, 199, 104, ++ 262, 129, 131, 133, 339, 339, 152, 339, 169, 275, ++ ++ 287, 339, 339, 339, 339, 0, 0, 339, 339, 82, ++ 339, 339, 339, 339, 166, 188, 164, 339, 225, 0, ++ 321, 65, 339, 339, 339, 141, 165, 339, 322, 339, ++ 339, 339, 214, 179, 339, 339, 130, 132, 0 + } ; + + static const YY_CHAR yy_ec[256] = +@@ -849,32 +849,32 @@ static const YY_CHAR yy_ec[256] = + + static const YY_CHAR yy_meta[87] = + { 0, +- 1, 1, 2, 1, 1, 3, 1, 1, 4, 1, +- 1, 5, 1, 6, 6, 6, 6, 6, 1, 6, +- 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, +- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +- 6, 6, 6, 6, 6, 6, 6, 1, 7, 1, +- 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, +- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, +- 6, 6, 6, 6, 6, 6, 6, 6, 1, 1, ++ 1, 1, 2, 1, 1, 3, 1, 1, 3, 1, ++ 1, 4, 1, 5, 5, 5, 5, 5, 1, 5, ++ 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, ++ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, ++ 5, 5, 5, 5, 5, 5, 5, 1, 3, 1, ++ 5, 1, 5, 5, 5, 5, 5, 5, 5, 5, ++ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, ++ 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, + 1, 1, 1, 1, 1, 1 + } ; + +-static const flex_int16_t yy_base[1756] = ++static const flex_int16_t yy_base[1765] = + { 0, + 0, 0, 86, 0, 171, 172, 173, 177, 181, 182, +- 226, 0, 1024, 3975, 185, 3975, 3975, 0, 1000, 173, ++ 226, 0, 1361, 3947, 185, 3947, 3947, 0, 1286, 173, + 296, 353, 310, 304, 353, 416, 359, 354, 421, 436, + 356, 467, 156, 290, 474, 473, 354, 483, 532, 275, +- 533, 579, 585, 540, 374, 631, 0, 938, 812, 757, +- 3975, 193, 3975, 194, 760, 711, 740, 697, 184, 314, +- 611, 713, 188, 679, 424, 479, 521, 615, 280, 644, ++ 533, 579, 585, 540, 374, 631, 0, 1226, 1191, 1128, ++ 3947, 193, 3947, 194, 1177, 1146, 1179, 1040, 184, 314, ++ 611, 1062, 188, 1004, 424, 479, 521, 615, 280, 644, + 575, 284, 299, 628, 624, 636, 306, 637, 355, 343, +- 367, 678, 155, 613, 675, 3975, 3975, 202, 676, 668, +- 0, 411, 418, 475, 0, 3975, 633, 611, 473, 477, ++ 367, 678, 155, 931, 976, 3947, 3947, 202, 887, 831, ++ 0, 411, 418, 475, 0, 3947, 764, 743, 473, 477, + +- 492, 484, 207, 0, 608, 573, 690, 704, 0, 706, +- 199, 564, 3975, 763, 849, 720, 201, 531, 759, 525, ++ 492, 484, 207, 0, 737, 734, 690, 704, 0, 706, ++ 199, 717, 3947, 763, 849, 720, 201, 531, 759, 525, + 649, 524, 645, 551, 686, 0, 685, 703, 687, 756, + 755, 0, 686, 690, 0, 727, 725, 758, 769, 771, + 754, 760, 766, 781, 769, 782, 836, 769, 771, 774, +@@ -886,16 +886,16 @@ static const flex_int16_t yy_base[1756] = + + 989, 1003, 1014, 1025, 1011, 1039, 1025, 0, 0, 1033, + 0, 1037, 1026, 1034, 1044, 1047, 1031, 1047, 1035, 1037, +- 1056, 524, 3975, 489, 456, 432, 3975, 420, 3975, 417, +- 1087, 1099, 1093, 207, 1103, 316, 3975, 3975, 3975, 3975, ++ 1056, 649, 3947, 606, 601, 551, 3947, 522, 3947, 573, ++ 1087, 1099, 1093, 207, 1103, 316, 3947, 3947, 3947, 3947, + 1059, 1061, 1060, 1095, 1088, 1092, 1088, 1093, 1103, 1101, +- 1090, 1100, 1095, 1099, 1101, 3975, 1110, 1095, 1104, 1097, +- 3975, 1101, 3975, 1105, 1121, 1106, 1115, 1116, 1144, 1126, +- 1138, 1140, 411, 1163, 1168, 1159, 3975, 401, 274, 3975, +- 3975, 444, 3975, 435, 0, 3975, 3975, 3975, 0, 3975, ++ 1090, 1100, 1095, 1099, 1101, 3947, 1110, 1095, 1104, 1097, ++ 3947, 1101, 3947, 1105, 1121, 1106, 1115, 1116, 1144, 1126, ++ 1138, 1140, 577, 1163, 1168, 1159, 569, 532, 274, 3947, ++ 3947, 574, 3947, 565, 0, 3947, 3947, 3947, 0, 3947, + 1221, 1154, 1210, 1156, 1163, 1184, 451, 326, 559, 718, + +- 392, 1177, 1307, 1178, 627, 1393, 1479, 1226, 1178, 722, ++ 554, 1177, 1307, 1178, 627, 1393, 1479, 1226, 1178, 722, + 724, 1186, 1208, 1213, 1211, 1218, 1213, 1218, 1226, 1228, + 1230, 1222, 1213, 1231, 1218, 1219, 1222, 1238, 1223, 1224, + 1229, 1230, 1294, 0, 1277, 1280, 1305, 1288, 1302, 1307, +@@ -906,355 +906,357 @@ static const flex_int16_t yy_base[1756] = + 1410, 1395, 1411, 1444, 0, 1450, 1461, 1544, 1464, 1473, + 1476, 1477, 1598, 1478, 1464, 1468, 1481, 1467, 1484, 1477, + +- 1472, 0, 390, 1490, 1491, 1483, 1476, 1477, 1495, 1518, ++ 1472, 0, 523, 1490, 1491, 1483, 1476, 1477, 1495, 1518, + 1494, 1488, 1533, 1540, 1520, 1575, 1534, 1548, 1537, 1556, + 1561, 1571, 1570, 1572, 1581, 1589, 1594, 1598, 1606, 1609, + 1596, 1607, 1610, 1607, 1619, 1602, 1611, 0, 1624, 1617, + 1616, 1614, 1632, 1615, 1635, 1650, 1644, 1658, 1656, 1657, + 1649, 1663, 1665, 1661, 1653, 0, 0, 1654, 0, 0, +- 1659, 3975, 295, 522, 291, 573, 735, 799, 1680, 1687, +- 849, 871, 1680, 1672, 1682, 1671, 1681, 1676, 1680, 1683, +- 1701, 1698, 1689, 1709, 1692, 1695, 1702, 1712, 1700, 1716, +- 1718, 1723, 1719, 1723, 3975, 1724, 1713, 1718, 1718, 1720, +- +- 1716, 1734, 1738, 1739, 1739, 1729, 1740, 1752, 583, 1033, +- 1752, 1758, 0, 1751, 1764, 1010, 3975, 0, 1763, 1764, +- 1180, 1186, 1762, 1762, 1774, 1762, 1782, 320, 1778, 1767, +- 1776, 1767, 1789, 1772, 1788, 0, 1789, 1795, 1785, 1779, +- 1779, 1782, 1803, 1796, 1801, 1796, 1794, 1816, 1805, 1827, +- 1828, 1818, 1831, 1813, 1835, 1823, 1839, 1831, 1842, 1827, +- 0, 1845, 1846, 1845, 1838, 1836, 1851, 1853, 1858, 0, +- 1840, 1841, 1853, 1848, 1852, 1863, 1868, 1854, 1872, 1875, +- 1864, 1864, 1885, 1877, 1877, 0, 1892, 1887, 1894, 1888, +- 1894, 1902, 1894, 1894, 1908, 0, 1900, 1912, 1912, 0, +- +- 1900, 1905, 1912, 1918, 1919, 1915, 1925, 1911, 1947, 1930, +- 1927, 1918, 1938, 1929, 1938, 1938, 1941, 1947, 1954, 1960, +- 1964, 1957, 1971, 1967, 1966, 1958, 1968, 1967, 0, 1973, +- 0, 1982, 1986, 1964, 1976, 1974, 1988, 1977, 1992, 1999, +- 2004, 2000, 2017, 2010, 2000, 2003, 2017, 2005, 2024, 2009, +- 2025, 2028, 2009, 2032, 2033, 2021, 2026, 2022, 2043, 2036, +- 2034, 2027, 2044, 2048, 2051, 2042, 2054, 2048, 2051, 2045, +- 2059, 2056, 2059, 2076, 2067, 2078, 2077, 0, 2077, 0, +- 2082, 2074, 2076, 2084, 2079, 0, 2086, 2082, 2102, 2084, +- 2087, 2103, 2103, 2094, 2102, 0, 3975, 1257, 1307, 3975, +- +- 2101, 2111, 2114, 2112, 2121, 2106, 2119, 2128, 2121, 2134, +- 2131, 2139, 2125, 2128, 2131, 2148, 2136, 2137, 2138, 2138, +- 2142, 2143, 2150, 2159, 2153, 2146, 2150, 2161, 3975, 2152, +- 2162, 2176, 1360, 2174, 3975, 2169, 0, 2172, 0, 0, +- 2165, 0, 2183, 2175, 0, 2177, 2189, 0, 2203, 2190, +- 2202, 2192, 2193, 2210, 0, 2211, 2210, 2215, 2204, 2214, +- 2208, 2218, 2225, 2209, 2230, 0, 2220, 2214, 2216, 2217, +- 0, 0, 2230, 0, 2221, 2226, 0, 2225, 2245, 2234, +- 2252, 2237, 2261, 2250, 0, 2249, 2254, 0, 2270, 2255, +- 0, 0, 2260, 2274, 2292, 2265, 2281, 0, 2285, 2265, +- +- 0, 2277, 2289, 2266, 2292, 2289, 2324, 0, 2284, 0, +- 2283, 2303, 2313, 2304, 2304, 2325, 2307, 2315, 2334, 2325, +- 2321, 2332, 2342, 2347, 2323, 2349, 2339, 2350, 2342, 2355, +- 2338, 0, 2335, 2360, 2343, 2350, 2369, 2359, 2355, 2375, +- 2355, 2382, 2376, 2386, 0, 2376, 0, 2390, 2383, 2376, +- 2377, 2384, 2382, 2398, 2390, 2388, 2408, 2392, 2397, 2394, +- 2398, 2402, 2398, 2403, 2404, 2413, 2420, 2424, 2422, 2413, +- 2433, 2445, 2428, 2425, 2441, 2438, 2445, 2435, 2439, 2438, +- 0, 0, 2471, 2441, 2441, 2449, 2461, 2465, 2457, 0, +- 2467, 2457, 2469, 2467, 0, 2479, 2480, 2473, 2466, 0, +- +- 2493, 2492, 2492, 2475, 0, 0, 2485, 2508, 2494, 2515, +- 2498, 2501, 0, 2516, 2503, 2505, 2520, 2518, 2523, 2526, +- 2515, 2525, 2526, 2518, 3975, 2535, 2535, 2540, 2541, 3975, +- 2524, 2543, 2541, 3975, 3975, 2552, 3975, 2546, 2548, 2551, +- 2556, 3975, 2548, 1446, 2567, 2570, 2560, 2562, 2562, 2559, +- 2572, 2567, 2563, 2573, 0, 2582, 0, 0, 2569, 0, +- 2572, 2574, 2577, 2596, 2588, 0, 2593, 0, 2583, 2586, +- 2591, 2588, 2596, 0, 2610, 2603, 2599, 2613, 0, 2618, +- 0, 2615, 2612, 0, 2609, 0, 2615, 2631, 2616, 2633, +- 0, 0, 2625, 2626, 2642, 2619, 2627, 0, 2642, 2638, +- +- 2650, 2648, 2649, 2652, 2656, 2642, 2663, 2650, 2646, 2676, +- 2662, 0, 0, 2664, 2657, 2670, 2661, 2665, 2667, 2669, +- 2671, 2669, 2689, 2692, 2682, 2690, 2698, 2701, 2690, 2687, +- 0, 2689, 0, 2696, 2694, 2695, 2698, 2699, 2698, 2719, +- 2714, 2722, 2724, 2713, 2712, 2723, 2738, 0, 0, 2736, +- 321, 2717, 2727, 2742, 2742, 2739, 2739, 2734, 0, 0, +- 0, 0, 2750, 2747, 2747, 2745, 2760, 2765, 2748, 2750, +- 2751, 2759, 2774, 2756, 0, 2766, 0, 2759, 2779, 2781, +- 2768, 2788, 2785, 2776, 2789, 2794, 2800, 0, 0, 2794, +- 0, 0, 2784, 2789, 2789, 2790, 2811, 2811, 2799, 2809, +- +- 2809, 2825, 2815, 2813, 2829, 2818, 2828, 2816, 0, 0, +- 3975, 3975, 2825, 2813, 2828, 2824, 2820, 2843, 2836, 2837, +- 3975, 2851, 2829, 2844, 2843, 2858, 2847, 3975, 2850, 2864, +- 2852, 2858, 2856, 3975, 2875, 2881, 273, 0, 2858, 2865, +- 2876, 2887, 2868, 2886, 2873, 2878, 2890, 2883, 2894, 0, +- 2886, 2885, 2887, 2903, 0, 2906, 0, 2902, 0, 2908, +- 2909, 2906, 0, 2905, 2925, 0, 2912, 2918, 2921, 2918, +- 2923, 2933, 2919, 2924, 2929, 0, 2935, 2935, 2943, 2945, +- 0, 2942, 2948, 2951, 2937, 2952, 2936, 2947, 2945, 2952, +- 0, 2955, 2965, 0, 2966, 2975, 2956, 2971, 2965, 2967, +- +- 2977, 2985, 0, 2985, 2983, 2988, 2996, 2994, 0, 2992, +- 3001, 2982, 2995, 2991, 3005, 0, 3003, 3001, 3007, 3011, +- 3005, 0, 3009, 0, 3003, 3026, 3008, 3012, 0, 3035, +- 3031, 0, 3024, 0, 3020, 3037, 3020, 3042, 3043, 3038, +- 3041, 3053, 3056, 3056, 3054, 3045, 3056, 3048, 3057, 3061, +- 3070, 3060, 3068, 3058, 3059, 3076, 3081, 3080, 3083, 3088, +- 3085, 0, 3096, 3082, 3083, 3099, 3102, 0, 0, 3093, +- 3104, 3105, 3975, 3099, 3975, 3975, 3105, 3100, 3975, 3105, +- 3103, 3116, 3975, 3123, 3118, 3109, 3108, 3125, 3129, 3975, +- 3132, 3131, 3975, 0, 3130, 3125, 3122, 3132, 3134, 0, +- +- 3130, 3135, 3134, 3149, 3156, 3161, 3164, 3158, 3170, 3155, +- 0, 3165, 3167, 3177, 3162, 3165, 3168, 3183, 0, 3174, +- 3185, 3183, 3187, 0, 3194, 3177, 3184, 0, 3185, 3183, +- 3194, 3190, 3192, 3189, 3190, 3189, 3197, 3204, 3198, 3199, +- 3214, 3213, 3231, 3215, 3230, 3241, 3239, 3222, 3244, 0, +- 0, 0, 3221, 3235, 3232, 3247, 3230, 3249, 3232, 3256, +- 0, 0, 3245, 3259, 3247, 3262, 3249, 3256, 3249, 0, +- 3263, 3252, 0, 3255, 3265, 0, 3265, 3271, 3274, 0, +- 3277, 3288, 3277, 3280, 0, 3285, 0, 3289, 3300, 0, +- 3294, 3281, 3301, 3292, 3299, 3312, 3294, 0, 0, 3291, +- +- 0, 3311, 3306, 3315, 0, 0, 0, 3307, 3309, 3975, +- 3322, 3975, 3975, 3975, 3300, 3307, 3313, 3975, 3316, 3332, +- 3975, 3336, 3337, 3325, 3327, 0, 3348, 0, 3342, 0, +- 3343, 0, 3356, 3344, 0, 3353, 0, 3348, 3355, 0, +- 3358, 3367, 3365, 3369, 0, 3358, 0, 0, 0, 3361, +- 0, 3359, 3374, 3363, 3379, 3384, 0, 3384, 3385, 3380, +- 3378, 3393, 3390, 3391, 3394, 3396, 3383, 3409, 0, 3395, +- 3409, 3408, 3401, 3418, 3421, 3424, 3410, 3430, 3428, 3426, +- 3416, 3428, 3424, 3434, 3420, 3431, 3440, 3433, 3442, 3444, +- 3438, 3448, 3446, 3442, 3456, 0, 0, 3443, 3439, 3449, +- +- 3452, 3458, 3458, 3471, 0, 0, 0, 3467, 0, 0, +- 3462, 0, 3471, 3472, 3486, 3487, 3488, 3476, 3477, 3478, +- 3975, 3489, 3480, 3480, 0, 3499, 3504, 0, 0, 0, +- 3491, 3499, 0, 0, 0, 3497, 3498, 0, 0, 3506, +- 0, 0, 0, 3499, 3519, 3520, 3507, 3526, 3510, 0, +- 0, 3530, 3519, 3532, 3529, 3544, 3533, 3544, 3544, 0, +- 3548, 3535, 3547, 3545, 3545, 3556, 3556, 3550, 3538, 0, +- 3555, 3552, 3548, 3569, 3554, 3554, 0, 3574, 0, 0, +- 3557, 0, 3580, 0, 0, 0, 3564, 0, 3578, 3573, +- 3569, 0, 3975, 3975, 3975, 3975, 3975, 3975, 3578, 3587, +- +- 0, 3585, 3582, 3587, 3584, 3595, 3597, 3597, 3597, 0, +- 3607, 3609, 3617, 3603, 3605, 0, 0, 0, 0, 3611, +- 3611, 3624, 0, 0, 3621, 0, 0, 3617, 3630, 0, +- 3631, 0, 3636, 3620, 3631, 3623, 0, 0, 3641, 0, +- 3631, 0, 3643, 3640, 0, 3642, 3633, 3646, 0, 3644, +- 3649, 3658, 0, 3660, 3652, 3674, 3676, 3664, 0, 3675, +- 3678, 3673, 0, 3661, 3675, 0, 3672, 3680, 0, 0, +- 0, 3685, 3691, 3692, 3678, 3673, 3702, 3686, 3696, 3701, +- 0, 0, 0, 3705, 3707, 0, 3687, 3708, 0, 3716, +- 0, 0, 0, 3721, 3722, 3719, 3715, 3730, 265, 3721, +- +- 3726, 0, 3738, 3740, 3741, 3742, 0, 0, 0, 3733, +- 0, 160, 3975, 0, 3735, 3736, 3739, 0, 0, 3741, +- 3975, 3736, 3741, 3745, 0, 0, 3748, 3749, 0, 0, +- 3975, 3814, 3821, 3828, 3835, 3842, 199, 3849, 3856, 3863, +- 3870, 3877, 3884, 3891, 3898, 3904, 3911, 3918, 3925, 3932, +- 3939, 3946, 3953, 3960, 3967 ++ 1659, 3947, 627, 510, 643, 1688, 461, 1689, 735, 799, ++ 1683, 1715, 849, 871, 1682, 1669, 1679, 1671, 1681, 1676, ++ 1680, 1683, 1703, 1700, 1700, 1720, 1704, 1705, 1713, 1723, ++ 1709, 1726, 1727, 1733, 1728, 1731, 3947, 1732, 1720, 1725, ++ ++ 1726, 1728, 1724, 1742, 1741, 1742, 1740, 1729, 1755, 1760, ++ 1033, 1148, 415, 1741, 1750, 0, 1745, 1765, 1010, 3947, ++ 0, 1773, 1774, 1186, 1257, 1771, 1771, 1783, 1770, 1790, ++ 443, 1786, 1775, 1784, 1775, 1797, 1780, 1795, 0, 1796, ++ 1803, 1793, 1787, 1787, 1790, 1803, 1801, 1806, 1797, 1797, ++ 1813, 1805, 1828, 1829, 1828, 1841, 1822, 1844, 1832, 1847, ++ 1839, 1850, 1835, 0, 1853, 1854, 1853, 1846, 1843, 1858, ++ 1861, 1866, 0, 1848, 1849, 1861, 1852, 1856, 1865, 1869, ++ 1857, 1875, 1877, 1864, 1864, 1886, 1878, 1887, 0, 1902, ++ 1896, 1901, 1899, 1902, 1910, 1903, 1902, 1916, 0, 1908, ++ ++ 1920, 1919, 0, 1907, 1913, 1920, 1926, 1927, 1919, 1929, ++ 1913, 1964, 1934, 1935, 1926, 1946, 1939, 1939, 1948, 1951, ++ 1956, 1963, 1969, 1971, 1963, 1988, 1974, 1971, 1964, 1974, ++ 1972, 0, 1977, 0, 1986, 1985, 1972, 1984, 1983, 1987, ++ 1980, 1997, 2007, 2014, 2008, 2028, 2021, 2011, 2015, 2027, ++ 2015, 2029, 2020, 2034, 2037, 2019, 2040, 2041, 2029, 2033, ++ 2029, 2051, 2044, 2042, 2035, 2052, 2052, 2055, 2044, 2058, ++ 2056, 2059, 2053, 2069, 2064, 2070, 2087, 2078, 2090, 2084, ++ 0, 2088, 0, 2093, 2083, 2084, 2090, 2086, 0, 2094, ++ 2090, 2109, 2091, 2095, 2111, 2111, 2102, 2110, 0, 447, ++ ++ 441, 1307, 1393, 3947, 2105, 2115, 2116, 2116, 2129, 2114, ++ 2127, 2138, 2129, 2145, 2142, 2150, 2137, 2138, 2141, 2157, ++ 2144, 2145, 2146, 2146, 2150, 2151, 2158, 2167, 2160, 2153, ++ 2158, 2169, 3947, 2160, 2170, 2182, 1446, 2166, 392, 1540, ++ 2172, 0, 2178, 0, 0, 2174, 0, 2197, 2193, 0, ++ 2188, 2206, 0, 2215, 2201, 2214, 2202, 2203, 2219, 0, ++ 2219, 2218, 2221, 2210, 2221, 2215, 2225, 2230, 2214, 2237, ++ 0, 2227, 2221, 2223, 2223, 0, 0, 2234, 0, 2225, ++ 2248, 0, 2227, 2245, 2236, 2255, 2254, 2273, 2261, 0, ++ 2261, 2264, 0, 2280, 2264, 0, 0, 2268, 2282, 2303, ++ ++ 2270, 2286, 0, 2293, 2273, 0, 2284, 2296, 2274, 2300, ++ 2297, 2333, 0, 2289, 0, 2286, 2303, 2321, 2314, 2312, ++ 2337, 2317, 2324, 2343, 2330, 2328, 2335, 2347, 2355, 2331, ++ 2356, 2346, 2358, 2350, 2363, 2346, 0, 2341, 2365, 2345, ++ 2359, 2380, 2369, 2365, 2385, 2365, 2390, 2385, 2397, 0, ++ 2386, 0, 2400, 2392, 2385, 2386, 2392, 2388, 2405, 2397, ++ 2393, 2413, 2400, 2405, 2401, 2405, 2410, 2406, 2411, 2412, ++ 2419, 2422, 2429, 2434, 2427, 2444, 2447, 2439, 2436, 2458, ++ 2450, 2456, 2446, 2449, 2447, 0, 0, 2468, 2449, 2450, ++ 2459, 2471, 2475, 2467, 0, 2477, 2464, 2477, 2475, 0, ++ ++ 2488, 2489, 2488, 2474, 0, 2492, 2499, 2502, 2485, 0, ++ 0, 2496, 2517, 2505, 2525, 2508, 2510, 0, 2525, 2512, ++ 2513, 2526, 2525, 2530, 2531, 2520, 2533, 2534, 2525, 3947, ++ 2542, 2543, 2548, 2549, 3947, 2532, 2549, 2546, 3947, 3947, ++ 2554, 3947, 2555, 2559, 2561, 2566, 3947, 2558, 1544, 2575, ++ 2579, 2558, 356, 2581, 2576, 2575, 2572, 2584, 2579, 2576, ++ 2585, 0, 2593, 0, 0, 2580, 0, 2587, 2586, 2589, ++ 2609, 2599, 0, 2603, 0, 2593, 2596, 2602, 2597, 2603, ++ 0, 2615, 2612, 2610, 2623, 0, 2628, 0, 2625, 2620, ++ 0, 2619, 0, 2625, 2645, 2629, 2647, 0, 0, 2638, ++ ++ 2639, 2654, 2631, 2640, 0, 2654, 2649, 2661, 2663, 2661, ++ 2664, 2669, 2653, 2673, 2660, 2656, 2679, 2673, 0, 0, ++ 2673, 2666, 2682, 2675, 2676, 2677, 2677, 2681, 2679, 2703, ++ 2705, 2696, 2703, 2711, 2713, 2702, 2700, 0, 2701, 0, ++ 2707, 2705, 2710, 2710, 2711, 2711, 2730, 2724, 2732, 2734, ++ 2724, 2721, 2730, 2743, 0, 0, 2745, 390, 2728, 2737, ++ 2752, 2752, 2747, 2749, 2744, 0, 0, 0, 0, 2764, ++ 2760, 2761, 2758, 2773, 2777, 2760, 2763, 2763, 2770, 2785, ++ 2771, 0, 2778, 0, 2771, 2792, 2792, 2778, 2798, 2795, ++ 2787, 2798, 2801, 2805, 0, 0, 2803, 0, 0, 2795, ++ ++ 2799, 2799, 2801, 2821, 2821, 2813, 2822, 2823, 2838, 2828, ++ 2825, 2841, 2831, 2840, 2827, 0, 0, 3947, 3947, 2836, ++ 2828, 2840, 2836, 2833, 2854, 2846, 2847, 3947, 2861, 2840, ++ 2853, 2850, 2863, 2856, 3947, 2861, 2874, 2862, 2868, 2864, ++ 3947, 2891, 2893, 295, 289, 0, 2868, 2873, 2891, 2900, ++ 2881, 2898, 2885, 2891, 2902, 2894, 2905, 0, 2901, 2896, ++ 2897, 2912, 0, 2916, 0, 2912, 0, 2919, 2918, 2913, ++ 0, 2910, 2934, 0, 2923, 2928, 2931, 2928, 2933, 2945, ++ 2930, 2935, 2941, 0, 2949, 2948, 2957, 2958, 0, 2955, ++ 2960, 2963, 2950, 2964, 2947, 2958, 2960, 2963, 0, 2965, ++ ++ 2974, 0, 2976, 2985, 2967, 2980, 2972, 2972, 2986, 2996, ++ 0, 2995, 2993, 2998, 3006, 3006, 0, 3003, 3012, 2994, ++ 3009, 3004, 3019, 0, 3016, 3014, 3019, 3023, 3018, 0, ++ 3018, 0, 3018, 3037, 3024, 3022, 0, 3044, 3041, 0, ++ 3034, 0, 3031, 3046, 3027, 3045, 3054, 3048, 3051, 3063, ++ 3066, 3068, 3065, 3056, 3068, 3062, 3070, 3075, 3083, 3073, ++ 3080, 3070, 3072, 3088, 3098, 3090, 3088, 3097, 3094, 0, ++ 3106, 3092, 3094, 3108, 3109, 0, 0, 3098, 3113, 3116, ++ 3947, 3109, 3947, 3947, 3115, 3110, 3947, 3115, 3115, 3127, ++ 3947, 3134, 3130, 3123, 3121, 3139, 3142, 3947, 3145, 3140, ++ ++ 288, 0, 3142, 3139, 3136, 3143, 3145, 0, 3145, 3146, ++ 3144, 3158, 3165, 3170, 3171, 3163, 3179, 3166, 0, 3175, ++ 3177, 3187, 3172, 3177, 3179, 3194, 0, 3185, 3196, 3196, ++ 3200, 0, 3207, 3191, 3197, 0, 3198, 3195, 3206, 3203, ++ 3204, 3200, 3201, 3204, 3208, 3214, 3207, 3208, 3223, 3220, ++ 3236, 3224, 3241, 3251, 3249, 3232, 3254, 0, 0, 0, ++ 3233, 3246, 3243, 3258, 3241, 3262, 3245, 3269, 0, 0, ++ 3259, 3272, 3260, 3274, 3261, 3269, 3261, 0, 3274, 3263, ++ 0, 3270, 3276, 0, 3275, 3280, 3283, 0, 3286, 3295, ++ 3282, 3289, 0, 3296, 0, 3299, 3310, 0, 3304, 3291, ++ ++ 3313, 3303, 3310, 3323, 3305, 0, 0, 3304, 0, 3324, ++ 3319, 3329, 0, 0, 0, 3320, 3322, 3947, 3334, 3947, ++ 3947, 3947, 3312, 3320, 3325, 3947, 3327, 3343, 3947, 3349, ++ 3350, 3335, 3336, 0, 3347, 0, 3344, 0, 3342, 0, ++ 3359, 3352, 0, 3359, 0, 3356, 3363, 0, 3370, 3378, ++ 3376, 3380, 0, 3369, 0, 0, 0, 3374, 0, 3372, ++ 3387, 3377, 3392, 3397, 0, 3396, 3397, 3393, 3390, 3404, ++ 3401, 3404, 3407, 3406, 3392, 3412, 0, 3403, 3415, 3414, ++ 3404, 3421, 3429, 3430, 3418, 3438, 3440, 3437, 3427, 3439, ++ 3435, 3447, 3433, 3444, 3454, 3446, 3455, 3456, 3450, 3461, ++ ++ 3458, 3453, 3467, 0, 0, 3456, 3452, 3459, 3461, 3461, ++ 3466, 3477, 0, 0, 0, 3473, 0, 0, 3465, 0, ++ 3474, 3480, 3492, 3495, 3496, 3488, 3488, 3489, 3947, 3498, ++ 3492, 3494, 0, 3512, 3517, 0, 0, 0, 3509, 3511, ++ 0, 0, 0, 3507, 3508, 0, 0, 3517, 0, 0, ++ 0, 3510, 3532, 3533, 3517, 3535, 3513, 0, 0, 3538, ++ 3525, 3539, 3536, 3549, 3538, 3552, 3553, 0, 3554, 3543, ++ 3555, 3557, 3556, 3567, 3567, 3561, 3551, 0, 3568, 3565, ++ 3562, 3583, 3566, 3566, 0, 3587, 0, 0, 3571, 0, ++ 3591, 0, 0, 0, 3577, 0, 3591, 3583, 3578, 0, ++ ++ 3947, 3947, 3947, 3947, 3947, 3947, 3580, 3596, 0, 3591, ++ 3590, 3596, 3589, 3603, 3606, 3603, 3604, 0, 3619, 3620, ++ 3628, 3614, 3616, 0, 0, 0, 0, 3624, 3624, 3635, ++ 0, 0, 3633, 0, 0, 3629, 3641, 0, 3642, 0, ++ 3647, 3632, 3645, 3634, 0, 0, 3653, 0, 3643, 0, ++ 3654, 3650, 0, 3651, 3657, 3649, 0, 3647, 3652, 3658, ++ 0, 3661, 3651, 3677, 3688, 3675, 0, 3686, 3689, 3684, ++ 0, 3674, 3688, 0, 3683, 3692, 0, 0, 0, 3698, ++ 3705, 3704, 3690, 3686, 3713, 3701, 3708, 3714, 0, 0, ++ 0, 3716, 3717, 0, 3696, 3711, 0, 3724, 0, 0, ++ ++ 0, 3725, 3729, 3722, 3719, 3739, 285, 3727, 3731, 0, ++ 3750, 3751, 3752, 3753, 0, 0, 0, 3744, 0, 273, ++ 265, 0, 3748, 3749, 3750, 0, 0, 3753, 160, 3751, ++ 3756, 3757, 0, 0, 3760, 3761, 0, 0, 3947, 3826, ++ 3831, 3836, 3841, 3846, 200, 3851, 3856, 3861, 3866, 3871, ++ 3876, 3881, 3886, 3891, 3896, 3901, 3906, 3911, 3916, 3921, ++ 3926, 3931, 3936, 3941 + } ; + +-static const flex_int16_t yy_def[1756] = ++static const flex_int16_t yy_def[1765] = + { 0, +- 1731, 1, 1731, 3, 1732, 1732, 1733, 1733, 1734, 1734, +- 1731, 11, 1731, 1731, 1731, 1731, 1731, 1735, 1736, 1731, +- 1737, 1738, 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1739, 1740, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1741, 1742, 1731, 1731, 1731, 1731, 1731, 1743, 1744, +- 1745, 1731, 1731, 1731, 1746, 1731, 1731, 1737, 1737, 1737, +- +- 1737, 1737, 1731, 1735, 1736, 1736, 1731, 1731, 1737, 1737, +- 1737, 1747, 1731, 1748, 1749, 1731, 1731, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1739, 1731, 1740, 1740, 1731, 1731, 1750, 1731, 1751, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1741, 1741, 1741, 1741, 1731, 1742, 1752, 1731, +- 1731, 1743, 1731, 1744, 1745, 1731, 1731, 1731, 1746, 1731, +- 1753, 1737, 1737, 1737, 1737, 1731, 1731, 1731, 1737, 1737, +- +- 1747, 1731, 1748, 1737, 1754, 1749, 1753, 1731, 1731, 1731, +- 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1731, 1750, 1750, 1751, 1751, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- +- 1731, 1731, 1731, 1731, 1731, 1741, 1741, 1741, 1752, 1752, +- 307, 1737, 1737, 1737, 1737, 1731, 1731, 1737, 1755, 307, +- 1731, 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1731, 1731, 1731, 1731, +- +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1741, 1741, 1741, 1731, 1737, 1737, 1737, 1755, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1741, 1741, 1741, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1741, 1741, 1741, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1741, 1741, 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1741, 1741, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1741, 1741, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1731, 1731, 1731, 1731, 1731, 1731, 1741, 1741, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1741, 1741, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1741, 1741, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1741, 1741, 1737, +- +- 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1737, 1741, 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 1731, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, +- 0, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731 ++ 1739, 1, 1739, 3, 1740, 1740, 1741, 1741, 1742, 1742, ++ 1739, 11, 1739, 1739, 1739, 1739, 1739, 1743, 1744, 1739, ++ 1745, 1746, 1739, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1747, 1748, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1749, 1750, 1739, 1739, 1739, 1739, 1739, 1751, 1752, ++ 1753, 1739, 1739, 1739, 1754, 1739, 1739, 1745, 1745, 1745, ++ ++ 1745, 1745, 1739, 1743, 1744, 1744, 1739, 1739, 1745, 1745, ++ 1745, 1755, 1739, 1756, 1757, 1739, 1739, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1747, 1739, 1748, 1748, 1739, 1739, 1758, 1739, 1759, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1749, 1749, 1749, 1749, 1739, 1750, 1760, 1739, ++ 1739, 1751, 1739, 1752, 1753, 1739, 1739, 1739, 1754, 1739, ++ 1761, 1745, 1745, 1745, 1745, 1739, 1739, 1739, 1745, 1745, ++ ++ 1755, 1739, 1756, 1745, 1762, 1757, 1761, 1739, 1739, 1739, ++ 1739, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1739, 1758, 1739, 1758, 1759, 1739, 1759, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1749, 1749, 1749, ++ 1760, 1760, 1739, 307, 1745, 1745, 1745, 1745, 1739, 1739, ++ 1745, 1763, 307, 1739, 1739, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1739, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1749, 1749, 1749, 1739, 1764, ++ 1745, 1745, 1745, 1763, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1749, 1749, ++ 1749, 1764, 1739, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1749, 1749, 1749, 1739, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1749, 1749, ++ ++ 1739, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1749, ++ 1749, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1749, ++ 1749, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1749, 1749, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1749, 1749, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1749, 1749, 1745, 1745, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, ++ ++ 1745, 1745, 1745, 1745, 1745, 1749, 1749, 1745, 1745, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1749, ++ 1739, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1739, 1745, ++ 1745, 1745, 1745, 1745, 1745, 1745, 1745, 1745, 0, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739 + } ; + +-static const flex_int16_t yy_nxt[4062] = ++static const flex_int16_t yy_nxt[4034] = + { 0, + 14, 15, 16, 15, 14, 17, 18, 14, 17, 19, + 14, 14, 14, 20, 21, 22, 23, 23, 14, 14, +@@ -1278,9 +1280,9 @@ static const flex_int16_t yy_nxt[4062] = + 90, 93, 92, 96, 96, 93, 103, 107, 103, 108, + 108, 160, 97, 97, 103, 103, 103, 103, 231, 238, + +- 232, 232, 279, 103, 109, 103, 280, 239, 103, 1721, +- 103, 298, 299, 310, 310, 300, 300, 311, 311, 467, +- 467, 94, 160, 468, 468, 94, 14, 15, 16, 15, ++ 232, 232, 279, 103, 109, 103, 280, 239, 103, 273, ++ 103, 298, 299, 310, 310, 300, 300, 311, 311, 469, ++ 469, 94, 160, 470, 470, 94, 14, 15, 16, 15, + 14, 17, 18, 14, 17, 14, 14, 14, 14, 14, + 47, 98, 14, 14, 14, 14, 14, 47, 47, 99, + 47, 100, 47, 47, 47, 47, 47, 47, 47, 101, +@@ -1290,70 +1292,70 @@ static const flex_int16_t yy_nxt[4062] = + 101, 47, 47, 102, 47, 47, 47, 47, 47, 47, + + 47, 47, 47, 47, 14, 14, 14, 14, 14, 14, +- 14, 14, 110, 110, 1713, 161, 188, 251, 257, 162, +- 258, 111, 1293, 510, 116, 280, 108, 108, 471, 471, +- 233, 233, 472, 472, 1223, 117, 118, 745, 119, 234, +- 466, 266, 516, 516, 464, 120, 161, 188, 251, 257, ++ 14, 14, 110, 110, 273, 161, 188, 251, 257, 162, ++ 258, 111, 1729, 512, 116, 513, 108, 108, 473, 473, ++ 233, 233, 474, 474, 1721, 117, 118, 273, 119, 234, ++ 740, 266, 519, 519, 1301, 120, 161, 188, 251, 257, + 162, 258, 111, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 113, 112, 117, 118, 115, 119, + 234, 112, 266, 112, 121, 174, 120, 153, 122, 271, + 134, 154, 123, 135, 136, 155, 138, 139, 140, 175, + 269, 124, 141, 270, 125, 214, 272, 137, 142, 215, + +- 112, 112, 112, 634, 112, 121, 174, 302, 153, 122, ++ 112, 112, 112, 1231, 112, 121, 174, 740, 153, 122, + 271, 134, 154, 123, 135, 136, 155, 138, 139, 140, + 175, 269, 124, 141, 270, 125, 214, 272, 137, 142, + 215, 112, 112, 112, 112, 112, 112, 112, 112, 126, +- 286, 127, 143, 283, 128, 129, 144, 287, 130, 283, +- 145, 131, 280, 146, 132, 133, 147, 149, 241, 148, +- 277, 150, 242, 298, 298, 151, 466, 516, 516, 464, ++ 286, 127, 143, 740, 128, 129, 144, 287, 130, 466, ++ 145, 131, 463, 146, 132, 133, 147, 149, 241, 148, ++ 750, 150, 242, 298, 298, 151, 740, 519, 519, 466, + 126, 286, 127, 143, 152, 128, 129, 144, 287, 130, + 288, 145, 131, 288, 146, 132, 133, 147, 149, 241, + 148, 156, 150, 242, 169, 163, 151, 164, 170, 165, + + 157, 158, 171, 166, 243, 152, 167, 159, 292, 176, +- 177, 293, 168, 294, 172, 462, 295, 178, 173, 179, +- 244, 180, 156, 288, 181, 169, 163, 697, 164, 170, +- 165, 157, 158, 171, 166, 243, 225, 167, 159, 292, ++ 177, 293, 168, 294, 172, 463, 295, 178, 173, 179, ++ 244, 180, 156, 288, 181, 169, 163, 464, 164, 170, ++ 165, 157, 158, 171, 166, 243, 637, 167, 159, 292, + 176, 177, 293, 168, 294, 172, 245, 295, 178, 173, + 179, 244, 180, 182, 189, 181, 246, 183, 190, 247, +- 312, 184, 191, 208, 185, 317, 320, 186, 192, 225, +- 187, 464, 209, 223, 210, 300, 300, 245, 211, 302, +- 212, 697, 213, 106, 182, 189, 323, 246, 183, 190, ++ 312, 184, 191, 208, 185, 317, 320, 186, 192, 302, ++ 187, 465, 209, 283, 210, 300, 300, 245, 211, 283, ++ 212, 467, 213, 280, 182, 189, 323, 246, 183, 190, + 247, 312, 184, 191, 208, 185, 317, 320, 186, 192, + + 255, 187, 193, 209, 194, 210, 202, 195, 196, 211, +- 203, 212, 197, 213, 204, 256, 198, 323, 106, 199, +- 205, 200, 466, 206, 201, 235, 291, 232, 232, 301, +- 207, 255, 510, 193, 280, 194, 236, 202, 195, 196, +- 248, 203, 519, 197, 249, 204, 256, 198, 290, 227, ++ 203, 212, 197, 213, 204, 256, 198, 323, 273, 199, ++ 205, 200, 468, 206, 201, 235, 277, 232, 232, 301, ++ 207, 255, 464, 193, 462, 194, 236, 202, 195, 196, ++ 248, 203, 522, 197, 249, 204, 256, 198, 700, 227, + 199, 205, 200, 259, 206, 201, 216, 217, 250, 262, + 218, 207, 219, 260, 220, 252, 267, 236, 261, 221, +- 268, 248, 318, 253, 263, 249, 283, 264, 265, 321, +- 227, 283, 254, 319, 259, 322, 281, 216, 217, 250, +- 262, 218, 263, 219, 260, 220, 252, 267, 240, 261, ++ 268, 248, 318, 253, 263, 249, 465, 264, 265, 321, ++ 227, 225, 254, 319, 259, 322, 225, 216, 217, 250, ++ 262, 218, 465, 219, 260, 220, 252, 267, 223, 261, + + 221, 268, 274, 318, 253, 263, 296, 296, 264, 265, + 321, 275, 324, 254, 319, 297, 322, 276, 116, 326, + 108, 108, 110, 110, 327, 328, 325, 277, 334, 117, +- 335, 111, 237, 274, 300, 300, 308, 308, 311, 311, +- 311, 311, 275, 324, 230, 309, 297, 229, 276, 336, +- 326, 468, 468, 337, 338, 327, 328, 325, 228, 334, ++ 335, 111, 302, 274, 300, 300, 308, 308, 311, 311, ++ 311, 311, 275, 324, 106, 309, 297, 106, 276, 336, ++ 326, 470, 470, 337, 338, 327, 328, 325, 291, 334, + 117, 335, 111, 301, 301, 301, 301, 301, 301, 301, +- 301, 301, 301, 301, 301, 301, 309, 329, 304, 227, ++ 301, 301, 301, 301, 301, 301, 309, 329, 304, 290, + 336, 301, 313, 301, 337, 338, 314, 331, 332, 333, + 339, 340, 344, 315, 342, 343, 345, 330, 347, 316, + + 346, 350, 348, 351, 356, 341, 349, 357, 329, 358, +- 301, 301, 301, 313, 301, 468, 468, 314, 331, 332, ++ 301, 301, 301, 313, 301, 470, 470, 314, 331, 332, + 333, 339, 340, 344, 315, 342, 343, 345, 330, 347, +- 316, 346, 350, 348, 351, 356, 341, 349, 357, 226, ++ 316, 346, 350, 348, 351, 356, 341, 349, 357, 283, + 358, 301, 301, 301, 301, 301, 301, 301, 301, 305, + 305, 301, 305, 305, 305, 305, 305, 305, 305, 305, +- 305, 305, 359, 363, 307, 472, 472, 305, 352, 305, ++ 305, 305, 359, 363, 307, 474, 474, 305, 352, 305, + 353, 354, 360, 364, 355, 365, 366, 367, 368, 369, +- 361, 372, 373, 374, 370, 376, 362, 472, 472, 384, +- 375, 395, 225, 359, 363, 371, 305, 305, 305, 352, ++ 361, 372, 373, 374, 370, 376, 362, 474, 474, 384, ++ 375, 395, 283, 359, 363, 371, 305, 305, 305, 352, + + 305, 353, 354, 360, 364, 355, 365, 366, 367, 368, + 369, 361, 372, 373, 374, 370, 376, 362, 381, 377, +@@ -1363,349 +1365,346 @@ static const flex_int16_t yy_nxt[4062] = + 377, 398, 400, 394, 382, 383, 389, 401, 402, 403, + 404, 405, 406, 407, 409, 408, 378, 385, 379, 386, + 387, 396, 390, 380, 397, 388, 391, 392, 393, 399, +- 410, 411, 398, 400, 394, 417, 426, 223, 401, 402, ++ 410, 411, 398, 400, 394, 417, 426, 281, 401, 402, + 403, 404, 405, 406, 407, 409, 408, 412, 415, 427, + + 413, 418, 428, 429, 416, 430, 419, 414, 420, 421, +- 106, 410, 411, 434, 422, 435, 417, 426, 423, 424, +- 438, 425, 439, 1731, 436, 440, 516, 516, 412, 415, ++ 263, 410, 411, 434, 422, 435, 417, 426, 423, 424, ++ 438, 425, 439, 240, 436, 440, 519, 519, 412, 415, + 427, 413, 418, 428, 429, 416, 430, 419, 414, 420, + 421, 431, 432, 446, 434, 422, 435, 441, 437, 423, + 424, 438, 425, 439, 433, 436, 440, 443, 442, 444, + 447, 450, 451, 452, 453, 445, 454, 455, 448, 456, + 457, 458, 431, 432, 446, 459, 460, 461, 441, 437, +- 449, 1731, 510, 229, 735, 433, 473, 1731, 443, 442, ++ 449, 237, 512, 229, 513, 433, 475, 230, 443, 442, + 444, 447, 450, 451, 452, 453, 445, 454, 455, 448, + +- 456, 457, 458, 233, 233, 474, 459, 460, 461, 233, +- 233, 449, 234, 235, 229, 232, 232, 473, 234, 469, +- 469, 475, 476, 479, 236, 477, 478, 480, 470, 481, +- 483, 484, 485, 486, 487, 488, 474, 492, 493, 489, +- 494, 495, 482, 234, 490, 496, 497, 498, 499, 234, +- 491, 500, 475, 476, 479, 236, 477, 478, 480, 470, +- 481, 483, 484, 485, 486, 487, 488, 503, 492, 493, +- 489, 494, 495, 482, 504, 490, 496, 497, 498, 499, +- 505, 491, 500, 501, 506, 502, 1731, 508, 512, 507, +- 521, 521, 514, 1731, 522, 522, 522, 522, 503, 1731, +- +- 296, 296, 522, 522, 515, 504, 517, 518, 277, 297, +- 1731, 505, 277, 523, 501, 506, 502, 277, 508, 512, +- 507, 104, 104, 514, 104, 104, 104, 104, 104, 104, +- 104, 104, 104, 104, 343, 515, 524, 517, 518, 104, +- 297, 104, 308, 308, 523, 525, 526, 527, 528, 529, +- 530, 309, 513, 531, 532, 533, 534, 535, 536, 537, +- 538, 539, 540, 541, 542, 343, 543, 524, 104, 104, +- 104, 1731, 104, 699, 699, 1731, 525, 526, 527, 528, +- 529, 530, 309, 513, 531, 532, 533, 534, 535, 536, +- 537, 538, 539, 540, 541, 542, 1731, 543, 547, 104, ++ 456, 457, 458, 233, 233, 476, 459, 460, 461, 233, ++ 233, 449, 234, 235, 229, 232, 232, 475, 234, 471, ++ 471, 477, 478, 481, 236, 479, 480, 482, 472, 483, ++ 485, 486, 487, 488, 489, 490, 476, 494, 495, 491, ++ 496, 497, 484, 234, 492, 498, 499, 500, 501, 234, ++ 493, 502, 477, 478, 481, 236, 479, 480, 482, 472, ++ 483, 485, 486, 487, 488, 489, 490, 505, 494, 495, ++ 491, 496, 497, 484, 506, 492, 498, 499, 500, 501, ++ 507, 493, 502, 503, 508, 504, 229, 510, 515, 509, ++ 524, 524, 517, 228, 525, 525, 227, 512, 505, 739, ++ ++ 296, 296, 525, 525, 518, 506, 520, 521, 277, 297, ++ 226, 507, 277, 526, 503, 508, 504, 277, 510, 515, ++ 509, 104, 104, 517, 104, 104, 104, 104, 104, 104, ++ 104, 104, 104, 104, 343, 518, 527, 520, 521, 104, ++ 297, 104, 308, 308, 526, 528, 529, 530, 531, 532, ++ 533, 309, 516, 534, 535, 536, 537, 538, 539, 540, ++ 541, 542, 543, 544, 545, 343, 546, 527, 104, 104, ++ 104, 225, 104, 525, 525, 223, 528, 529, 530, 531, ++ 532, 533, 309, 516, 534, 535, 536, 537, 538, 539, ++ 540, 541, 542, 543, 544, 545, 106, 546, 550, 104, + + 104, 104, 104, 104, 104, 104, 104, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, +- 544, 548, 304, 699, 699, 301, 549, 301, 545, 547, +- 551, 552, 553, 554, 546, 555, 556, 557, 558, 559, +- 560, 561, 562, 550, 564, 565, 566, 567, 570, 571, +- 563, 544, 548, 572, 301, 301, 301, 549, 301, 545, +- 1731, 551, 552, 553, 554, 546, 555, 556, 557, 558, +- 559, 560, 561, 562, 550, 564, 565, 566, 567, 570, +- 571, 563, 1731, 573, 572, 301, 301, 301, 301, 301, ++ 547, 551, 304, 703, 703, 301, 552, 301, 548, 550, ++ 554, 555, 556, 557, 549, 558, 559, 560, 561, 562, ++ 563, 564, 565, 553, 567, 568, 569, 570, 573, 574, ++ 566, 547, 551, 575, 301, 301, 301, 552, 301, 548, ++ 1739, 554, 555, 556, 557, 549, 558, 559, 560, 561, ++ 562, 563, 564, 565, 553, 567, 568, 569, 570, 573, ++ 574, 566, 1739, 576, 575, 301, 301, 301, 301, 301, + 301, 301, 301, 305, 305, 301, 305, 305, 305, 305, + +- 305, 305, 305, 305, 305, 305, 568, 574, 307, 277, +- 945, 305, 575, 305, 573, 576, 569, 577, 578, 579, +- 580, 582, 583, 584, 581, 585, 586, 587, 590, 588, +- 591, 592, 593, 594, 595, 596, 597, 568, 574, 589, +- 305, 305, 305, 575, 305, 1731, 576, 569, 577, 578, +- 579, 580, 582, 583, 584, 581, 585, 586, 587, 590, +- 588, 591, 592, 593, 594, 595, 596, 597, 1731, 598, +- 589, 305, 305, 305, 305, 305, 305, 305, 305, 104, +- 104, 599, 104, 104, 104, 104, 104, 104, 104, 104, +- 104, 104, 600, 612, 613, 277, 1135, 104, 614, 104, +- +- 598, 615, 616, 626, 627, 628, 629, 630, 520, 631, +- 632, 633, 599, 635, 636, 637, 639, 640, 641, 638, +- 1731, 644, 645, 600, 612, 613, 104, 104, 104, 614, +- 104, 1731, 615, 616, 626, 627, 628, 629, 630, 520, +- 631, 632, 633, 642, 635, 636, 637, 639, 640, 641, +- 638, 643, 644, 645, 646, 650, 1731, 104, 104, 104, +- 104, 104, 104, 104, 104, 601, 602, 1731, 603, 648, +- 604, 605, 653, 606, 642, 654, 607, 655, 647, 608, +- 649, 656, 643, 609, 610, 646, 650, 611, 1731, 1731, +- 657, 1731, 658, 1731, 1731, 659, 601, 602, 651, 603, +- +- 648, 604, 605, 653, 606, 652, 654, 607, 655, 647, +- 608, 649, 656, 660, 609, 610, 661, 662, 611, 617, +- 618, 657, 619, 658, 620, 621, 659, 622, 663, 651, +- 664, 665, 668, 666, 669, 670, 652, 623, 624, 671, +- 672, 625, 673, 674, 660, 667, 675, 661, 662, 676, +- 617, 618, 677, 619, 678, 620, 621, 679, 622, 663, +- 680, 664, 665, 668, 666, 669, 670, 681, 623, 624, +- 671, 672, 625, 673, 674, 682, 667, 675, 683, 684, +- 676, 685, 686, 677, 687, 678, 691, 689, 679, 688, +- 692, 680, 690, 694, 695, 696, 469, 469, 681, 698, +- +- 698, 700, 693, 699, 699, 470, 682, 701, 702, 683, +- 684, 703, 685, 686, 704, 687, 705, 691, 689, 706, +- 688, 692, 707, 690, 694, 695, 696, 708, 709, 710, +- 711, 712, 700, 693, 713, 714, 470, 715, 701, 702, +- 716, 717, 703, 718, 719, 704, 720, 705, 721, 722, +- 706, 723, 724, 707, 725, 726, 727, 728, 708, 709, +- 710, 711, 712, 729, 730, 713, 714, 731, 715, 732, +- 1731, 716, 717, 734, 718, 719, 733, 720, 277, 721, +- 722, 511, 723, 724, 736, 725, 726, 727, 728, 277, +- 737, 738, 739, 511, 729, 730, 740, 741, 731, 742, +- +- 732, 277, 743, 744, 734, 746, 747, 733, 748, 749, +- 750, 751, 511, 752, 753, 736, 754, 756, 757, 758, +- 759, 737, 738, 739, 511, 762, 763, 740, 741, 760, +- 742, 764, 765, 743, 744, 755, 746, 747, 761, 748, +- 749, 750, 751, 766, 752, 753, 767, 754, 756, 757, +- 758, 759, 768, 769, 770, 771, 762, 763, 772, 773, +- 760, 774, 764, 765, 775, 776, 755, 777, 778, 761, +- 779, 780, 781, 782, 766, 783, 784, 767, 785, 786, +- 787, 788, 789, 768, 769, 770, 771, 790, 791, 772, +- 773, 792, 774, 793, 794, 775, 776, 795, 777, 778, +- +- 796, 779, 780, 781, 782, 797, 783, 784, 798, 785, +- 786, 787, 788, 789, 799, 800, 801, 802, 790, 791, +- 803, 806, 792, 804, 793, 794, 807, 808, 795, 809, +- 805, 796, 810, 811, 812, 813, 797, 815, 816, 798, +- 817, 818, 814, 819, 820, 799, 800, 801, 802, 821, +- 822, 803, 806, 823, 804, 827, 828, 807, 808, 829, +- 809, 805, 830, 810, 811, 812, 813, 831, 815, 816, +- 824, 817, 818, 814, 819, 820, 825, 832, 833, 834, +- 821, 822, 835, 836, 823, 837, 827, 828, 826, 838, +- 829, 839, 843, 830, 840, 844, 845, 846, 831, 847, +- +- 841, 824, 848, 849, 852, 853, 854, 825, 832, 833, +- 834, 850, 842, 835, 836, 851, 837, 855, 856, 826, +- 838, 857, 839, 843, 858, 840, 844, 845, 846, 859, +- 847, 841, 860, 848, 849, 852, 853, 854, 861, 862, +- 863, 864, 850, 842, 865, 866, 851, 869, 855, 856, +- 870, 867, 857, 871, 872, 858, 868, 873, 874, 875, +- 859, 876, 877, 860, 878, 879, 880, 881, 882, 861, +- 862, 863, 864, 883, 884, 865, 866, 885, 869, 886, +- 887, 870, 867, 888, 871, 872, 889, 868, 873, 874, +- 875, 890, 876, 877, 891, 878, 879, 880, 881, 882, +- +- 892, 893, 894, 895, 883, 884, 898, 900, 885, 896, +- 886, 887, 901, 897, 888, 902, 899, 889, 903, 904, +- 905, 906, 890, 907, 908, 891, 909, 910, 911, 912, +- 913, 892, 893, 894, 895, 914, 915, 898, 900, 916, +- 896, 917, 918, 901, 897, 919, 902, 899, 920, 903, +- 904, 905, 906, 921, 907, 908, 922, 909, 910, 911, +- 912, 913, 923, 924, 925, 926, 914, 915, 927, 928, +- 916, 929, 917, 918, 930, 931, 919, 932, 933, 920, +- 934, 935, 936, 937, 921, 938, 939, 922, 940, 941, +- 942, 943, 1731, 923, 924, 925, 926, 944, 947, 927, +- +- 928, 948, 929, 949, 950, 930, 931, 951, 932, 933, +- 946, 934, 935, 936, 937, 952, 938, 939, 953, 940, +- 941, 942, 943, 277, 954, 277, 955, 956, 944, 947, +- 957, 958, 948, 959, 949, 950, 960, 961, 951, 962, +- 963, 946, 964, 965, 966, 968, 952, 967, 969, 953, +- 970, 971, 972, 973, 974, 954, 975, 955, 956, 976, +- 977, 957, 958, 980, 959, 978, 979, 960, 961, 981, +- 962, 963, 982, 964, 965, 966, 968, 983, 967, 969, +- 984, 970, 971, 972, 973, 974, 985, 975, 986, 987, +- 976, 977, 988, 989, 980, 990, 978, 979, 991, 992, +- +- 981, 1731, 1731, 982, 998, 999, 1000, 1001, 983, 1002, +- 1003, 984, 1004, 1005, 1006, 993, 1731, 985, 1012, 986, +- 987, 1013, 1731, 988, 989, 994, 990, 1014, 995, 991, +- 992, 1731, 996, 997, 1015, 998, 999, 1000, 1001, 1016, +- 1002, 1003, 1017, 1004, 1005, 1006, 993, 1007, 1018, 1012, +- 1008, 1019, 1013, 1009, 1020, 1021, 994, 1010, 1014, 995, +- 1022, 1023, 1011, 996, 997, 1015, 1024, 1025, 1026, 1027, +- 1016, 1028, 1029, 1017, 1030, 1031, 1032, 1033, 1007, 1018, +- 1034, 1008, 1019, 1035, 1009, 1020, 1021, 1036, 1010, 1037, +- 1038, 1022, 1023, 1011, 1039, 1040, 1041, 1024, 1025, 1026, +- +- 1027, 1042, 1028, 1029, 1043, 1030, 1031, 1032, 1033, 1044, +- 1045, 1034, 1046, 1047, 1035, 1048, 1049, 1050, 1036, 1051, +- 1037, 1038, 1052, 1053, 1054, 1039, 1040, 1041, 1055, 1056, +- 1057, 1058, 1042, 1059, 1060, 1043, 1061, 1062, 1063, 1064, +- 1044, 1045, 1065, 1046, 1047, 1068, 1048, 1049, 1050, 1066, +- 1051, 1069, 1070, 1052, 1053, 1054, 1071, 1074, 1067, 1055, +- 1056, 1057, 1058, 1075, 1059, 1060, 1076, 1061, 1062, 1063, +- 1064, 1072, 1077, 1065, 1078, 1079, 1068, 1080, 1073, 1081, +- 1066, 1085, 1069, 1070, 1086, 1087, 1088, 1071, 1074, 1067, +- 1089, 1090, 1091, 1082, 1075, 1083, 1092, 1076, 1093, 1094, +- +- 1095, 1096, 1072, 1077, 1099, 1078, 1079, 1097, 1080, 1073, +- 1081, 1084, 1085, 1098, 1100, 1086, 1087, 1088, 1101, 1103, +- 1104, 1089, 1090, 1091, 1082, 1105, 1083, 1092, 1102, 1093, +- 1094, 1095, 1096, 1106, 1107, 1099, 1108, 1109, 1097, 1110, +- 1111, 1112, 1084, 1113, 1098, 1100, 1114, 1115, 1116, 1101, +- 1103, 1104, 1117, 1118, 1119, 1120, 1105, 1121, 1122, 1102, +- 1123, 1124, 1125, 1126, 1106, 1107, 1127, 1108, 1109, 1128, +- 1110, 1111, 1112, 1129, 1113, 1130, 1131, 1114, 1115, 1116, +- 1132, 1133, 1134, 1117, 1118, 1119, 1120, 1138, 1121, 1122, +- 1136, 1123, 1124, 1125, 1126, 1137, 1139, 1127, 1140, 1141, +- +- 1128, 1142, 1143, 1144, 1129, 1145, 1130, 1131, 1146, 1147, +- 1148, 1132, 1133, 1134, 1149, 1150, 277, 1151, 1138, 277, +- 1152, 1136, 1153, 1154, 1155, 1156, 1137, 1139, 1157, 1140, +- 1141, 1158, 1142, 1143, 1144, 1159, 1145, 1160, 1161, 1146, +- 1147, 1148, 1162, 1163, 1164, 1149, 1150, 1165, 1151, 1166, +- 1167, 1152, 1168, 1153, 1154, 1155, 1156, 1169, 1170, 1157, +- 1171, 1172, 1158, 1173, 1174, 1175, 1159, 1176, 1160, 1161, +- 1177, 1178, 1179, 1162, 1163, 1164, 1180, 1181, 1165, 1182, +- 1166, 1167, 1183, 1168, 1184, 1185, 1186, 1189, 1169, 1170, +- 1190, 1171, 1172, 1191, 1173, 1174, 1175, 1187, 1176, 1192, +- +- 1193, 1177, 1178, 1179, 1194, 1188, 1195, 1180, 1181, 1196, +- 1182, 1197, 1198, 1183, 1199, 1184, 1185, 1186, 1189, 1200, +- 1201, 1190, 1202, 1203, 1191, 1204, 1205, 1206, 1187, 1207, +- 1192, 1193, 1208, 1209, 1210, 1194, 1188, 1195, 1211, 1212, +- 1196, 1213, 1197, 1198, 1214, 1199, 1215, 1216, 1217, 1218, +- 1200, 1201, 1219, 1202, 1203, 1220, 1204, 1205, 1206, 1221, +- 1207, 1222, 1224, 1208, 1209, 1210, 1225, 1226, 1227, 1211, +- 1212, 1228, 1213, 1229, 1230, 1214, 1231, 1215, 1216, 1217, +- 1218, 1232, 1233, 1219, 1234, 1235, 1220, 1236, 1237, 1238, +- 1221, 1239, 1222, 1224, 1240, 1241, 1242, 1225, 1226, 1227, +- +- 1243, 1244, 1228, 1245, 1229, 1230, 1246, 1231, 1247, 1248, +- 1249, 1250, 1232, 1233, 1251, 1234, 1235, 1252, 1236, 1237, +- 1238, 1254, 1239, 1255, 1256, 1240, 1241, 1242, 1257, 1258, +- 1259, 1243, 1244, 1253, 1245, 1260, 1261, 1246, 1262, 1247, +- 1248, 1249, 1250, 1263, 1264, 1251, 1265, 1266, 1252, 1267, +- 1268, 1269, 1254, 1270, 1255, 1256, 1271, 1272, 1273, 1257, +- 1258, 1259, 1274, 1275, 1253, 1276, 1260, 1261, 1277, 1262, +- 1278, 1279, 1280, 1281, 1263, 1264, 1282, 1265, 1266, 1283, +- 1267, 1268, 1269, 1284, 1270, 1285, 1286, 1271, 1272, 1273, +- 1287, 1288, 1289, 1274, 1275, 1290, 1276, 1294, 1291, 1277, +- +- 1295, 1278, 1279, 1280, 1281, 1296, 1292, 1282, 1297, 1298, +- 1283, 1299, 1300, 1301, 1284, 1302, 1285, 1286, 1303, 1304, +- 1305, 1287, 1288, 1289, 277, 1306, 1290, 1307, 1294, 1291, +- 277, 1295, 1308, 1309, 1310, 1311, 1296, 1292, 1312, 1297, +- 1298, 1313, 1299, 1300, 1301, 1314, 1302, 1315, 1316, 1303, +- 1304, 1305, 1317, 1318, 1319, 1320, 1306, 1321, 1307, 1322, +- 1323, 1324, 1325, 1308, 1309, 1310, 1311, 1326, 1327, 1312, +- 1328, 1329, 1313, 1330, 1331, 1332, 1314, 1333, 1315, 1316, +- 1334, 1335, 1336, 1317, 1318, 1319, 1320, 1337, 1321, 1338, +- 1322, 1323, 1324, 1325, 1339, 1340, 1341, 1342, 1326, 1327, +- +- 1343, 1328, 1329, 1344, 1330, 1331, 1332, 1345, 1333, 1346, +- 1347, 1334, 1335, 1336, 1348, 1349, 1350, 1351, 1337, 1352, +- 1338, 1353, 1354, 1355, 1356, 1339, 1340, 1341, 1342, 1357, +- 1358, 1343, 1359, 1360, 1344, 1361, 1362, 1363, 1345, 1366, +- 1346, 1347, 1364, 1369, 1365, 1348, 1349, 1350, 1351, 1367, +- 1352, 1370, 1353, 1354, 1355, 1356, 1371, 1372, 1373, 1374, +- 1357, 1358, 1375, 1359, 1360, 1376, 1361, 1362, 1363, 1368, +- 1366, 1377, 1378, 1364, 1369, 1365, 1379, 1380, 1381, 1382, +- 1367, 1383, 1370, 1384, 1385, 1386, 1387, 1371, 1372, 1373, +- 1374, 1388, 1389, 1375, 1390, 1391, 1376, 1392, 1393, 1394, +- +- 1368, 1395, 1377, 1378, 1396, 1398, 1397, 1379, 1380, 1381, +- 1382, 1399, 1383, 1400, 1384, 1385, 1386, 1387, 1401, 1402, +- 1403, 1404, 1388, 1389, 1405, 1390, 1391, 1406, 1392, 1393, +- 1394, 1407, 1395, 1408, 1409, 1396, 1398, 1397, 1410, 1411, +- 1412, 1413, 1399, 1414, 1400, 1415, 1416, 1417, 1418, 1401, +- 1402, 1403, 1404, 1419, 1420, 1405, 1421, 1422, 1406, 1424, +- 1425, 1426, 1407, 1423, 1408, 1409, 1427, 1428, 1429, 1410, +- 1411, 1412, 1413, 1430, 1414, 1431, 1415, 1416, 1417, 1418, +- 277, 277, 1432, 1433, 1419, 1420, 1434, 1421, 1422, 1435, +- 1424, 1425, 1426, 1436, 1423, 1437, 1438, 1427, 1428, 1429, +- +- 1439, 1440, 1441, 1442, 1430, 1443, 1431, 1444, 1445, 1446, +- 1447, 1448, 1449, 1432, 1433, 1450, 1451, 1434, 1452, 1453, +- 1435, 1454, 1455, 1456, 1436, 1457, 1437, 1438, 1458, 1459, +- 1460, 1439, 1440, 1441, 1442, 1461, 1443, 1462, 1444, 1445, +- 1446, 1447, 1448, 1449, 1463, 1464, 1450, 1451, 1465, 1452, +- 1453, 1466, 1454, 1455, 1456, 1467, 1457, 1468, 1469, 1458, +- 1459, 1460, 1470, 1471, 1472, 1473, 1461, 1474, 1462, 1475, +- 1476, 1477, 1478, 1479, 1480, 1463, 1464, 1481, 1482, 1465, +- 1483, 1484, 1466, 1485, 1486, 1487, 1467, 1488, 1468, 1469, +- 1489, 1490, 1491, 1470, 1471, 1472, 1473, 1492, 1474, 1493, +- +- 1475, 1476, 1477, 1478, 1479, 1480, 1494, 1495, 1481, 1482, +- 1496, 1483, 1484, 1497, 1485, 1486, 1487, 1498, 1488, 1499, +- 1500, 1489, 1490, 1491, 1501, 1502, 1503, 1504, 1492, 1505, +- 1493, 1506, 1507, 1508, 1509, 1510, 1511, 1494, 1495, 1512, +- 1513, 1496, 1514, 1515, 1497, 1516, 1517, 1518, 1498, 1519, +- 1499, 1500, 1520, 1521, 1731, 1501, 1502, 1503, 1504, 1524, +- 1505, 1525, 1506, 1507, 1508, 1509, 1510, 1511, 1522, 1523, +- 1512, 1513, 1526, 1514, 1515, 1527, 1516, 1517, 1518, 1528, +- 1519, 1529, 1530, 1520, 1521, 277, 277, 1531, 1532, 1533, +- 1524, 1534, 1525, 1535, 1536, 1537, 1538, 1539, 1540, 1522, +- +- 1523, 1541, 1542, 1526, 1543, 1544, 1527, 1545, 1546, 1547, +- 1528, 1548, 1529, 1530, 1549, 1550, 1551, 1552, 1531, 1532, +- 1533, 1553, 1534, 1554, 1535, 1536, 1537, 1538, 1539, 1540, +- 1555, 1556, 1541, 1542, 1557, 1543, 1544, 1558, 1545, 1546, +- 1547, 1559, 1548, 1560, 1561, 1549, 1550, 1551, 1552, 1562, +- 1563, 1564, 1553, 1565, 1554, 1566, 1567, 1568, 1569, 1570, +- 1571, 1555, 1556, 1572, 1573, 1557, 1574, 1575, 1558, 1576, +- 1577, 1578, 1559, 1579, 1560, 1561, 1580, 1581, 1582, 1583, +- 1562, 1563, 1564, 1584, 1565, 1585, 1566, 1567, 1568, 1569, +- 1570, 1571, 1586, 1587, 1572, 1573, 1588, 1574, 1575, 1589, +- +- 1576, 1577, 1578, 1590, 1579, 1591, 1592, 1580, 1581, 1582, +- 1583, 1593, 1594, 1595, 1584, 1596, 1585, 1597, 1598, 1600, +- 1601, 1599, 1602, 1586, 1587, 1603, 1604, 1588, 1606, 277, +- 1589, 1605, 1607, 1608, 1590, 1609, 1591, 1592, 277, 1610, +- 1611, 1612, 1593, 1594, 1595, 1613, 1596, 1614, 1597, 1598, +- 1600, 1601, 1599, 1602, 1615, 1616, 1603, 1604, 1617, 1606, +- 1618, 1619, 1605, 1607, 1608, 1620, 1609, 1621, 1622, 1623, +- 1610, 1611, 1612, 1624, 1625, 1626, 1613, 1627, 1614, 1628, +- 1629, 1630, 1631, 1632, 1633, 1615, 1616, 1634, 1635, 1617, +- 1636, 1618, 1619, 1637, 1638, 1639, 1620, 1640, 1621, 1622, +- +- 1623, 1641, 1642, 1643, 1624, 1625, 1626, 1644, 1627, 1645, +- 1628, 1629, 1630, 1631, 1632, 1633, 1647, 1646, 1634, 1635, +- 1648, 1636, 1649, 1650, 1637, 1638, 1639, 277, 1640, 1651, +- 1652, 1653, 1641, 1642, 1643, 1654, 277, 1655, 1644, 1656, +- 1645, 1657, 1658, 1659, 1660, 1661, 1662, 1647, 1646, 1663, +- 1664, 1648, 1665, 1649, 1650, 1666, 1667, 1668, 1669, 1670, +- 1651, 1652, 1653, 1671, 1672, 1673, 1654, 1674, 1655, 1675, +- 1656, 1676, 1657, 1658, 1659, 1660, 1661, 1662, 1678, 1677, +- 1663, 1664, 277, 1665, 1679, 1680, 1666, 1667, 1668, 1669, +- 1670, 277, 1681, 1682, 1671, 1672, 1673, 1683, 1674, 1684, +- +- 1675, 1685, 1676, 1686, 1687, 1688, 1689, 1690, 1691, 1678, +- 1677, 1692, 1693, 1694, 1695, 1679, 1680, 1696, 1697, 1698, +- 1731, 1700, 277, 1681, 1682, 1701, 1702, 1699, 1683, 1703, +- 1684, 1704, 1685, 1705, 1686, 1687, 1688, 1689, 1690, 1691, +- 1706, 1707, 1692, 1693, 1694, 1695, 1708, 1709, 1696, 1697, +- 1698, 277, 1700, 1710, 1711, 1712, 1701, 1702, 1699, 1714, +- 1703, 1715, 1704, 1716, 1705, 1717, 1718, 1719, 1720, 1722, +- 1723, 1706, 1707, 1724, 1725, 1726, 1727, 1708, 1709, 277, +- 1728, 1729, 1730, 1731, 1710, 1711, 1712, 1731, 1731, 1731, +- 1714, 1731, 1715, 1731, 1716, 1731, 1717, 1718, 1719, 1720, +- +- 1722, 1723, 1731, 1731, 1724, 1725, 1726, 1727, 1731, 1731, +- 1731, 1728, 1729, 1730, 87, 87, 87, 87, 87, 87, +- 87, 91, 91, 91, 91, 91, 91, 91, 95, 95, +- 95, 95, 95, 95, 95, 104, 1731, 104, 104, 104, +- 104, 104, 105, 1731, 105, 105, 105, 105, 105, 114, +- 114, 114, 114, 114, 114, 114, 222, 222, 222, 222, +- 222, 222, 222, 224, 1731, 224, 224, 224, 224, 224, +- 273, 273, 273, 273, 273, 273, 273, 278, 278, 278, +- 278, 278, 278, 278, 282, 282, 282, 282, 282, 282, +- 282, 284, 284, 284, 284, 284, 284, 284, 285, 285, +- +- 1731, 1731, 285, 285, 289, 1731, 289, 289, 1731, 289, +- 289, 301, 301, 301, 301, 301, 301, 301, 303, 303, +- 303, 303, 303, 303, 303, 306, 306, 306, 306, 306, +- 306, 306, 463, 463, 1731, 463, 463, 463, 463, 465, +- 465, 465, 1731, 465, 465, 465, 509, 509, 509, 509, +- 509, 509, 509, 511, 1731, 511, 511, 511, 511, 511, +- 305, 305, 305, 305, 305, 305, 305, 104, 1731, 104, +- 104, 104, 104, 104, 13, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731 ++ 305, 305, 305, 305, 305, 305, 571, 577, 307, 703, ++ 703, 305, 578, 305, 576, 579, 572, 580, 581, 582, ++ 583, 585, 586, 587, 584, 588, 589, 590, 593, 591, ++ 594, 595, 596, 597, 598, 599, 600, 571, 577, 592, ++ 305, 305, 305, 578, 305, 1739, 579, 572, 580, 581, ++ 582, 583, 585, 586, 587, 584, 588, 589, 590, 593, ++ 591, 594, 595, 596, 597, 598, 599, 600, 1739, 601, ++ 592, 305, 305, 305, 305, 305, 305, 305, 305, 104, ++ 104, 602, 104, 104, 104, 104, 104, 104, 104, 104, ++ 104, 104, 603, 615, 616, 277, 950, 104, 617, 104, ++ ++ 601, 618, 619, 629, 630, 631, 632, 633, 523, 634, ++ 635, 636, 602, 638, 639, 640, 642, 643, 644, 641, ++ 1739, 647, 648, 603, 615, 616, 104, 104, 104, 617, ++ 104, 1739, 618, 619, 629, 630, 631, 632, 633, 523, ++ 634, 635, 636, 645, 638, 639, 640, 642, 643, 644, ++ 641, 646, 647, 648, 649, 653, 1739, 104, 104, 104, ++ 104, 104, 104, 104, 104, 604, 605, 1739, 606, 651, ++ 607, 608, 656, 609, 645, 657, 610, 658, 650, 611, ++ 652, 659, 646, 612, 613, 649, 653, 614, 1739, 952, ++ 660, 953, 661, 277, 1142, 662, 604, 605, 654, 606, ++ ++ 651, 607, 608, 656, 609, 655, 657, 610, 658, 650, ++ 611, 652, 659, 663, 612, 613, 664, 665, 614, 620, ++ 621, 660, 622, 661, 623, 624, 662, 625, 666, 654, ++ 667, 668, 671, 669, 672, 673, 655, 626, 627, 674, ++ 675, 628, 676, 677, 663, 670, 678, 664, 665, 679, ++ 620, 621, 680, 622, 681, 623, 624, 682, 625, 666, ++ 683, 667, 668, 671, 669, 672, 673, 684, 626, 627, ++ 674, 675, 628, 676, 677, 685, 670, 678, 686, 687, ++ 679, 688, 689, 680, 690, 681, 694, 692, 682, 691, ++ 695, 683, 693, 697, 698, 699, 467, 701, 684, 471, ++ ++ 471, 1739, 696, 704, 705, 706, 685, 1739, 472, 686, ++ 687, 707, 688, 689, 708, 690, 709, 694, 692, 710, ++ 691, 695, 711, 693, 697, 698, 699, 702, 702, 712, ++ 713, 703, 703, 696, 704, 705, 706, 468, 468, 472, ++ 714, 715, 707, 716, 717, 708, 718, 709, 719, 720, ++ 710, 721, 722, 711, 723, 724, 725, 726, 727, 728, ++ 712, 713, 729, 730, 731, 732, 733, 734, 735, 736, ++ 514, 714, 715, 1739, 716, 717, 741, 718, 277, 719, ++ 720, 738, 721, 722, 742, 723, 724, 725, 726, 727, ++ 728, 737, 743, 729, 730, 731, 732, 733, 734, 735, ++ ++ 736, 514, 744, 514, 277, 745, 746, 741, 747, 277, ++ 748, 749, 738, 751, 752, 742, 753, 754, 755, 756, ++ 757, 758, 737, 743, 759, 761, 762, 763, 764, 765, ++ 767, 768, 769, 744, 514, 770, 745, 746, 766, 747, ++ 771, 748, 749, 760, 751, 752, 772, 753, 754, 755, ++ 756, 757, 758, 773, 774, 759, 761, 762, 763, 764, ++ 765, 767, 768, 769, 775, 776, 770, 777, 778, 766, ++ 779, 771, 780, 781, 760, 782, 783, 772, 784, 785, ++ 786, 787, 788, 789, 773, 774, 790, 791, 792, 793, ++ 794, 795, 796, 797, 798, 775, 776, 799, 777, 778, ++ ++ 800, 779, 801, 780, 781, 802, 782, 783, 803, 784, ++ 785, 786, 787, 788, 789, 804, 805, 790, 791, 792, ++ 793, 794, 795, 796, 797, 798, 806, 807, 799, 808, ++ 809, 800, 811, 801, 812, 813, 802, 810, 814, 803, ++ 815, 816, 817, 818, 820, 821, 804, 805, 822, 823, ++ 819, 824, 825, 826, 827, 828, 1739, 806, 807, 832, ++ 808, 809, 1739, 811, 833, 812, 813, 834, 810, 814, ++ 835, 815, 816, 817, 818, 820, 821, 836, 837, 822, ++ 823, 819, 824, 825, 826, 827, 828, 829, 838, 839, ++ 832, 840, 841, 830, 842, 833, 843, 844, 834, 848, ++ ++ 849, 835, 850, 851, 852, 831, 853, 854, 836, 837, ++ 855, 845, 857, 858, 856, 859, 860, 846, 829, 838, ++ 839, 861, 840, 841, 830, 842, 862, 843, 844, 847, ++ 848, 849, 863, 850, 851, 852, 831, 853, 854, 864, ++ 865, 855, 845, 857, 858, 856, 859, 860, 846, 866, ++ 867, 868, 861, 869, 870, 871, 872, 862, 874, 875, ++ 847, 873, 876, 863, 877, 878, 879, 880, 881, 882, ++ 864, 865, 883, 884, 885, 886, 887, 888, 889, 890, ++ 866, 867, 868, 891, 869, 870, 871, 872, 892, 874, ++ 875, 893, 873, 876, 894, 877, 878, 879, 880, 881, ++ ++ 882, 895, 896, 883, 884, 885, 886, 887, 888, 889, ++ 890, 897, 898, 899, 891, 900, 901, 903, 905, 892, ++ 902, 906, 893, 907, 908, 894, 909, 904, 910, 911, ++ 912, 913, 895, 896, 914, 915, 916, 917, 918, 919, ++ 920, 921, 897, 898, 899, 922, 900, 901, 903, 905, ++ 923, 902, 906, 924, 907, 908, 925, 909, 904, 910, ++ 911, 912, 913, 926, 927, 914, 915, 916, 917, 918, ++ 919, 920, 921, 928, 929, 930, 922, 931, 932, 933, ++ 934, 923, 935, 936, 924, 937, 938, 925, 939, 940, ++ 941, 942, 943, 944, 926, 927, 945, 946, 947, 948, ++ ++ 1739, 954, 951, 949, 928, 929, 930, 955, 931, 932, ++ 933, 934, 956, 935, 936, 277, 937, 938, 957, 939, ++ 940, 941, 942, 943, 944, 958, 959, 945, 946, 947, ++ 948, 277, 954, 951, 949, 960, 961, 962, 955, 963, ++ 964, 965, 966, 956, 967, 968, 970, 969, 971, 957, ++ 972, 973, 975, 976, 974, 977, 958, 959, 978, 979, ++ 980, 981, 982, 983, 984, 987, 960, 961, 962, 988, ++ 963, 964, 965, 966, 989, 967, 968, 970, 969, 971, ++ 990, 972, 973, 975, 976, 974, 977, 985, 986, 978, ++ 979, 980, 981, 982, 983, 984, 987, 991, 992, 993, ++ ++ 988, 994, 995, 996, 997, 989, 998, 999, 1739, 1005, ++ 1006, 990, 1739, 1739, 1007, 1008, 1009, 1010, 985, 986, ++ 1011, 1012, 1013, 1019, 1020, 1739, 1000, 1021, 991, 992, ++ 993, 1739, 994, 995, 996, 997, 1001, 998, 999, 1002, ++ 1005, 1006, 1022, 1003, 1004, 1007, 1008, 1009, 1010, 1023, ++ 1024, 1011, 1012, 1013, 1019, 1020, 1014, 1000, 1021, 1015, ++ 1025, 1026, 1016, 1027, 1028, 1029, 1017, 1001, 1030, 1031, ++ 1002, 1018, 1032, 1022, 1003, 1004, 1033, 1034, 1035, 1036, ++ 1023, 1024, 1037, 1038, 1039, 1040, 1041, 1014, 1042, 1043, ++ 1015, 1025, 1026, 1016, 1027, 1028, 1029, 1017, 1044, 1030, ++ ++ 1031, 1045, 1018, 1032, 1046, 1047, 1048, 1033, 1034, 1035, ++ 1036, 1049, 1050, 1037, 1038, 1039, 1040, 1041, 1051, 1042, ++ 1043, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1044, ++ 1060, 1061, 1045, 1062, 1063, 1046, 1047, 1048, 1064, 1065, ++ 1066, 1067, 1049, 1050, 1068, 1069, 1070, 1071, 1072, 1051, ++ 1075, 1073, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, ++ 1074, 1060, 1061, 1076, 1062, 1063, 1077, 1078, 1081, 1064, ++ 1065, 1066, 1067, 1079, 1082, 1068, 1069, 1070, 1071, 1072, ++ 1080, 1075, 1073, 1083, 1084, 1085, 1086, 1087, 1088, 1092, ++ 1089, 1074, 1090, 1093, 1076, 1094, 1095, 1077, 1078, 1081, ++ ++ 1096, 1097, 1098, 1099, 1079, 1082, 1100, 1101, 1091, 1102, ++ 1103, 1080, 1106, 1107, 1083, 1084, 1085, 1086, 1087, 1088, ++ 1092, 1089, 1104, 1090, 1093, 1108, 1094, 1095, 1105, 1110, ++ 1111, 1096, 1097, 1098, 1099, 1109, 1112, 1100, 1101, 1091, ++ 1102, 1103, 1113, 1106, 1107, 1114, 1115, 1116, 1117, 1118, ++ 1119, 1120, 1121, 1104, 1122, 1123, 1108, 1124, 1125, 1105, ++ 1110, 1111, 1126, 1127, 1128, 1129, 1109, 1112, 1130, 1131, ++ 1132, 1133, 1134, 1113, 1135, 1136, 1114, 1115, 1116, 1117, ++ 1118, 1119, 1120, 1121, 1137, 1122, 1123, 1138, 1124, 1125, ++ 1139, 1140, 1141, 1126, 1127, 1128, 1129, 1739, 1143, 1130, ++ ++ 1131, 1132, 1133, 1134, 1144, 1135, 1136, 952, 1146, 1145, ++ 1147, 1148, 1149, 1150, 1151, 1137, 1152, 1153, 1138, 1154, ++ 1155, 1139, 1140, 1141, 277, 1156, 1157, 1158, 277, 1143, ++ 1159, 1160, 1161, 1162, 1163, 1144, 1164, 1165, 1166, 1146, ++ 1167, 1147, 1148, 1149, 1150, 1151, 1168, 1152, 1153, 1169, ++ 1154, 1155, 1170, 1171, 1172, 1173, 1156, 1157, 1158, 1174, ++ 1175, 1159, 1160, 1161, 1162, 1163, 1176, 1164, 1165, 1166, ++ 1177, 1167, 1178, 1179, 1180, 1181, 1182, 1168, 1183, 1184, ++ 1169, 1185, 1186, 1170, 1171, 1172, 1173, 1187, 1188, 1189, ++ 1174, 1175, 1190, 1191, 1192, 1193, 1194, 1176, 1197, 1198, ++ ++ 1195, 1177, 1199, 1178, 1179, 1180, 1181, 1182, 1196, 1183, ++ 1184, 1200, 1185, 1186, 1201, 1202, 1203, 1204, 1187, 1188, ++ 1189, 1205, 1206, 1190, 1191, 1192, 1193, 1194, 1207, 1197, ++ 1198, 1195, 1208, 1199, 1209, 1210, 1211, 1212, 1213, 1196, ++ 1214, 1215, 1200, 1216, 1217, 1201, 1202, 1203, 1204, 1218, ++ 1219, 1220, 1205, 1206, 1221, 1222, 1223, 1224, 1225, 1207, ++ 1226, 1227, 1228, 1208, 1229, 1209, 1210, 1211, 1212, 1213, ++ 1230, 1214, 1215, 1232, 1216, 1217, 1233, 1234, 1235, 1236, ++ 1218, 1219, 1220, 1237, 1238, 1221, 1222, 1223, 1224, 1225, ++ 1239, 1226, 1227, 1228, 1240, 1229, 1241, 1242, 1243, 1244, ++ ++ 1245, 1230, 1246, 1247, 1232, 1248, 1249, 1233, 1234, 1235, ++ 1236, 1250, 1251, 1252, 1237, 1238, 1253, 1254, 1255, 1256, ++ 1257, 1239, 1258, 1259, 1260, 1240, 1262, 1241, 1242, 1243, ++ 1244, 1245, 1263, 1246, 1247, 1264, 1248, 1249, 1265, 1266, ++ 1261, 1267, 1250, 1251, 1252, 1268, 1269, 1253, 1254, 1255, ++ 1256, 1257, 1270, 1258, 1259, 1260, 1271, 1262, 1272, 1273, ++ 1274, 1275, 1276, 1263, 1277, 1278, 1264, 1279, 1280, 1265, ++ 1266, 1261, 1267, 1281, 1282, 1283, 1268, 1269, 1284, 1285, ++ 1286, 1287, 1288, 1270, 1289, 1290, 1291, 1271, 1292, 1272, ++ 1273, 1274, 1275, 1276, 1293, 1277, 1278, 1294, 1279, 1280, ++ ++ 1295, 1296, 1297, 1298, 1281, 1282, 1283, 1302, 1303, 1284, ++ 1285, 1286, 1287, 1288, 1299, 1289, 1290, 1291, 1300, 1292, ++ 1304, 1305, 1306, 1307, 1308, 1293, 1309, 1310, 1294, 1311, ++ 1312, 1295, 1296, 1297, 1298, 1313, 1314, 1315, 1302, 1303, ++ 277, 1316, 277, 1317, 1318, 1299, 1319, 1320, 1321, 1300, ++ 1322, 1304, 1305, 1306, 1307, 1308, 1323, 1309, 1310, 1324, ++ 1311, 1312, 1325, 1326, 1327, 1328, 1313, 1314, 1315, 1329, ++ 1330, 1331, 1316, 1332, 1317, 1318, 1333, 1319, 1320, 1321, ++ 1334, 1322, 1335, 1336, 1337, 1338, 1339, 1323, 1340, 1341, ++ 1324, 1342, 1343, 1325, 1326, 1327, 1328, 1344, 1345, 1346, ++ ++ 1329, 1330, 1331, 1347, 1332, 1348, 1349, 1333, 1350, 1351, ++ 1352, 1334, 1353, 1335, 1336, 1337, 1338, 1339, 1354, 1340, ++ 1341, 1355, 1342, 1343, 1356, 1357, 1358, 1359, 1344, 1345, ++ 1346, 1360, 1361, 1362, 1347, 1363, 1348, 1349, 1364, 1350, ++ 1351, 1352, 1365, 1353, 1366, 1367, 1368, 1369, 1370, 1354, ++ 1371, 1372, 1355, 1373, 1374, 1356, 1357, 1358, 1359, 1377, ++ 1375, 1378, 1360, 1361, 1362, 1379, 1363, 1380, 1381, 1364, ++ 1382, 1383, 1384, 1365, 1385, 1366, 1367, 1368, 1369, 1370, ++ 1376, 1371, 1372, 1386, 1373, 1374, 1387, 1388, 1389, 1390, ++ 1377, 1375, 1378, 1391, 1392, 1393, 1379, 1394, 1380, 1381, ++ ++ 1395, 1382, 1383, 1384, 1396, 1385, 1397, 1398, 1399, 1400, ++ 1401, 1376, 1402, 1403, 1386, 1406, 1407, 1387, 1388, 1389, ++ 1390, 1404, 1408, 1405, 1391, 1392, 1393, 1409, 1394, 1410, ++ 1411, 1395, 1412, 1413, 1414, 1396, 1415, 1397, 1398, 1399, ++ 1400, 1401, 1416, 1402, 1403, 1417, 1406, 1407, 1418, 1419, ++ 1420, 1421, 1404, 1408, 1405, 1422, 1423, 1424, 1409, 1425, ++ 1410, 1411, 1426, 1412, 1413, 1414, 1427, 1415, 1428, 1429, ++ 1430, 1432, 1431, 1416, 1433, 1434, 1417, 1435, 1436, 1418, ++ 1419, 1420, 1421, 1437, 1438, 1439, 1422, 1423, 1424, 277, ++ 1425, 1440, 1441, 1426, 277, 1442, 1443, 1427, 1444, 1428, ++ ++ 1429, 1430, 1432, 1431, 1445, 1433, 1434, 1446, 1435, 1436, ++ 1447, 1448, 1449, 1450, 1437, 1438, 1439, 1451, 1452, 1453, ++ 1454, 1455, 1440, 1441, 1456, 1457, 1442, 1443, 1458, 1444, ++ 1459, 1460, 1461, 1462, 1463, 1445, 1464, 1465, 1446, 1466, ++ 1467, 1447, 1448, 1449, 1450, 1468, 1469, 1470, 1451, 1452, ++ 1453, 1454, 1455, 1471, 1472, 1456, 1457, 1473, 1474, 1458, ++ 1475, 1459, 1460, 1461, 1462, 1463, 1476, 1464, 1465, 1477, ++ 1466, 1467, 1478, 1479, 1480, 1481, 1468, 1469, 1470, 1482, ++ 1483, 1484, 1485, 1486, 1471, 1472, 1487, 1488, 1473, 1474, ++ 1489, 1475, 1490, 1491, 1492, 1493, 1494, 1476, 1495, 1496, ++ ++ 1477, 1497, 1498, 1478, 1479, 1480, 1481, 1499, 1500, 1501, ++ 1482, 1483, 1484, 1485, 1486, 1502, 1503, 1487, 1488, 1504, ++ 1505, 1489, 1506, 1490, 1491, 1492, 1493, 1494, 1507, 1495, ++ 1496, 1508, 1497, 1498, 1509, 1510, 1511, 1512, 1499, 1500, ++ 1501, 1513, 1514, 1515, 1516, 1517, 1502, 1503, 1518, 1519, ++ 1504, 1505, 1520, 1506, 1521, 1522, 1523, 1524, 1525, 1507, ++ 1526, 1527, 1508, 1528, 1529, 1509, 1510, 1511, 1512, 1532, ++ 1533, 1534, 1513, 1514, 1515, 1516, 1517, 1535, 1536, 1518, ++ 1519, 1530, 1531, 1520, 1537, 1521, 1522, 1523, 1524, 1525, ++ 1538, 1526, 1527, 1539, 1528, 1529, 1540, 1541, 277, 277, ++ ++ 1532, 1533, 1534, 1542, 1543, 1544, 1545, 1546, 1535, 1536, ++ 1547, 1548, 1530, 1531, 1549, 1537, 1550, 1551, 1552, 1553, ++ 1554, 1538, 1555, 1556, 1539, 1557, 1558, 1540, 1541, 1559, ++ 1560, 1561, 1562, 1563, 1542, 1543, 1544, 1545, 1546, 1564, ++ 1565, 1547, 1548, 1566, 1567, 1549, 1568, 1550, 1551, 1552, ++ 1553, 1554, 1569, 1555, 1556, 1570, 1557, 1558, 1571, 1572, ++ 1559, 1560, 1561, 1562, 1563, 1573, 1574, 1575, 1576, 1577, ++ 1564, 1565, 1578, 1579, 1566, 1567, 1580, 1568, 1581, 1582, ++ 1583, 1584, 1585, 1569, 1586, 1587, 1570, 1588, 1589, 1571, ++ 1572, 1590, 1591, 1592, 1593, 1594, 1573, 1574, 1575, 1576, ++ ++ 1577, 1595, 1596, 1578, 1579, 1597, 1598, 1580, 1599, 1581, ++ 1582, 1583, 1584, 1585, 1600, 1586, 1587, 1601, 1588, 1589, ++ 1602, 1603, 1590, 1591, 1592, 1593, 1594, 1604, 1605, 1606, ++ 1607, 1608, 1595, 1596, 1609, 1610, 1597, 1598, 1611, 1599, ++ 1614, 277, 1615, 1616, 1612, 1600, 1617, 277, 1601, 1613, ++ 1618, 1602, 1603, 1619, 1620, 1621, 1622, 1623, 1604, 1605, ++ 1606, 1607, 1608, 1624, 1625, 1609, 1610, 1626, 1627, 1611, ++ 1628, 1614, 1629, 1615, 1616, 1612, 1630, 1617, 1631, 1632, ++ 1613, 1618, 1633, 1634, 1619, 1620, 1621, 1622, 1623, 1635, ++ 1636, 1637, 1638, 1639, 1624, 1625, 1640, 1641, 1626, 1627, ++ ++ 1642, 1628, 1643, 1629, 1644, 1645, 1646, 1630, 1647, 1631, ++ 1632, 1648, 1649, 1633, 1634, 1650, 1651, 1652, 1653, 1654, ++ 1635, 1636, 1637, 1638, 1639, 1655, 1656, 1640, 1641, 277, ++ 1657, 1642, 1658, 1643, 1659, 1644, 1645, 1646, 1660, 1647, ++ 1661, 1662, 1648, 1649, 1663, 277, 1650, 1651, 1652, 1653, ++ 1654, 1664, 1665, 1666, 1667, 1668, 1655, 1656, 1669, 1670, ++ 1671, 1657, 1672, 1658, 1673, 1659, 1674, 1675, 1676, 1660, ++ 1677, 1661, 1662, 1678, 1679, 1663, 1680, 1681, 1682, 1683, ++ 1684, 1686, 1664, 1665, 1666, 1667, 1668, 1687, 1688, 1669, ++ 1670, 1671, 1689, 1672, 1690, 1673, 1691, 1674, 1675, 1676, ++ ++ 277, 1677, 1692, 1685, 1678, 1679, 277, 1680, 1681, 1682, ++ 1683, 1684, 1686, 1693, 1694, 1695, 1696, 1697, 1687, 1688, ++ 1698, 1699, 1700, 1689, 1701, 1690, 1702, 1691, 1703, 1704, ++ 1705, 1739, 1706, 1692, 1685, 277, 1708, 1709, 1707, 1710, ++ 1711, 1712, 1713, 1714, 1693, 1694, 1695, 1696, 1697, 1715, ++ 1716, 1698, 1699, 1700, 1717, 1701, 1718, 1702, 1719, 1703, ++ 1704, 1705, 277, 1706, 1720, 1722, 1723, 1708, 1709, 1707, ++ 1710, 1711, 1712, 1713, 1714, 1724, 1725, 1726, 1727, 1728, ++ 1715, 1716, 1730, 1731, 1732, 1717, 1733, 1718, 277, 1719, ++ 1734, 1735, 1736, 1737, 1738, 1720, 1722, 1723, 1739, 1739, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1724, 1725, 1726, 1727, ++ 1728, 1739, 1739, 1730, 1731, 1732, 1739, 1733, 1739, 1739, ++ 1739, 1734, 1735, 1736, 1737, 1738, 87, 87, 87, 87, ++ 87, 91, 91, 91, 91, 91, 95, 95, 95, 95, ++ 95, 104, 1739, 104, 104, 104, 105, 1739, 105, 105, ++ 105, 114, 114, 114, 114, 114, 222, 222, 222, 222, ++ 222, 224, 1739, 224, 224, 224, 273, 273, 273, 273, ++ 273, 278, 278, 278, 278, 278, 282, 282, 282, 282, ++ 282, 284, 284, 284, 284, 284, 285, 285, 1739, 285, ++ 285, 289, 1739, 289, 1739, 289, 301, 301, 301, 301, ++ ++ 301, 303, 303, 303, 303, 303, 306, 306, 306, 306, ++ 306, 463, 463, 463, 463, 463, 466, 466, 466, 466, ++ 466, 511, 511, 511, 511, 511, 514, 1739, 514, 514, ++ 514, 305, 305, 305, 305, 305, 104, 1739, 104, 104, ++ 104, 740, 740, 740, 740, 740, 13, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739 + } ; + +-static const flex_int16_t yy_chk[4062] = ++static const flex_int16_t yy_chk[4034] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +@@ -1729,7 +1728,7 @@ static const flex_int16_t yy_chk[4062] = + 6, 7, 8, 9, 10, 8, 15, 20, 15, 20, + 20, 33, 9, 10, 52, 54, 52, 54, 59, 63, + +- 59, 59, 83, 88, 1737, 88, 83, 63, 103, 1712, ++ 59, 59, 83, 88, 1745, 88, 83, 63, 103, 1729, + 103, 111, 111, 117, 117, 111, 111, 117, 117, 234, + 234, 7, 33, 234, 234, 8, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +@@ -1741,70 +1740,70 @@ static const flex_int16_t yy_chk[4062] = + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +- 11, 11, 21, 21, 1699, 34, 40, 69, 72, 34, +- 73, 21, 1137, 279, 23, 279, 23, 23, 236, 236, +- 60, 60, 236, 236, 1051, 23, 24, 528, 24, 60, +- 465, 77, 298, 298, 463, 24, 34, 40, 69, 72, ++ 11, 11, 21, 21, 1721, 34, 40, 69, 72, 34, ++ 73, 21, 1720, 279, 23, 279, 23, 23, 236, 236, ++ 60, 60, 236, 236, 1707, 23, 24, 1301, 24, 60, ++ 1145, 77, 298, 298, 1144, 24, 34, 40, 69, 72, + 34, 73, 21, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 23, 24, 22, 24, + 60, 22, 77, 22, 25, 37, 24, 31, 25, 80, + 27, 31, 25, 27, 27, 31, 28, 28, 28, 37, + 79, 25, 28, 79, 25, 45, 81, 27, 28, 45, + +- 22, 22, 22, 403, 22, 25, 37, 301, 31, 25, ++ 22, 22, 22, 1058, 22, 25, 37, 953, 31, 25, + 80, 27, 31, 25, 27, 27, 31, 28, 28, 28, + 37, 79, 25, 28, 79, 25, 45, 81, 27, 28, + 45, 22, 22, 22, 22, 22, 22, 22, 22, 26, +- 92, 26, 29, 284, 26, 26, 29, 93, 26, 282, +- 29, 26, 278, 29, 26, 26, 29, 30, 65, 29, +- 273, 30, 65, 297, 297, 30, 230, 297, 297, 228, ++ 92, 26, 29, 739, 26, 26, 29, 93, 26, 701, ++ 29, 26, 700, 29, 26, 26, 29, 30, 65, 29, ++ 531, 30, 65, 297, 297, 30, 513, 297, 297, 467, + 26, 92, 26, 29, 30, 26, 26, 29, 93, 26, + 94, 29, 26, 94, 29, 26, 26, 29, 30, 65, + 29, 32, 30, 65, 36, 35, 30, 35, 36, 35, + + 32, 32, 36, 35, 66, 30, 35, 32, 99, 38, +- 38, 100, 35, 101, 36, 226, 102, 38, 36, 38, +- 66, 38, 32, 94, 38, 36, 35, 464, 35, 36, +- 35, 32, 32, 36, 35, 66, 225, 35, 32, 99, ++ 38, 100, 35, 101, 36, 464, 102, 38, 36, 38, ++ 66, 38, 32, 94, 38, 36, 35, 228, 35, 36, ++ 35, 32, 32, 36, 35, 66, 403, 35, 32, 99, + 38, 38, 100, 35, 101, 36, 67, 102, 38, 36, + 38, 66, 38, 39, 41, 38, 67, 39, 41, 67, +- 118, 39, 41, 44, 39, 120, 122, 39, 41, 224, +- 39, 464, 44, 222, 44, 299, 299, 67, 44, 112, +- 44, 466, 44, 106, 39, 41, 124, 67, 39, 41, ++ 118, 39, 41, 44, 39, 120, 122, 39, 41, 301, ++ 39, 228, 44, 284, 44, 299, 299, 67, 44, 282, ++ 44, 230, 44, 278, 39, 41, 124, 67, 39, 41, + 67, 118, 39, 41, 44, 39, 120, 122, 39, 41, + + 71, 39, 42, 44, 42, 44, 43, 42, 42, 44, +- 43, 44, 42, 44, 43, 71, 42, 124, 105, 42, +- 43, 42, 466, 43, 42, 61, 98, 61, 61, 305, +- 43, 71, 509, 42, 509, 42, 61, 43, 42, 42, +- 68, 43, 305, 42, 68, 43, 71, 42, 97, 75, ++ 43, 44, 42, 44, 43, 71, 42, 124, 277, 42, ++ 43, 42, 230, 43, 42, 61, 273, 61, 61, 305, ++ 43, 71, 463, 42, 226, 42, 61, 43, 42, 42, ++ 68, 43, 305, 42, 68, 43, 71, 42, 465, 75, + 42, 43, 42, 74, 43, 42, 46, 46, 68, 75, + 46, 43, 46, 74, 46, 70, 78, 61, 74, 46, +- 78, 68, 121, 70, 76, 68, 90, 76, 76, 123, +- 75, 89, 70, 121, 74, 123, 85, 46, 46, 68, +- 75, 46, 84, 46, 74, 46, 70, 78, 64, 74, ++ 78, 68, 121, 70, 76, 68, 463, 76, 76, 123, ++ 75, 225, 70, 121, 74, 123, 224, 46, 46, 68, ++ 75, 46, 465, 46, 74, 46, 70, 78, 222, 74, + + 46, 78, 82, 121, 70, 76, 107, 107, 76, 76, + 123, 82, 125, 70, 121, 107, 123, 82, 108, 127, + 108, 108, 110, 110, 128, 129, 125, 82, 133, 108, +- 134, 110, 62, 82, 300, 300, 116, 116, 310, 310, +- 311, 311, 82, 125, 58, 116, 107, 57, 82, 136, +- 127, 467, 467, 136, 137, 128, 129, 125, 56, 133, ++ 134, 110, 112, 82, 300, 300, 116, 116, 310, 310, ++ 311, 311, 82, 125, 106, 116, 107, 105, 82, 136, ++ 127, 469, 469, 136, 137, 128, 129, 125, 98, 133, + 108, 134, 110, 114, 114, 114, 114, 114, 114, 114, +- 114, 114, 114, 114, 114, 114, 116, 130, 114, 55, ++ 114, 114, 114, 114, 114, 114, 116, 130, 114, 97, + 136, 114, 119, 114, 136, 137, 119, 131, 131, 131, + 138, 139, 141, 119, 140, 140, 142, 130, 143, 119, + + 142, 145, 144, 146, 148, 139, 144, 149, 130, 150, +- 114, 114, 114, 119, 114, 468, 468, 119, 131, 131, ++ 114, 114, 114, 119, 114, 470, 470, 119, 131, 131, + 131, 138, 139, 141, 119, 140, 140, 142, 130, 143, +- 119, 142, 145, 144, 146, 148, 139, 144, 149, 50, ++ 119, 142, 145, 144, 146, 148, 139, 144, 149, 90, + 150, 114, 114, 114, 114, 114, 114, 114, 114, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, +- 115, 115, 151, 153, 115, 471, 471, 115, 147, 115, ++ 115, 115, 151, 153, 115, 473, 473, 115, 147, 115, + 147, 147, 152, 154, 147, 155, 156, 157, 158, 158, +- 152, 159, 160, 161, 158, 162, 152, 472, 472, 166, +- 161, 172, 49, 151, 153, 158, 115, 115, 115, 147, ++ 152, 159, 160, 161, 158, 162, 152, 474, 474, 166, ++ 161, 172, 89, 151, 153, 158, 115, 115, 115, 147, + + 115, 147, 147, 152, 154, 147, 155, 156, 157, 158, + 158, 152, 159, 160, 161, 158, 162, 152, 165, 163, +@@ -1814,18 +1813,18 @@ static const flex_int16_t yy_chk[4062] = + 163, 174, 175, 171, 165, 165, 170, 176, 177, 178, + 179, 180, 181, 182, 183, 182, 163, 169, 163, 169, + 169, 173, 170, 163, 174, 169, 171, 171, 171, 175, +- 184, 185, 174, 175, 171, 188, 191, 48, 176, 177, ++ 184, 185, 174, 175, 171, 188, 191, 85, 176, 177, + 178, 179, 180, 181, 182, 183, 182, 186, 187, 192, + + 186, 189, 193, 194, 187, 195, 189, 186, 190, 190, +- 19, 184, 185, 197, 190, 198, 188, 191, 190, 190, +- 200, 190, 201, 13, 199, 202, 516, 516, 186, 187, ++ 84, 184, 185, 197, 190, 198, 188, 191, 190, 190, ++ 200, 190, 201, 64, 199, 202, 519, 519, 186, 187, + 192, 186, 189, 193, 194, 187, 195, 189, 186, 190, + 190, 196, 196, 205, 197, 190, 198, 203, 199, 190, + 190, 200, 190, 201, 196, 199, 202, 204, 203, 204, + 206, 207, 210, 212, 213, 204, 214, 215, 206, 216, + 217, 218, 196, 196, 205, 219, 220, 221, 203, 199, +- 206, 0, 510, 241, 510, 196, 242, 0, 204, 203, ++ 206, 62, 511, 241, 511, 196, 242, 58, 204, 203, + 204, 206, 207, 210, 212, 213, 204, 214, 215, 206, + + 216, 217, 218, 231, 231, 243, 219, 220, 221, 233, +@@ -1836,33 +1835,33 @@ static const flex_int16_t yy_chk[4062] = + 257, 268, 244, 245, 247, 232, 246, 246, 248, 235, + 249, 250, 251, 252, 253, 254, 255, 270, 258, 259, + 257, 260, 262, 249, 271, 257, 264, 265, 266, 267, +- 272, 257, 268, 269, 274, 269, 0, 276, 292, 275, +- 309, 309, 294, 0, 309, 309, 521, 521, 270, 0, ++ 272, 257, 268, 269, 274, 269, 57, 276, 292, 275, ++ 309, 309, 294, 56, 309, 309, 55, 512, 270, 512, + +- 296, 296, 522, 522, 295, 271, 302, 304, 276, 296, +- 0, 272, 274, 312, 269, 274, 269, 275, 276, 292, ++ 296, 296, 524, 524, 295, 271, 302, 304, 276, 296, ++ 50, 272, 274, 312, 269, 274, 269, 275, 276, 292, + 275, 291, 291, 294, 291, 291, 291, 291, 291, 291, + 291, 291, 291, 291, 293, 295, 313, 302, 304, 291, + 296, 291, 308, 308, 312, 314, 315, 316, 317, 318, + 319, 308, 293, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 293, 332, 313, 291, 291, +- 291, 0, 291, 698, 698, 0, 314, 315, 316, 317, ++ 291, 49, 291, 525, 525, 48, 314, 315, 316, 317, + 318, 319, 308, 293, 320, 321, 322, 323, 324, 325, +- 326, 327, 328, 329, 330, 331, 0, 332, 335, 291, ++ 326, 327, 328, 329, 330, 331, 19, 332, 335, 291, + + 291, 291, 291, 291, 291, 291, 291, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, +- 333, 336, 303, 699, 699, 303, 337, 303, 333, 335, ++ 333, 336, 303, 702, 702, 303, 337, 303, 333, 335, + 338, 339, 340, 341, 333, 342, 344, 345, 346, 347, + 348, 349, 350, 337, 351, 352, 353, 354, 356, 358, + 350, 333, 336, 359, 303, 303, 303, 337, 303, 333, +- 0, 338, 339, 340, 341, 333, 342, 344, 345, 346, ++ 13, 338, 339, 340, 341, 333, 342, 344, 345, 346, + 347, 348, 349, 350, 337, 351, 352, 353, 354, 356, + 358, 350, 0, 360, 359, 303, 303, 303, 303, 303, + 303, 303, 303, 306, 306, 306, 306, 306, 306, 306, + +- 306, 306, 306, 306, 306, 306, 355, 361, 306, 733, +- 733, 306, 362, 306, 360, 363, 355, 364, 365, 367, ++ 306, 306, 306, 306, 306, 306, 355, 361, 306, 703, ++ 703, 306, 362, 306, 360, 363, 355, 364, 365, 367, + 368, 369, 370, 371, 368, 372, 373, 374, 376, 375, + 377, 378, 379, 380, 381, 382, 383, 355, 361, 375, + 306, 306, 306, 362, 306, 0, 363, 355, 364, 365, +@@ -1870,7 +1869,7 @@ static const flex_int16_t yy_chk[4062] = + 375, 377, 378, 379, 380, 381, 382, 383, 0, 384, + 375, 306, 306, 306, 306, 306, 306, 306, 306, 307, + 307, 386, 307, 307, 307, 307, 307, 307, 307, 307, +- 307, 307, 387, 389, 390, 944, 944, 307, 390, 307, ++ 307, 307, 387, 389, 390, 737, 737, 307, 390, 307, + + 384, 391, 392, 394, 395, 396, 397, 398, 307, 399, + 400, 401, 386, 404, 405, 406, 407, 408, 409, 406, +@@ -1880,8 +1879,8 @@ static const flex_int16_t yy_chk[4062] = + 406, 410, 411, 412, 413, 415, 0, 307, 307, 307, + 307, 307, 307, 307, 307, 388, 388, 0, 388, 414, + 388, 388, 417, 388, 410, 418, 388, 419, 413, 388, +- 414, 420, 410, 388, 388, 413, 415, 388, 0, 0, +- 421, 0, 422, 0, 0, 423, 388, 388, 416, 388, ++ 414, 420, 410, 388, 388, 413, 415, 388, 0, 740, ++ 421, 740, 422, 949, 949, 423, 388, 388, 416, 388, + + 414, 388, 388, 417, 388, 416, 418, 388, 419, 413, + 388, 414, 420, 424, 388, 388, 425, 426, 388, 393, +@@ -1892,268 +1891,265 @@ static const flex_int16_t yy_chk[4062] = + 444, 428, 429, 431, 430, 432, 433, 445, 393, 393, + 434, 435, 393, 436, 437, 446, 430, 439, 447, 448, + 440, 449, 450, 441, 451, 442, 453, 452, 443, 451, +- 454, 444, 452, 455, 458, 461, 469, 469, 445, 470, +- +- 470, 473, 454, 470, 470, 469, 446, 474, 475, 447, +- 448, 476, 449, 450, 477, 451, 478, 453, 452, 479, +- 451, 454, 480, 452, 455, 458, 461, 481, 482, 483, +- 484, 485, 473, 454, 486, 487, 469, 488, 474, 475, +- 489, 490, 476, 491, 492, 477, 493, 478, 494, 496, +- 479, 497, 498, 480, 499, 500, 501, 502, 481, 482, +- 483, 484, 485, 503, 504, 486, 487, 505, 488, 506, +- 0, 489, 490, 508, 491, 492, 507, 493, 506, 494, +- 496, 511, 497, 498, 512, 499, 500, 501, 502, 507, +- 514, 515, 519, 520, 503, 504, 523, 524, 505, 525, +- +- 506, 508, 526, 527, 508, 529, 530, 507, 531, 532, +- 533, 534, 511, 535, 537, 512, 538, 539, 540, 541, +- 542, 514, 515, 519, 520, 544, 545, 523, 524, 543, +- 525, 546, 547, 526, 527, 538, 529, 530, 543, 531, +- 532, 533, 534, 548, 535, 537, 549, 538, 539, 540, +- 541, 542, 550, 551, 552, 553, 544, 545, 554, 555, +- 543, 556, 546, 547, 557, 558, 538, 559, 560, 543, +- 562, 563, 564, 565, 548, 566, 567, 549, 568, 569, +- 571, 572, 573, 550, 551, 552, 553, 574, 575, 554, +- 555, 576, 556, 577, 578, 557, 558, 579, 559, 560, +- +- 580, 562, 563, 564, 565, 581, 566, 567, 582, 568, +- 569, 571, 572, 573, 583, 584, 585, 587, 574, 575, +- 588, 590, 576, 589, 577, 578, 591, 592, 579, 593, +- 589, 580, 594, 595, 597, 598, 581, 599, 601, 582, +- 602, 603, 598, 604, 605, 583, 584, 585, 587, 606, +- 607, 588, 590, 608, 589, 610, 611, 591, 592, 612, +- 593, 589, 613, 594, 595, 597, 598, 614, 599, 601, +- 609, 602, 603, 598, 604, 605, 609, 615, 616, 617, +- 606, 607, 618, 619, 608, 620, 610, 611, 609, 621, +- 612, 622, 624, 613, 623, 625, 626, 627, 614, 628, +- +- 623, 609, 630, 632, 634, 635, 636, 609, 615, 616, +- 617, 633, 623, 618, 619, 633, 620, 637, 638, 609, +- 621, 639, 622, 624, 640, 623, 625, 626, 627, 641, +- 628, 623, 642, 630, 632, 634, 635, 636, 643, 644, +- 645, 646, 633, 623, 647, 648, 633, 650, 637, 638, +- 651, 649, 639, 652, 653, 640, 649, 654, 655, 656, +- 641, 657, 658, 642, 659, 660, 661, 662, 663, 643, +- 644, 645, 646, 664, 665, 647, 648, 666, 650, 667, +- 668, 651, 649, 669, 652, 653, 670, 649, 654, 655, +- 656, 671, 657, 658, 672, 659, 660, 661, 662, 663, +- +- 673, 674, 675, 676, 664, 665, 679, 681, 666, 677, +- 667, 668, 682, 677, 669, 683, 679, 670, 684, 685, +- 687, 688, 671, 689, 690, 672, 691, 692, 693, 694, +- 695, 673, 674, 675, 676, 701, 702, 679, 681, 703, +- 677, 704, 705, 682, 677, 706, 683, 679, 707, 684, +- 685, 687, 688, 708, 689, 690, 709, 691, 692, 693, +- 694, 695, 710, 711, 712, 713, 701, 702, 714, 715, +- 703, 716, 704, 705, 717, 718, 706, 719, 720, 707, +- 721, 722, 723, 724, 708, 725, 726, 709, 727, 728, +- 730, 731, 0, 710, 711, 712, 713, 732, 736, 714, +- +- 715, 738, 716, 741, 743, 717, 718, 744, 719, 720, +- 734, 721, 722, 723, 724, 746, 725, 726, 747, 727, +- 728, 730, 731, 734, 749, 732, 750, 751, 732, 736, +- 752, 753, 738, 754, 741, 743, 756, 757, 744, 757, +- 758, 734, 759, 760, 761, 762, 746, 761, 763, 747, +- 764, 765, 767, 768, 769, 749, 770, 750, 751, 773, +- 775, 752, 753, 778, 754, 776, 776, 756, 757, 779, +- 757, 758, 780, 759, 760, 761, 762, 781, 761, 763, +- 782, 764, 765, 767, 768, 769, 783, 770, 784, 786, +- 773, 775, 787, 789, 778, 790, 776, 776, 793, 794, +- +- 779, 0, 0, 780, 796, 797, 799, 800, 781, 802, +- 803, 782, 804, 805, 806, 795, 0, 783, 809, 784, +- 786, 811, 0, 787, 789, 795, 790, 812, 795, 793, +- 794, 0, 795, 795, 813, 796, 797, 799, 800, 814, +- 802, 803, 815, 804, 805, 806, 795, 807, 816, 809, +- 807, 817, 811, 807, 818, 819, 795, 807, 812, 795, +- 820, 821, 807, 795, 795, 813, 822, 823, 824, 825, +- 814, 826, 827, 815, 828, 829, 830, 831, 807, 816, +- 833, 807, 817, 834, 807, 818, 819, 835, 807, 836, +- 837, 820, 821, 807, 838, 839, 840, 822, 823, 824, +- +- 825, 841, 826, 827, 842, 828, 829, 830, 831, 843, +- 844, 833, 846, 848, 834, 849, 850, 851, 835, 852, +- 836, 837, 853, 854, 855, 838, 839, 840, 856, 857, +- 858, 859, 841, 860, 861, 842, 862, 863, 864, 865, +- 843, 844, 866, 846, 848, 868, 849, 850, 851, 867, +- 852, 869, 870, 853, 854, 855, 871, 873, 867, 856, +- 857, 858, 859, 874, 860, 861, 875, 862, 863, 864, +- 865, 872, 876, 866, 877, 878, 868, 879, 872, 880, +- 867, 884, 869, 870, 885, 886, 887, 871, 873, 867, +- 888, 889, 891, 883, 874, 883, 892, 875, 893, 894, +- +- 896, 897, 872, 876, 899, 877, 878, 898, 879, 872, +- 880, 883, 884, 898, 901, 885, 886, 887, 902, 903, +- 904, 888, 889, 891, 883, 907, 883, 892, 902, 893, +- 894, 896, 897, 908, 909, 899, 910, 911, 898, 912, +- 914, 915, 883, 916, 898, 901, 917, 918, 919, 902, +- 903, 904, 920, 921, 922, 923, 907, 924, 926, 902, +- 927, 928, 929, 931, 908, 909, 932, 910, 911, 933, +- 912, 914, 915, 936, 916, 938, 939, 917, 918, 919, +- 940, 941, 943, 920, 921, 922, 923, 947, 924, 926, +- 945, 927, 928, 929, 931, 946, 948, 932, 949, 950, +- +- 933, 951, 952, 953, 936, 954, 938, 939, 956, 959, +- 961, 940, 941, 943, 962, 963, 945, 964, 947, 946, +- 965, 945, 967, 969, 970, 971, 946, 948, 972, 949, +- 950, 973, 951, 952, 953, 975, 954, 976, 977, 956, +- 959, 961, 978, 980, 982, 962, 963, 983, 964, 985, +- 987, 965, 988, 967, 969, 970, 971, 989, 990, 972, +- 993, 994, 973, 995, 996, 997, 975, 999, 976, 977, +- 1000, 1001, 1002, 978, 980, 982, 1003, 1004, 983, 1005, +- 985, 987, 1006, 988, 1007, 1008, 1009, 1011, 989, 990, +- 1014, 993, 994, 1015, 995, 996, 997, 1010, 999, 1016, +- +- 1017, 1000, 1001, 1002, 1018, 1010, 1019, 1003, 1004, 1020, +- 1005, 1021, 1022, 1006, 1023, 1007, 1008, 1009, 1011, 1024, +- 1025, 1014, 1026, 1027, 1015, 1028, 1029, 1030, 1010, 1032, +- 1016, 1017, 1034, 1035, 1036, 1018, 1010, 1019, 1037, 1038, +- 1020, 1039, 1021, 1022, 1040, 1023, 1041, 1042, 1043, 1044, +- 1024, 1025, 1045, 1026, 1027, 1046, 1028, 1029, 1030, 1047, +- 1032, 1050, 1052, 1034, 1035, 1036, 1053, 1054, 1055, 1037, +- 1038, 1056, 1039, 1057, 1058, 1040, 1063, 1041, 1042, 1043, +- 1044, 1064, 1065, 1045, 1066, 1067, 1046, 1068, 1069, 1070, +- 1047, 1071, 1050, 1052, 1072, 1073, 1074, 1053, 1054, 1055, +- +- 1076, 1078, 1056, 1079, 1057, 1058, 1080, 1063, 1081, 1082, +- 1083, 1084, 1064, 1065, 1085, 1066, 1067, 1086, 1068, 1069, +- 1070, 1087, 1071, 1090, 1093, 1072, 1073, 1074, 1094, 1095, +- 1096, 1076, 1078, 1086, 1079, 1097, 1098, 1080, 1099, 1081, +- 1082, 1083, 1084, 1100, 1101, 1085, 1102, 1103, 1086, 1104, +- 1105, 1106, 1087, 1107, 1090, 1093, 1108, 1113, 1114, 1094, +- 1095, 1096, 1115, 1116, 1086, 1117, 1097, 1098, 1118, 1099, +- 1119, 1120, 1122, 1123, 1100, 1101, 1124, 1102, 1103, 1125, +- 1104, 1105, 1106, 1126, 1107, 1127, 1129, 1108, 1113, 1114, +- 1130, 1131, 1132, 1115, 1116, 1133, 1117, 1139, 1135, 1118, +- +- 1140, 1119, 1120, 1122, 1123, 1141, 1136, 1124, 1142, 1143, +- 1125, 1144, 1145, 1146, 1126, 1147, 1127, 1129, 1148, 1149, +- 1151, 1130, 1131, 1132, 1135, 1152, 1133, 1153, 1139, 1135, +- 1136, 1140, 1154, 1156, 1158, 1160, 1141, 1136, 1161, 1142, +- 1143, 1162, 1144, 1145, 1146, 1164, 1147, 1165, 1167, 1148, +- 1149, 1151, 1168, 1169, 1170, 1171, 1152, 1172, 1153, 1173, +- 1174, 1175, 1177, 1154, 1156, 1158, 1160, 1178, 1179, 1161, +- 1180, 1182, 1162, 1183, 1184, 1185, 1164, 1186, 1165, 1167, +- 1187, 1188, 1189, 1168, 1169, 1170, 1171, 1190, 1172, 1192, +- 1173, 1174, 1175, 1177, 1193, 1195, 1196, 1197, 1178, 1179, +- +- 1198, 1180, 1182, 1199, 1183, 1184, 1185, 1200, 1186, 1201, +- 1202, 1187, 1188, 1189, 1204, 1205, 1206, 1207, 1190, 1208, +- 1192, 1210, 1211, 1212, 1213, 1193, 1195, 1196, 1197, 1214, +- 1215, 1198, 1217, 1218, 1199, 1219, 1220, 1221, 1200, 1225, +- 1201, 1202, 1223, 1227, 1223, 1204, 1205, 1206, 1207, 1226, +- 1208, 1228, 1210, 1211, 1212, 1213, 1230, 1231, 1233, 1235, +- 1214, 1215, 1236, 1217, 1218, 1237, 1219, 1220, 1221, 1226, +- 1225, 1238, 1239, 1223, 1227, 1223, 1240, 1241, 1242, 1243, +- 1226, 1244, 1228, 1245, 1246, 1247, 1248, 1230, 1231, 1233, +- 1235, 1249, 1250, 1236, 1251, 1252, 1237, 1253, 1254, 1255, +- +- 1226, 1256, 1238, 1239, 1257, 1258, 1257, 1240, 1241, 1242, +- 1243, 1259, 1244, 1260, 1245, 1246, 1247, 1248, 1261, 1263, +- 1264, 1265, 1249, 1250, 1266, 1251, 1252, 1267, 1253, 1254, +- 1255, 1270, 1256, 1271, 1272, 1257, 1258, 1257, 1274, 1277, +- 1278, 1280, 1259, 1281, 1260, 1282, 1284, 1285, 1286, 1261, +- 1263, 1264, 1265, 1287, 1288, 1266, 1289, 1291, 1267, 1295, +- 1296, 1297, 1270, 1292, 1271, 1272, 1298, 1299, 1301, 1274, +- 1277, 1278, 1280, 1302, 1281, 1303, 1282, 1284, 1285, 1286, +- 1292, 1291, 1304, 1305, 1287, 1288, 1306, 1289, 1291, 1307, +- 1295, 1296, 1297, 1308, 1292, 1309, 1310, 1298, 1299, 1301, +- +- 1312, 1313, 1314, 1315, 1302, 1316, 1303, 1317, 1318, 1320, +- 1321, 1322, 1323, 1304, 1305, 1325, 1326, 1306, 1327, 1329, +- 1307, 1330, 1331, 1332, 1308, 1333, 1309, 1310, 1334, 1335, +- 1336, 1312, 1313, 1314, 1315, 1337, 1316, 1338, 1317, 1318, +- 1320, 1321, 1322, 1323, 1339, 1340, 1325, 1326, 1341, 1327, +- 1329, 1342, 1330, 1331, 1332, 1343, 1333, 1344, 1345, 1334, +- 1335, 1336, 1346, 1347, 1348, 1349, 1337, 1353, 1338, 1354, +- 1355, 1356, 1357, 1358, 1359, 1339, 1340, 1360, 1363, 1341, +- 1364, 1365, 1342, 1366, 1367, 1368, 1343, 1369, 1344, 1345, +- 1371, 1372, 1374, 1346, 1347, 1348, 1349, 1375, 1353, 1377, +- +- 1354, 1355, 1356, 1357, 1358, 1359, 1378, 1379, 1360, 1363, +- 1381, 1364, 1365, 1382, 1366, 1367, 1368, 1383, 1369, 1384, +- 1386, 1371, 1372, 1374, 1388, 1389, 1391, 1392, 1375, 1393, +- 1377, 1394, 1395, 1396, 1397, 1400, 1402, 1378, 1379, 1403, +- 1404, 1381, 1408, 1409, 1382, 1411, 1415, 1416, 1383, 1417, +- 1384, 1386, 1419, 1420, 0, 1388, 1389, 1391, 1392, 1424, +- 1393, 1425, 1394, 1395, 1396, 1397, 1400, 1402, 1422, 1423, +- 1403, 1404, 1427, 1408, 1409, 1429, 1411, 1415, 1416, 1431, +- 1417, 1433, 1434, 1419, 1420, 1422, 1423, 1436, 1438, 1439, +- 1424, 1441, 1425, 1442, 1443, 1444, 1446, 1450, 1452, 1422, +- +- 1423, 1453, 1454, 1427, 1455, 1456, 1429, 1458, 1459, 1460, +- 1431, 1461, 1433, 1434, 1462, 1463, 1464, 1465, 1436, 1438, +- 1439, 1466, 1441, 1467, 1442, 1443, 1444, 1446, 1450, 1452, +- 1468, 1470, 1453, 1454, 1471, 1455, 1456, 1472, 1458, 1459, +- 1460, 1473, 1461, 1474, 1475, 1462, 1463, 1464, 1465, 1476, +- 1477, 1478, 1466, 1479, 1467, 1480, 1481, 1482, 1483, 1484, +- 1485, 1468, 1470, 1486, 1487, 1471, 1488, 1489, 1472, 1490, +- 1491, 1492, 1473, 1493, 1474, 1475, 1494, 1495, 1498, 1499, +- 1476, 1477, 1478, 1500, 1479, 1501, 1480, 1481, 1482, 1483, +- 1484, 1485, 1502, 1503, 1486, 1487, 1504, 1488, 1489, 1508, +- +- 1490, 1491, 1492, 1511, 1493, 1513, 1514, 1494, 1495, 1498, +- 1499, 1515, 1516, 1517, 1500, 1518, 1501, 1519, 1520, 1523, +- 1524, 1522, 1526, 1502, 1503, 1527, 1531, 1504, 1532, 1523, +- 1508, 1531, 1536, 1537, 1511, 1540, 1513, 1514, 1522, 1544, +- 1545, 1546, 1515, 1516, 1517, 1547, 1518, 1548, 1519, 1520, +- 1523, 1524, 1522, 1526, 1549, 1552, 1527, 1531, 1553, 1532, +- 1554, 1555, 1531, 1536, 1537, 1556, 1540, 1557, 1558, 1559, +- 1544, 1545, 1546, 1561, 1562, 1563, 1547, 1564, 1548, 1565, +- 1566, 1567, 1568, 1569, 1571, 1549, 1552, 1572, 1573, 1553, +- 1574, 1554, 1555, 1575, 1576, 1578, 1556, 1581, 1557, 1558, +- +- 1559, 1583, 1587, 1589, 1561, 1562, 1563, 1590, 1564, 1591, +- 1565, 1566, 1567, 1568, 1569, 1571, 1600, 1599, 1572, 1573, +- 1602, 1574, 1603, 1604, 1575, 1576, 1578, 1599, 1581, 1605, +- 1606, 1607, 1583, 1587, 1589, 1608, 1600, 1609, 1590, 1611, +- 1591, 1612, 1613, 1614, 1615, 1620, 1621, 1600, 1599, 1622, +- 1625, 1602, 1628, 1603, 1604, 1629, 1631, 1633, 1634, 1635, +- 1605, 1606, 1607, 1636, 1639, 1641, 1608, 1643, 1609, 1644, +- 1611, 1646, 1612, 1613, 1614, 1615, 1620, 1621, 1648, 1647, +- 1622, 1625, 1647, 1628, 1650, 1651, 1629, 1631, 1633, 1634, +- 1635, 1646, 1652, 1654, 1636, 1639, 1641, 1655, 1643, 1656, +- +- 1644, 1657, 1646, 1658, 1660, 1661, 1662, 1664, 1665, 1648, +- 1647, 1667, 1668, 1672, 1673, 1650, 1651, 1674, 1675, 1676, +- 0, 1678, 1676, 1652, 1654, 1679, 1680, 1677, 1655, 1684, +- 1656, 1685, 1657, 1687, 1658, 1660, 1661, 1662, 1664, 1665, +- 1688, 1690, 1667, 1668, 1672, 1673, 1694, 1695, 1674, 1675, +- 1676, 1677, 1678, 1696, 1697, 1698, 1679, 1680, 1677, 1700, +- 1684, 1701, 1685, 1703, 1687, 1704, 1705, 1706, 1710, 1715, +- 1716, 1688, 1690, 1717, 1720, 1722, 1723, 1694, 1695, 1698, +- 1724, 1727, 1728, 0, 1696, 1697, 1698, 0, 0, 0, +- 1700, 0, 1701, 0, 1703, 0, 1704, 1705, 1706, 1710, +- +- 1715, 1716, 0, 0, 1717, 1720, 1722, 1723, 0, 0, +- 0, 1724, 1727, 1728, 1732, 1732, 1732, 1732, 1732, 1732, +- 1732, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1734, 1734, +- 1734, 1734, 1734, 1734, 1734, 1735, 0, 1735, 1735, 1735, +- 1735, 1735, 1736, 0, 1736, 1736, 1736, 1736, 1736, 1738, +- 1738, 1738, 1738, 1738, 1738, 1738, 1739, 1739, 1739, 1739, +- 1739, 1739, 1739, 1740, 0, 1740, 1740, 1740, 1740, 1740, +- 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742, +- 1742, 1742, 1742, 1742, 1743, 1743, 1743, 1743, 1743, 1743, +- 1743, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1745, 1745, +- +- 0, 0, 1745, 1745, 1746, 0, 1746, 1746, 0, 1746, +- 1746, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1748, 1748, +- 1748, 1748, 1748, 1748, 1748, 1749, 1749, 1749, 1749, 1749, +- 1749, 1749, 1750, 1750, 0, 1750, 1750, 1750, 1750, 1751, +- 1751, 1751, 0, 1751, 1751, 1751, 1752, 1752, 1752, 1752, +- 1752, 1752, 1752, 1753, 0, 1753, 1753, 1753, 1753, 1753, +- 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1755, 0, 1755, +- 1755, 1755, 1755, 1755, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, 1731, +- 1731 ++ 454, 444, 452, 455, 458, 461, 466, 468, 445, 471, ++ ++ 471, 0, 454, 475, 476, 477, 446, 0, 471, 447, ++ 448, 478, 449, 450, 479, 451, 480, 453, 452, 481, ++ 451, 454, 482, 452, 455, 458, 461, 472, 472, 483, ++ 484, 472, 472, 454, 475, 476, 477, 466, 468, 471, ++ 485, 486, 478, 487, 488, 479, 489, 480, 490, 491, ++ 481, 492, 493, 482, 494, 495, 496, 498, 499, 500, ++ 483, 484, 501, 502, 503, 504, 505, 506, 507, 508, ++ 514, 485, 486, 0, 487, 488, 515, 489, 508, 490, ++ 491, 510, 492, 493, 517, 494, 495, 496, 498, 499, ++ 500, 509, 518, 501, 502, 503, 504, 505, 506, 507, ++ ++ 508, 514, 522, 523, 509, 526, 527, 515, 528, 510, ++ 529, 530, 510, 532, 533, 517, 534, 535, 536, 537, ++ 538, 540, 509, 518, 541, 542, 543, 544, 545, 546, ++ 547, 548, 549, 522, 523, 550, 526, 527, 546, 528, ++ 551, 529, 530, 541, 532, 533, 552, 534, 535, 536, ++ 537, 538, 540, 553, 554, 541, 542, 543, 544, 545, ++ 546, 547, 548, 549, 555, 556, 550, 557, 558, 546, ++ 559, 551, 560, 561, 541, 562, 563, 552, 565, 566, ++ 567, 568, 569, 570, 553, 554, 571, 572, 574, 575, ++ 576, 577, 578, 579, 580, 555, 556, 581, 557, 558, ++ ++ 582, 559, 583, 560, 561, 584, 562, 563, 585, 565, ++ 566, 567, 568, 569, 570, 586, 587, 571, 572, 574, ++ 575, 576, 577, 578, 579, 580, 588, 590, 581, 591, ++ 592, 582, 593, 583, 594, 595, 584, 592, 596, 585, ++ 597, 598, 600, 601, 602, 604, 586, 587, 605, 606, ++ 601, 607, 608, 609, 610, 611, 0, 588, 590, 613, ++ 591, 592, 0, 593, 614, 594, 595, 615, 592, 596, ++ 616, 597, 598, 600, 601, 602, 604, 617, 618, 605, ++ 606, 601, 607, 608, 609, 610, 611, 612, 619, 620, ++ 613, 621, 622, 612, 623, 614, 624, 625, 615, 627, ++ ++ 628, 616, 629, 630, 631, 612, 633, 635, 617, 618, ++ 636, 626, 637, 638, 636, 639, 640, 626, 612, 619, ++ 620, 641, 621, 622, 612, 623, 642, 624, 625, 626, ++ 627, 628, 643, 629, 630, 631, 612, 633, 635, 644, ++ 645, 636, 626, 637, 638, 636, 639, 640, 626, 646, ++ 647, 648, 641, 649, 650, 651, 652, 642, 653, 654, ++ 626, 652, 655, 643, 656, 657, 658, 659, 660, 661, ++ 644, 645, 662, 663, 664, 665, 666, 667, 668, 669, ++ 646, 647, 648, 670, 649, 650, 651, 652, 671, 653, ++ 654, 672, 652, 655, 673, 656, 657, 658, 659, 660, ++ ++ 661, 674, 675, 662, 663, 664, 665, 666, 667, 668, ++ 669, 676, 677, 678, 670, 679, 680, 682, 684, 671, ++ 680, 685, 672, 686, 687, 673, 688, 682, 690, 691, ++ 692, 693, 674, 675, 694, 695, 696, 697, 698, 705, ++ 706, 707, 676, 677, 678, 708, 679, 680, 682, 684, ++ 709, 680, 685, 710, 686, 687, 711, 688, 682, 690, ++ 691, 692, 693, 712, 713, 694, 695, 696, 697, 698, ++ 705, 706, 707, 714, 715, 716, 708, 717, 718, 719, ++ 720, 709, 721, 722, 710, 723, 724, 711, 725, 726, ++ 727, 728, 729, 730, 712, 713, 731, 732, 734, 735, ++ ++ 0, 741, 738, 736, 714, 715, 716, 743, 717, 718, ++ 719, 720, 746, 721, 722, 738, 723, 724, 748, 725, ++ 726, 727, 728, 729, 730, 749, 751, 731, 732, 734, ++ 735, 736, 741, 738, 736, 752, 754, 755, 743, 756, ++ 757, 758, 759, 746, 761, 762, 763, 762, 764, 748, ++ 765, 766, 767, 768, 766, 769, 749, 751, 770, 772, ++ 773, 774, 775, 778, 780, 783, 752, 754, 755, 784, ++ 756, 757, 758, 759, 785, 761, 762, 763, 762, 764, ++ 786, 765, 766, 767, 768, 766, 769, 781, 781, 770, ++ 772, 773, 774, 775, 778, 780, 783, 787, 788, 789, ++ ++ 784, 791, 792, 794, 795, 785, 798, 799, 0, 801, ++ 802, 786, 0, 0, 804, 805, 807, 808, 781, 781, ++ 809, 810, 811, 814, 816, 0, 800, 817, 787, 788, ++ 789, 0, 791, 792, 794, 795, 800, 798, 799, 800, ++ 801, 802, 818, 800, 800, 804, 805, 807, 808, 819, ++ 820, 809, 810, 811, 814, 816, 812, 800, 817, 812, ++ 821, 822, 812, 823, 824, 825, 812, 800, 826, 827, ++ 800, 812, 828, 818, 800, 800, 829, 830, 831, 832, ++ 819, 820, 833, 834, 835, 836, 838, 812, 839, 840, ++ 812, 821, 822, 812, 823, 824, 825, 812, 841, 826, ++ ++ 827, 842, 812, 828, 843, 844, 845, 829, 830, 831, ++ 832, 846, 847, 833, 834, 835, 836, 838, 848, 839, ++ 840, 849, 851, 853, 854, 855, 856, 857, 858, 841, ++ 859, 860, 842, 861, 862, 843, 844, 845, 863, 864, ++ 865, 866, 846, 847, 867, 868, 869, 870, 871, 848, ++ 873, 872, 849, 851, 853, 854, 855, 856, 857, 858, ++ 872, 859, 860, 874, 861, 862, 875, 876, 878, 863, ++ 864, 865, 866, 877, 879, 867, 868, 869, 870, 871, ++ 877, 873, 872, 880, 881, 882, 883, 884, 885, 889, ++ 888, 872, 888, 890, 874, 891, 892, 875, 876, 878, ++ ++ 893, 894, 896, 897, 877, 879, 898, 899, 888, 901, ++ 902, 877, 904, 906, 880, 881, 882, 883, 884, 885, ++ 889, 888, 903, 888, 890, 907, 891, 892, 903, 908, ++ 909, 893, 894, 896, 897, 907, 912, 898, 899, 888, ++ 901, 902, 913, 904, 906, 914, 915, 916, 917, 919, ++ 920, 921, 922, 903, 923, 924, 907, 925, 926, 903, ++ 908, 909, 927, 928, 929, 931, 907, 912, 932, 933, ++ 934, 936, 937, 913, 938, 941, 914, 915, 916, 917, ++ 919, 920, 921, 922, 943, 923, 924, 944, 925, 926, ++ 945, 946, 948, 927, 928, 929, 931, 0, 950, 932, ++ ++ 933, 934, 936, 937, 951, 938, 941, 952, 954, 952, ++ 955, 956, 957, 958, 959, 943, 960, 961, 944, 963, ++ 966, 945, 946, 948, 950, 968, 969, 970, 951, 950, ++ 971, 972, 974, 976, 977, 951, 978, 979, 980, 954, ++ 982, 955, 956, 957, 958, 959, 983, 960, 961, 984, ++ 963, 966, 985, 987, 989, 990, 968, 969, 970, 992, ++ 994, 971, 972, 974, 976, 977, 995, 978, 979, 980, ++ 996, 982, 997, 1000, 1001, 1002, 1003, 983, 1004, 1006, ++ 984, 1007, 1008, 985, 987, 989, 990, 1009, 1010, 1011, ++ 992, 994, 1012, 1013, 1014, 1015, 1016, 995, 1018, 1021, ++ ++ 1017, 996, 1022, 997, 1000, 1001, 1002, 1003, 1017, 1004, ++ 1006, 1023, 1007, 1008, 1024, 1025, 1026, 1027, 1009, 1010, ++ 1011, 1028, 1029, 1012, 1013, 1014, 1015, 1016, 1030, 1018, ++ 1021, 1017, 1031, 1022, 1032, 1033, 1034, 1035, 1036, 1017, ++ 1037, 1039, 1023, 1041, 1042, 1024, 1025, 1026, 1027, 1043, ++ 1044, 1045, 1028, 1029, 1046, 1047, 1048, 1049, 1050, 1030, ++ 1051, 1052, 1053, 1031, 1054, 1032, 1033, 1034, 1035, 1036, ++ 1057, 1037, 1039, 1059, 1041, 1042, 1060, 1061, 1062, 1063, ++ 1043, 1044, 1045, 1064, 1065, 1046, 1047, 1048, 1049, 1050, ++ 1070, 1051, 1052, 1053, 1071, 1054, 1072, 1073, 1074, 1075, ++ ++ 1076, 1057, 1077, 1078, 1059, 1079, 1080, 1060, 1061, 1062, ++ 1063, 1081, 1083, 1085, 1064, 1065, 1086, 1087, 1088, 1089, ++ 1090, 1070, 1091, 1092, 1093, 1071, 1094, 1072, 1073, 1074, ++ 1075, 1076, 1097, 1077, 1078, 1100, 1079, 1080, 1101, 1102, ++ 1093, 1103, 1081, 1083, 1085, 1104, 1105, 1086, 1087, 1088, ++ 1089, 1090, 1106, 1091, 1092, 1093, 1107, 1094, 1108, 1109, ++ 1110, 1111, 1112, 1097, 1113, 1114, 1100, 1115, 1120, 1101, ++ 1102, 1093, 1103, 1121, 1122, 1123, 1104, 1105, 1124, 1125, ++ 1126, 1127, 1129, 1106, 1130, 1131, 1132, 1107, 1133, 1108, ++ 1109, 1110, 1111, 1112, 1134, 1113, 1114, 1136, 1115, 1120, ++ ++ 1137, 1138, 1139, 1140, 1121, 1122, 1123, 1147, 1148, 1124, ++ 1125, 1126, 1127, 1129, 1142, 1130, 1131, 1132, 1143, 1133, ++ 1149, 1150, 1151, 1152, 1153, 1134, 1154, 1155, 1136, 1156, ++ 1157, 1137, 1138, 1139, 1140, 1159, 1160, 1161, 1147, 1148, ++ 1142, 1162, 1143, 1164, 1166, 1142, 1168, 1169, 1170, 1143, ++ 1172, 1149, 1150, 1151, 1152, 1153, 1173, 1154, 1155, 1175, ++ 1156, 1157, 1176, 1177, 1178, 1179, 1159, 1160, 1161, 1180, ++ 1181, 1182, 1162, 1183, 1164, 1166, 1185, 1168, 1169, 1170, ++ 1186, 1172, 1187, 1188, 1190, 1191, 1192, 1173, 1193, 1194, ++ 1175, 1195, 1196, 1176, 1177, 1178, 1179, 1197, 1198, 1200, ++ ++ 1180, 1181, 1182, 1201, 1183, 1203, 1204, 1185, 1205, 1206, ++ 1207, 1186, 1208, 1187, 1188, 1190, 1191, 1192, 1209, 1193, ++ 1194, 1210, 1195, 1196, 1212, 1213, 1214, 1215, 1197, 1198, ++ 1200, 1216, 1218, 1219, 1201, 1220, 1203, 1204, 1221, 1205, ++ 1206, 1207, 1222, 1208, 1223, 1225, 1226, 1227, 1228, 1209, ++ 1229, 1231, 1210, 1231, 1233, 1212, 1213, 1214, 1215, 1235, ++ 1234, 1236, 1216, 1218, 1219, 1238, 1220, 1239, 1241, 1221, ++ 1243, 1244, 1245, 1222, 1246, 1223, 1225, 1226, 1227, 1228, ++ 1234, 1229, 1231, 1247, 1231, 1233, 1248, 1249, 1250, 1251, ++ 1235, 1234, 1236, 1252, 1253, 1254, 1238, 1255, 1239, 1241, ++ ++ 1256, 1243, 1244, 1245, 1257, 1246, 1258, 1259, 1260, 1261, ++ 1262, 1234, 1263, 1264, 1247, 1266, 1267, 1248, 1249, 1250, ++ 1251, 1265, 1268, 1265, 1252, 1253, 1254, 1269, 1255, 1271, ++ 1272, 1256, 1273, 1274, 1275, 1257, 1278, 1258, 1259, 1260, ++ 1261, 1262, 1279, 1263, 1264, 1280, 1266, 1267, 1282, 1285, ++ 1286, 1288, 1265, 1268, 1265, 1289, 1290, 1292, 1269, 1293, ++ 1271, 1272, 1294, 1273, 1274, 1275, 1295, 1278, 1296, 1297, ++ 1299, 1303, 1300, 1279, 1304, 1305, 1280, 1306, 1307, 1282, ++ 1285, 1286, 1288, 1309, 1310, 1311, 1289, 1290, 1292, 1300, ++ 1293, 1312, 1313, 1294, 1299, 1314, 1315, 1295, 1316, 1296, ++ ++ 1297, 1299, 1303, 1300, 1317, 1304, 1305, 1318, 1306, 1307, ++ 1320, 1321, 1322, 1323, 1309, 1310, 1311, 1324, 1325, 1326, ++ 1328, 1329, 1312, 1313, 1330, 1331, 1314, 1315, 1333, 1316, ++ 1334, 1335, 1337, 1338, 1339, 1317, 1340, 1341, 1318, 1342, ++ 1343, 1320, 1321, 1322, 1323, 1344, 1345, 1346, 1324, 1325, ++ 1326, 1328, 1329, 1347, 1348, 1330, 1331, 1349, 1350, 1333, ++ 1351, 1334, 1335, 1337, 1338, 1339, 1352, 1340, 1341, 1353, ++ 1342, 1343, 1354, 1355, 1356, 1357, 1344, 1345, 1346, 1361, ++ 1362, 1363, 1364, 1365, 1347, 1348, 1366, 1367, 1349, 1350, ++ 1368, 1351, 1371, 1372, 1373, 1374, 1375, 1352, 1376, 1377, ++ ++ 1353, 1379, 1380, 1354, 1355, 1356, 1357, 1382, 1383, 1385, ++ 1361, 1362, 1363, 1364, 1365, 1386, 1387, 1366, 1367, 1389, ++ 1390, 1368, 1391, 1371, 1372, 1373, 1374, 1375, 1392, 1376, ++ 1377, 1394, 1379, 1380, 1396, 1397, 1399, 1400, 1382, 1383, ++ 1385, 1401, 1402, 1403, 1404, 1405, 1386, 1387, 1408, 1410, ++ 1389, 1390, 1411, 1391, 1412, 1416, 1417, 1419, 1423, 1392, ++ 1424, 1425, 1394, 1427, 1428, 1396, 1397, 1399, 1400, 1432, ++ 1433, 1435, 1401, 1402, 1403, 1404, 1405, 1437, 1439, 1408, ++ 1410, 1430, 1431, 1411, 1441, 1412, 1416, 1417, 1419, 1423, ++ 1442, 1424, 1425, 1444, 1427, 1428, 1446, 1447, 1430, 1431, ++ ++ 1432, 1433, 1435, 1449, 1450, 1451, 1452, 1454, 1437, 1439, ++ 1458, 1460, 1430, 1431, 1461, 1441, 1462, 1463, 1464, 1466, ++ 1467, 1442, 1468, 1469, 1444, 1470, 1471, 1446, 1447, 1472, ++ 1473, 1474, 1475, 1476, 1449, 1450, 1451, 1452, 1454, 1478, ++ 1479, 1458, 1460, 1480, 1481, 1461, 1482, 1462, 1463, 1464, ++ 1466, 1467, 1483, 1468, 1469, 1484, 1470, 1471, 1485, 1486, ++ 1472, 1473, 1474, 1475, 1476, 1487, 1488, 1489, 1490, 1491, ++ 1478, 1479, 1492, 1493, 1480, 1481, 1494, 1482, 1495, 1496, ++ 1497, 1498, 1499, 1483, 1500, 1501, 1484, 1502, 1503, 1485, ++ 1486, 1506, 1507, 1508, 1509, 1510, 1487, 1488, 1489, 1490, ++ ++ 1491, 1511, 1512, 1492, 1493, 1516, 1519, 1494, 1521, 1495, ++ 1496, 1497, 1498, 1499, 1522, 1500, 1501, 1523, 1502, 1503, ++ 1524, 1525, 1506, 1507, 1508, 1509, 1510, 1526, 1527, 1528, ++ 1530, 1531, 1511, 1512, 1532, 1534, 1516, 1519, 1535, 1521, ++ 1540, 1531, 1544, 1545, 1539, 1522, 1548, 1530, 1523, 1539, ++ 1552, 1524, 1525, 1553, 1554, 1555, 1556, 1557, 1526, 1527, ++ 1528, 1530, 1531, 1560, 1561, 1532, 1534, 1562, 1563, 1535, ++ 1564, 1540, 1565, 1544, 1545, 1539, 1566, 1548, 1567, 1569, ++ 1539, 1552, 1570, 1571, 1553, 1554, 1555, 1556, 1557, 1572, ++ 1573, 1574, 1575, 1576, 1560, 1561, 1577, 1579, 1562, 1563, ++ ++ 1580, 1564, 1581, 1565, 1582, 1583, 1584, 1566, 1586, 1567, ++ 1569, 1589, 1591, 1570, 1571, 1595, 1597, 1598, 1599, 1607, ++ 1572, 1573, 1574, 1575, 1576, 1608, 1610, 1577, 1579, 1607, ++ 1611, 1580, 1612, 1581, 1613, 1582, 1583, 1584, 1614, 1586, ++ 1615, 1616, 1589, 1591, 1617, 1608, 1595, 1597, 1598, 1599, ++ 1607, 1619, 1620, 1621, 1622, 1623, 1608, 1610, 1628, 1629, ++ 1630, 1611, 1633, 1612, 1636, 1613, 1637, 1639, 1641, 1614, ++ 1642, 1615, 1616, 1643, 1644, 1617, 1647, 1649, 1651, 1652, ++ 1654, 1656, 1619, 1620, 1621, 1622, 1623, 1658, 1659, 1628, ++ 1629, 1630, 1660, 1633, 1662, 1636, 1663, 1637, 1639, 1641, ++ ++ 1654, 1642, 1664, 1655, 1643, 1644, 1655, 1647, 1649, 1651, ++ 1652, 1654, 1656, 1665, 1666, 1668, 1669, 1670, 1658, 1659, ++ 1672, 1673, 1675, 1660, 1676, 1662, 1680, 1663, 1681, 1682, ++ 1683, 0, 1684, 1664, 1655, 1684, 1686, 1687, 1685, 1688, ++ 1692, 1693, 1695, 1696, 1665, 1666, 1668, 1669, 1670, 1698, ++ 1702, 1672, 1673, 1675, 1703, 1676, 1704, 1680, 1705, 1681, ++ 1682, 1683, 1685, 1684, 1706, 1708, 1709, 1686, 1687, 1685, ++ 1688, 1692, 1693, 1695, 1696, 1711, 1712, 1713, 1714, 1718, ++ 1698, 1702, 1723, 1724, 1725, 1703, 1728, 1704, 1706, 1705, ++ 1730, 1731, 1732, 1735, 1736, 1706, 1708, 1709, 0, 0, ++ ++ 0, 0, 0, 0, 0, 0, 1711, 1712, 1713, 1714, ++ 1718, 0, 0, 1723, 1724, 1725, 0, 1728, 0, 0, ++ 0, 1730, 1731, 1732, 1735, 1736, 1740, 1740, 1740, 1740, ++ 1740, 1741, 1741, 1741, 1741, 1741, 1742, 1742, 1742, 1742, ++ 1742, 1743, 0, 1743, 1743, 1743, 1744, 0, 1744, 1744, ++ 1744, 1746, 1746, 1746, 1746, 1746, 1747, 1747, 1747, 1747, ++ 1747, 1748, 0, 1748, 1748, 1748, 1749, 1749, 1749, 1749, ++ 1749, 1750, 1750, 1750, 1750, 1750, 1751, 1751, 1751, 1751, ++ 1751, 1752, 1752, 1752, 1752, 1752, 1753, 1753, 0, 1753, ++ 1753, 1754, 0, 1754, 0, 1754, 1755, 1755, 1755, 1755, ++ ++ 1755, 1756, 1756, 1756, 1756, 1756, 1757, 1757, 1757, 1757, ++ 1757, 1758, 1758, 1758, 1758, 1758, 1759, 1759, 1759, 1759, ++ 1759, 1760, 1760, 1760, 1760, 1760, 1761, 0, 1761, 1761, ++ 1761, 1762, 1762, 1762, 1762, 1762, 1763, 0, 1763, 1763, ++ 1763, 1764, 1764, 1764, 1764, 1764, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, ++ 1739, 1739, 1739 + } ; + + static yy_state_type yy_last_accepting_state; +@@ -2217,7 +2213,6 @@ double msyynumber; + int msyystate=MS_TOKENIZE_DEFAULT; + char *msyystring=NULL; + char *msyybasepath=NULL; +-char *msyystring_buffer_ptr; + int msyystring_buffer_size = 0; + int msyystring_size; + char msyystring_begin; +@@ -2225,25 +2220,21 @@ char *msyystring_buffer = NULL; + int msyystring_icase = MS_FALSE; + int msyystring_return_state; + int msyystring_begin_state; +-int msyystring_size_tmp; + + int msyyreturncomments = 0; + +-#define MS_LEXER_STRING_REALLOC(string, string_size, max_size, string_ptr) \ ++#define MS_LEXER_STRING_REALLOC(string, string_size, max_size) \ + do { \ + const int string_size_macro = (int)(string_size); \ + if (string_size_macro >= (int)(max_size)) { \ +- msyystring_size_tmp = (max_size); \ + max_size = (((int)(max_size)*2) > string_size_macro) ? ((int)(max_size))*2 : string_size_macro+1; \ + string = (char *) msSmallRealloc(string, sizeof(char *) * (max_size)); \ +- string_ptr = string; \ +- string_ptr += msyystring_size_tmp; \ + } \ + } while(0) + + #define MS_LEXER_RETURN_TOKEN(token) \ + MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), \ +- msyystring_buffer_size, msyystring_buffer_ptr); \ ++ msyystring_buffer_size); \ + strcpy(msyystring_buffer, msyytext); \ + return(token); + +@@ -2253,9 +2244,9 @@ int include_lineno[MAX_INCLUDE_DEPTH]; + int include_stack_ptr = 0; + char path[MS_MAXPATHLEN]; + +-#line 2257 "/home/bjorn/code/MapServer/maplexer.c" ++#line 2248 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + +-#line 2259 "/home/bjorn/code/MapServer/maplexer.c" ++#line 2250 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + + #define INITIAL 0 + #define EXPRESSION_STRING 1 +@@ -2469,9 +2460,9 @@ YY_DECL + } + + { +-#line 93 "maplexer.l" ++#line 88 "maplexer.l" + +-#line 95 "maplexer.l" ++#line 90 "maplexer.l" + if (msyystring_buffer == NULL) + { + msyystring_buffer_size = 256; +@@ -2535,7 +2526,7 @@ YY_DECL + break; + } + +-#line 2539 "/home/bjorn/code/MapServer/maplexer.c" ++#line 2530 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { +@@ -2562,13 +2553,13 @@ yy_match: + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 1732 ) ++ if ( yy_current_state >= 1740 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + ++yy_cp; + } +- while ( yy_current_state != 1731 ); ++ while ( yy_current_state != 1739 ); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + +@@ -2590,1611 +2581,1611 @@ do_action: /* This label is used only to access EOF actions. */ + + case 1: + YY_RULE_SETUP +-#line 158 "maplexer.l" ++#line 153 "maplexer.l" + ; + YY_BREAK + case 2: + YY_RULE_SETUP +-#line 160 "maplexer.l" ++#line 155 "maplexer.l" + { if (msyyreturncomments) return(MS_COMMENT); } + YY_BREAK + case 3: + YY_RULE_SETUP +-#line 162 "maplexer.l" ++#line 157 "maplexer.l" + { BEGIN(MULTILINE_COMMENT); } + YY_BREAK + case 4: + YY_RULE_SETUP +-#line 163 "maplexer.l" ++#line 158 "maplexer.l" + { BEGIN(INITIAL); } + YY_BREAK + case 5: + YY_RULE_SETUP +-#line 164 "maplexer.l" ++#line 159 "maplexer.l" + ; + YY_BREAK + case 6: + YY_RULE_SETUP +-#line 165 "maplexer.l" ++#line 160 "maplexer.l" + ; + YY_BREAK + case 7: + /* rule 7 can match eol */ + YY_RULE_SETUP +-#line 166 "maplexer.l" ++#line 161 "maplexer.l" + { msyylineno++; } + YY_BREAK + case 8: + YY_RULE_SETUP +-#line 168 "maplexer.l" ++#line 163 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CONFIG_SECTION); } + YY_BREAK + case 9: + YY_RULE_SETUP +-#line 169 "maplexer.l" ++#line 164 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CONFIG_SECTION_ENV); } + YY_BREAK + case 10: + YY_RULE_SETUP +-#line 170 "maplexer.l" ++#line 165 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CONFIG_SECTION_MAPS); } + YY_BREAK + case 11: + YY_RULE_SETUP +-#line 171 "maplexer.l" ++#line 166 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CONFIG_SECTION_PLUGINS) } + YY_BREAK + case 12: + YY_RULE_SETUP +-#line 173 "maplexer.l" ++#line 168 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_OR); } + YY_BREAK + case 13: + YY_RULE_SETUP +-#line 174 "maplexer.l" ++#line 169 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_AND); } + YY_BREAK + case 14: + YY_RULE_SETUP +-#line 175 "maplexer.l" ++#line 170 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_NOT); } + YY_BREAK + case 15: + YY_RULE_SETUP +-#line 176 "maplexer.l" ++#line 171 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQ); } + YY_BREAK + case 16: + YY_RULE_SETUP +-#line 177 "maplexer.l" ++#line 172 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_NE); } + YY_BREAK + case 17: + YY_RULE_SETUP +-#line 178 "maplexer.l" ++#line 173 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GT); } + YY_BREAK + case 18: + YY_RULE_SETUP +-#line 179 "maplexer.l" ++#line 174 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LT); } + YY_BREAK + case 19: + YY_RULE_SETUP +-#line 180 "maplexer.l" ++#line 175 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GE); } + YY_BREAK + case 20: + YY_RULE_SETUP +-#line 181 "maplexer.l" ++#line 176 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LE); } + YY_BREAK + case 21: + YY_RULE_SETUP +-#line 182 "maplexer.l" ++#line 177 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_RE); } + YY_BREAK + case 22: + YY_RULE_SETUP +-#line 184 "maplexer.l" ++#line 179 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IEQ); } + YY_BREAK + case 23: + YY_RULE_SETUP +-#line 185 "maplexer.l" ++#line 180 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IRE); } + YY_BREAK + case 24: + YY_RULE_SETUP +-#line 187 "maplexer.l" ++#line 182 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IN); /* was IN */ } + YY_BREAK + case 25: + YY_RULE_SETUP +-#line 189 "maplexer.l" ++#line 184 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_AREA); } + YY_BREAK + case 26: + YY_RULE_SETUP +-#line 190 "maplexer.l" ++#line 185 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LENGTH); } + YY_BREAK + case 27: + YY_RULE_SETUP +-#line 191 "maplexer.l" ++#line 186 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_TOSTRING); } + YY_BREAK + case 28: + YY_RULE_SETUP +-#line 192 "maplexer.l" ++#line 187 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_COMMIFY); } + YY_BREAK + case 29: + YY_RULE_SETUP +-#line 193 "maplexer.l" ++#line 188 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_ROUND); } + YY_BREAK + case 30: + YY_RULE_SETUP +-#line 194 "maplexer.l" ++#line 189 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_UPPER); } + YY_BREAK + case 31: + YY_RULE_SETUP +-#line 195 "maplexer.l" ++#line 190 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LOWER); } + YY_BREAK + case 32: + YY_RULE_SETUP +-#line 196 "maplexer.l" ++#line 191 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_INITCAP); } + YY_BREAK + case 33: + YY_RULE_SETUP +-#line 197 "maplexer.l" ++#line 192 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FIRSTCAP); } + YY_BREAK + case 34: + YY_RULE_SETUP +-#line 199 "maplexer.l" ++#line 194 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); } + YY_BREAK + case 35: + YY_RULE_SETUP +-#line 200 "maplexer.l" ++#line 195 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); } + YY_BREAK + case 36: + YY_RULE_SETUP +-#line 201 "maplexer.l" ++#line 196 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFY); } + YY_BREAK + case 37: + YY_RULE_SETUP +-#line 202 "maplexer.l" ++#line 197 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); } + YY_BREAK + case 38: + YY_RULE_SETUP +-#line 203 "maplexer.l" ++#line 198 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); } + YY_BREAK + case 39: + YY_RULE_SETUP +-#line 204 "maplexer.l" ++#line 199 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); } + YY_BREAK + case 40: + YY_RULE_SETUP +-#line 205 "maplexer.l" ++#line 200 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_CENTERLINE); } + YY_BREAK + case 41: + YY_RULE_SETUP +-#line 206 "maplexer.l" ++#line 201 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DENSIFY); } + YY_BREAK + case 42: + YY_RULE_SETUP +-#line 207 "maplexer.l" ++#line 202 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_OUTER); } + YY_BREAK + case 43: + YY_RULE_SETUP +-#line 208 "maplexer.l" ++#line 203 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_INNER); } + YY_BREAK + case 44: + YY_RULE_SETUP +-#line 209 "maplexer.l" ++#line 204 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_JAVASCRIPT); } + YY_BREAK + case 45: + YY_RULE_SETUP +-#line 211 "maplexer.l" ++#line 206 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); } + YY_BREAK + case 46: + YY_RULE_SETUP +-#line 212 "maplexer.l" ++#line 207 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); } + YY_BREAK + case 47: + YY_RULE_SETUP +-#line 213 "maplexer.l" ++#line 208 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_TOUCHES); } + YY_BREAK + case 48: + YY_RULE_SETUP +-#line 214 "maplexer.l" ++#line 209 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_OVERLAPS); } + YY_BREAK + case 49: + YY_RULE_SETUP +-#line 215 "maplexer.l" ++#line 210 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); } + YY_BREAK + case 50: + YY_RULE_SETUP +-#line 216 "maplexer.l" ++#line 211 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); } + YY_BREAK + case 51: + YY_RULE_SETUP +-#line 217 "maplexer.l" ++#line 212 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); } + YY_BREAK + case 52: + YY_RULE_SETUP +-#line 218 "maplexer.l" ++#line 213 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQUALS); } + YY_BREAK + case 53: + YY_RULE_SETUP +-#line 219 "maplexer.l" ++#line 214 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); } + YY_BREAK + case 54: + YY_RULE_SETUP +-#line 220 "maplexer.l" ++#line 215 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); } + YY_BREAK + case 55: + YY_RULE_SETUP +-#line 222 "maplexer.l" ++#line 217 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); } + YY_BREAK + case 56: + YY_RULE_SETUP +-#line 224 "maplexer.l" ++#line 219 "maplexer.l" + { msyynumber=MS_TRUE; return(MS_TOKEN_LITERAL_BOOLEAN); } + YY_BREAK + case 57: + YY_RULE_SETUP +-#line 225 "maplexer.l" ++#line 220 "maplexer.l" + { msyynumber=MS_FALSE; return(MS_TOKEN_LITERAL_BOOLEAN); } + YY_BREAK + case 58: + YY_RULE_SETUP +-#line 227 "maplexer.l" ++#line 222 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(COLORRANGE); } + YY_BREAK + case 59: + YY_RULE_SETUP +-#line 228 "maplexer.l" ++#line 223 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(DATARANGE); } + YY_BREAK + case 60: + YY_RULE_SETUP +-#line 229 "maplexer.l" ++#line 224 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(RANGEITEM); } + YY_BREAK + case 61: + YY_RULE_SETUP +-#line 231 "maplexer.l" ++#line 226 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ALIGN); } + YY_BREAK + case 62: + YY_RULE_SETUP +-#line 232 "maplexer.l" ++#line 227 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ANCHORPOINT); } + YY_BREAK + case 63: + YY_RULE_SETUP +-#line 233 "maplexer.l" ++#line 228 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ANGLE); } + YY_BREAK + case 64: + YY_RULE_SETUP +-#line 234 "maplexer.l" ++#line 229 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ANTIALIAS); } + YY_BREAK + case 65: + YY_RULE_SETUP +-#line 235 "maplexer.l" ++#line 230 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); } + YY_BREAK + case 66: + YY_RULE_SETUP +-#line 236 "maplexer.l" ++#line 231 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BANDSITEM); } + YY_BREAK + case 67: + YY_RULE_SETUP +-#line 237 "maplexer.l" ++#line 232 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BINDVALS); } + YY_BREAK + case 68: + YY_RULE_SETUP +-#line 238 "maplexer.l" ++#line 233 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BOM); } + YY_BREAK + case 69: + YY_RULE_SETUP +-#line 239 "maplexer.l" ++#line 234 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); } + YY_BREAK + case 70: + YY_RULE_SETUP +-#line 240 "maplexer.l" ++#line 235 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(BUFFER); } + YY_BREAK + case 71: + YY_RULE_SETUP +-#line 241 "maplexer.l" ++#line 236 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CHARACTER); } + YY_BREAK + case 72: + YY_RULE_SETUP +-#line 242 "maplexer.l" ++#line 237 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CLASS); } + YY_BREAK + case 73: + YY_RULE_SETUP +-#line 243 "maplexer.l" ++#line 238 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CLASSITEM); } + YY_BREAK + case 74: + YY_RULE_SETUP +-#line 244 "maplexer.l" ++#line 239 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CLASSGROUP); } + YY_BREAK + case 75: + YY_RULE_SETUP +-#line 245 "maplexer.l" ++#line 240 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CLUSTER); } + YY_BREAK + case 76: + YY_RULE_SETUP +-#line 246 "maplexer.l" ++#line 241 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(COLOR); } + YY_BREAK + case 77: + YY_RULE_SETUP +-#line 247 "maplexer.l" ++#line 242 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(COMPFILTER); } + YY_BREAK + case 78: + YY_RULE_SETUP +-#line 248 "maplexer.l" ++#line 243 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(COMPOSITE); } + YY_BREAK + case 79: + YY_RULE_SETUP +-#line 249 "maplexer.l" ++#line 244 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(COMPOP); } + YY_BREAK + case 80: + YY_RULE_SETUP +-#line 250 "maplexer.l" ++#line 245 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CONFIG); } + YY_BREAK + case 81: + YY_RULE_SETUP +-#line 251 "maplexer.l" ++#line 246 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CONNECTION); } + YY_BREAK + case 82: + YY_RULE_SETUP +-#line 252 "maplexer.l" ++#line 247 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); } + YY_BREAK + case 83: + YY_RULE_SETUP +-#line 253 "maplexer.l" ++#line 248 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(DATA); } + YY_BREAK + case 84: + YY_RULE_SETUP +-#line 254 "maplexer.l" ++#line 249 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(DEBUG); } + YY_BREAK + case 85: + YY_RULE_SETUP +-#line 255 "maplexer.l" ++#line 250 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(DRIVER); } + YY_BREAK + case 86: + YY_RULE_SETUP +-#line 256 "maplexer.l" ++#line 251 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(EMPTY); } + YY_BREAK + case 87: + YY_RULE_SETUP +-#line 257 "maplexer.l" ++#line 252 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ENCODING); } + YY_BREAK + case 88: + YY_RULE_SETUP +-#line 258 "maplexer.l" ++#line 253 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(END); } + YY_BREAK + case 89: + YY_RULE_SETUP +-#line 259 "maplexer.l" ++#line 254 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ERROR); } + YY_BREAK + case 90: + YY_RULE_SETUP +-#line 260 "maplexer.l" ++#line 255 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(EXPRESSION); } + YY_BREAK + case 91: + YY_RULE_SETUP +-#line 261 "maplexer.l" ++#line 256 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(EXTENT); } + YY_BREAK + case 92: + YY_RULE_SETUP +-#line 262 "maplexer.l" ++#line 257 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(EXTENSION); } + YY_BREAK + case 93: + YY_RULE_SETUP +-#line 263 "maplexer.l" ++#line 258 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FEATURE); } + YY_BREAK + case 94: + YY_RULE_SETUP +-#line 264 "maplexer.l" ++#line 259 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FILLED); } + YY_BREAK + case 95: + YY_RULE_SETUP +-#line 265 "maplexer.l" ++#line 260 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FILTER); } + YY_BREAK + case 96: + YY_RULE_SETUP +-#line 266 "maplexer.l" ++#line 261 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FILTERITEM); } + YY_BREAK + case 97: + YY_RULE_SETUP +-#line 267 "maplexer.l" ++#line 262 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FOOTER); } + YY_BREAK + case 98: + YY_RULE_SETUP +-#line 268 "maplexer.l" ++#line 263 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FONT); } + YY_BREAK + case 99: + YY_RULE_SETUP +-#line 269 "maplexer.l" ++#line 264 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FONTSET); } + YY_BREAK + case 100: + YY_RULE_SETUP +-#line 270 "maplexer.l" ++#line 265 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FORCE); } + YY_BREAK + case 101: + YY_RULE_SETUP +-#line 271 "maplexer.l" ++#line 266 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FORMATOPTION); } + YY_BREAK + case 102: + YY_RULE_SETUP +-#line 272 "maplexer.l" ++#line 267 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(FROM); } + YY_BREAK + case 103: + YY_RULE_SETUP +-#line 273 "maplexer.l" ++#line 268 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GAP); } + YY_BREAK + case 104: + YY_RULE_SETUP +-#line 274 "maplexer.l" ++#line 269 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); } + YY_BREAK + case 105: + YY_RULE_SETUP +-#line 275 "maplexer.l" ++#line 270 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GRID); } + YY_BREAK + case 106: + YY_RULE_SETUP +-#line 276 "maplexer.l" ++#line 271 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GRIDSTEP); } + YY_BREAK + case 107: + YY_RULE_SETUP +-#line 277 "maplexer.l" ++#line 272 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GRATICULE); } + YY_BREAK + case 108: + YY_RULE_SETUP +-#line 278 "maplexer.l" ++#line 273 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(GROUP); } + YY_BREAK + case 109: + YY_RULE_SETUP +-#line 279 "maplexer.l" ++#line 274 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(HEADER); } + YY_BREAK + case 110: + YY_RULE_SETUP +-#line 280 "maplexer.l" ++#line 275 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGE); } + YY_BREAK + case 111: + YY_RULE_SETUP +-#line 281 "maplexer.l" ++#line 276 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGECOLOR); } + YY_BREAK + case 112: + YY_RULE_SETUP +-#line 282 "maplexer.l" ++#line 277 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGETYPE); } + YY_BREAK + case 113: + YY_RULE_SETUP +-#line 283 "maplexer.l" ++#line 278 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGEMODE); } + YY_BREAK + case 114: + YY_RULE_SETUP +-#line 284 "maplexer.l" ++#line 279 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGEPATH); } + YY_BREAK + case 115: + YY_RULE_SETUP +-#line 285 "maplexer.l" ++#line 280 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TEMPPATH); } + YY_BREAK + case 116: + YY_RULE_SETUP +-#line 286 "maplexer.l" ++#line 281 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(IMAGEURL); } + YY_BREAK + case 117: + YY_RULE_SETUP +-#line 287 "maplexer.l" ++#line 282 "maplexer.l" + { BEGIN(INCLUDE); } + YY_BREAK + case 118: + YY_RULE_SETUP +-#line 288 "maplexer.l" ++#line 283 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(INDEX); } + YY_BREAK + case 119: + YY_RULE_SETUP +-#line 289 "maplexer.l" ++#line 284 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(INITIALGAP); } + YY_BREAK + case 120: + YY_RULE_SETUP +-#line 290 "maplexer.l" ++#line 285 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(INTERVALS); } + YY_BREAK + case 121: + YY_RULE_SETUP +-#line 291 "maplexer.l" ++#line 286 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(JOIN); } + YY_BREAK + case 122: + YY_RULE_SETUP +-#line 292 "maplexer.l" ++#line 287 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(KEYIMAGE); } + YY_BREAK + case 123: + YY_RULE_SETUP +-#line 293 "maplexer.l" ++#line 288 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(KEYSIZE); } + YY_BREAK + case 124: + YY_RULE_SETUP +-#line 294 "maplexer.l" ++#line 289 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(KEYSPACING); } + YY_BREAK + case 125: + YY_RULE_SETUP +-#line 295 "maplexer.l" ++#line 290 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABEL); } + YY_BREAK + case 126: + YY_RULE_SETUP +-#line 296 "maplexer.l" ++#line 291 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELCACHE); } + YY_BREAK + case 127: + YY_RULE_SETUP +-#line 297 "maplexer.l" ++#line 292 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELFORMAT); } + YY_BREAK + case 128: + YY_RULE_SETUP +-#line 298 "maplexer.l" ++#line 293 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELITEM); } + YY_BREAK + case 129: + YY_RULE_SETUP +-#line 299 "maplexer.l" ++#line 294 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); } + YY_BREAK + case 130: + YY_RULE_SETUP +-#line 300 "maplexer.l" ++#line 295 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); } + YY_BREAK + case 131: + YY_RULE_SETUP +-#line 301 "maplexer.l" ++#line 296 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELMINSCALE); } + YY_BREAK + case 132: + YY_RULE_SETUP +-#line 302 "maplexer.l" ++#line 297 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); } + YY_BREAK + case 133: + YY_RULE_SETUP +-#line 303 "maplexer.l" ++#line 298 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LABELREQUIRES); } + YY_BREAK + case 134: + YY_RULE_SETUP +-#line 304 "maplexer.l" ++#line 299 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LATLON); } + YY_BREAK + case 135: + YY_RULE_SETUP +-#line 305 "maplexer.l" ++#line 300 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LAYER); } + YY_BREAK + case 136: + YY_RULE_SETUP +-#line 306 "maplexer.l" ++#line 301 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LEADER); } + YY_BREAK + case 137: + YY_RULE_SETUP +-#line 307 "maplexer.l" ++#line 302 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LEGEND); } + YY_BREAK + case 138: + YY_RULE_SETUP +-#line 308 "maplexer.l" ++#line 303 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); } + YY_BREAK + case 139: + YY_RULE_SETUP +-#line 309 "maplexer.l" ++#line 304 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LINECAP); } + YY_BREAK + case 140: + YY_RULE_SETUP +-#line 310 "maplexer.l" ++#line 305 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LINEJOIN); } + YY_BREAK + case 141: + YY_RULE_SETUP +-#line 311 "maplexer.l" ++#line 306 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); } + YY_BREAK + case 142: + YY_RULE_SETUP +-#line 312 "maplexer.l" ++#line 307 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAP); } + YY_BREAK + case 143: + YY_RULE_SETUP +-#line 313 "maplexer.l" ++#line 308 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MARKER); } + YY_BREAK + case 144: + YY_RULE_SETUP +-#line 314 "maplexer.l" ++#line 309 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MARKERSIZE); } + YY_BREAK + case 145: + YY_RULE_SETUP +-#line 315 "maplexer.l" ++#line 310 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MASK); } + YY_BREAK + case 146: + YY_RULE_SETUP +-#line 316 "maplexer.l" ++#line 311 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXARCS); } + YY_BREAK + case 147: + YY_RULE_SETUP +-#line 317 "maplexer.l" ++#line 312 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); } + YY_BREAK + case 148: + YY_RULE_SETUP +-#line 318 "maplexer.l" ++#line 313 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXDISTANCE); } + YY_BREAK + case 149: + YY_RULE_SETUP +-#line 319 "maplexer.l" ++#line 314 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXFEATURES); } + YY_BREAK + case 150: + YY_RULE_SETUP +-#line 320 "maplexer.l" ++#line 315 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXINTERVAL); } + YY_BREAK + case 151: + YY_RULE_SETUP +-#line 321 "maplexer.l" ++#line 316 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXSCALE); } + YY_BREAK + case 152: + YY_RULE_SETUP +-#line 322 "maplexer.l" ++#line 317 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); } + YY_BREAK + case 153: + YY_RULE_SETUP +-#line 323 "maplexer.l" ++#line 318 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); } + YY_BREAK + case 154: + YY_RULE_SETUP +-#line 324 "maplexer.l" ++#line 319 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXLENGTH); } + YY_BREAK + case 155: + YY_RULE_SETUP +-#line 325 "maplexer.l" ++#line 320 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXSIZE); } + YY_BREAK + case 156: + YY_RULE_SETUP +-#line 326 "maplexer.l" ++#line 321 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); } + YY_BREAK + case 157: + YY_RULE_SETUP +-#line 327 "maplexer.l" ++#line 322 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); } + YY_BREAK + case 158: + YY_RULE_SETUP +-#line 328 "maplexer.l" ++#line 323 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXWIDTH); } + YY_BREAK + case 159: + YY_RULE_SETUP +-#line 329 "maplexer.l" ++#line 324 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(METADATA); } + YY_BREAK + case 160: + YY_RULE_SETUP +-#line 330 "maplexer.l" ++#line 325 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MIMETYPE); } + YY_BREAK + case 161: + YY_RULE_SETUP +-#line 331 "maplexer.l" ++#line 326 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINARCS); } + YY_BREAK + case 162: + YY_RULE_SETUP +-#line 332 "maplexer.l" ++#line 327 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINBOXSIZE); } + YY_BREAK + case 163: + YY_RULE_SETUP +-#line 333 "maplexer.l" ++#line 328 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINDISTANCE); } + YY_BREAK + case 164: + YY_RULE_SETUP +-#line 334 "maplexer.l" ++#line 329 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); } + YY_BREAK + case 165: + YY_RULE_SETUP +-#line 335 "maplexer.l" ++#line 330 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); } + YY_BREAK + case 166: + YY_RULE_SETUP +-#line 336 "maplexer.l" ++#line 331 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); } + YY_BREAK + case 167: + YY_RULE_SETUP +-#line 337 "maplexer.l" ++#line 332 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MININTERVAL); } + YY_BREAK + case 168: + YY_RULE_SETUP +-#line 338 "maplexer.l" ++#line 333 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINSCALE); } + YY_BREAK + case 169: + YY_RULE_SETUP +-#line 339 "maplexer.l" ++#line 334 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); } + YY_BREAK + case 170: + YY_RULE_SETUP +-#line 340 "maplexer.l" ++#line 335 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); } + YY_BREAK + case 171: + YY_RULE_SETUP +-#line 341 "maplexer.l" ++#line 336 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINSIZE); } + YY_BREAK + case 172: + YY_RULE_SETUP +-#line 342 "maplexer.l" ++#line 337 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); } + YY_BREAK + case 173: + YY_RULE_SETUP +-#line 343 "maplexer.l" ++#line 338 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINTEMPLATE); } + YY_BREAK + case 174: + YY_RULE_SETUP +-#line 344 "maplexer.l" ++#line 339 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MINWIDTH); } + YY_BREAK + case 175: + YY_RULE_SETUP +-#line 345 "maplexer.l" ++#line 340 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(NAME); } + YY_BREAK + case 176: + YY_RULE_SETUP +-#line 346 "maplexer.l" ++#line 341 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OFFSET); } + YY_BREAK + case 177: + YY_RULE_SETUP +-#line 347 "maplexer.l" ++#line 342 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OFFSITE); } + YY_BREAK + case 178: + YY_RULE_SETUP +-#line 348 "maplexer.l" ++#line 343 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OPACITY); } + YY_BREAK + case 179: + YY_RULE_SETUP +-#line 349 "maplexer.l" ++#line 344 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(CONNECTIONOPTIONS); } + YY_BREAK + case 180: + YY_RULE_SETUP +-#line 350 "maplexer.l" ++#line 345 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); } + YY_BREAK + case 181: + YY_RULE_SETUP +-#line 351 "maplexer.l" ++#line 346 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); } + YY_BREAK + case 182: + YY_RULE_SETUP +-#line 352 "maplexer.l" ++#line 347 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); } + YY_BREAK + case 183: + YY_RULE_SETUP +-#line 353 "maplexer.l" ++#line 348 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(PARTIALS); } + YY_BREAK + case 184: + YY_RULE_SETUP +-#line 354 "maplexer.l" ++#line 349 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(PATTERN); } + YY_BREAK + case 185: + YY_RULE_SETUP +-#line 355 "maplexer.l" ++#line 350 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(POINTS); } + YY_BREAK + case 186: + YY_RULE_SETUP +-#line 356 "maplexer.l" ++#line 351 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(ITEMS); } + YY_BREAK + case 187: + YY_RULE_SETUP +-#line 357 "maplexer.l" ++#line 352 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(POSITION); } + YY_BREAK + case 188: + YY_RULE_SETUP +-#line 358 "maplexer.l" ++#line 353 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); } + YY_BREAK + case 189: + YY_RULE_SETUP +-#line 359 "maplexer.l" ++#line 354 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(PRIORITY); } + YY_BREAK + case 190: + YY_RULE_SETUP +-#line 360 "maplexer.l" ++#line 355 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(PROCESSING); } + YY_BREAK + case 191: + YY_RULE_SETUP +-#line 361 "maplexer.l" ++#line 356 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(PROJECTION); } + YY_BREAK + case 192: + YY_RULE_SETUP +-#line 362 "maplexer.l" ++#line 357 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(QUERYFORMAT); } + YY_BREAK + case 193: + YY_RULE_SETUP +-#line 363 "maplexer.l" ++#line 358 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(QUERYMAP); } + YY_BREAK + case 194: + YY_RULE_SETUP +-#line 364 "maplexer.l" ++#line 359 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(REFERENCE); } + YY_BREAK + case 195: + YY_RULE_SETUP +-#line 365 "maplexer.l" ++#line 360 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(REGION); } + YY_BREAK + case 196: + YY_RULE_SETUP +-#line 366 "maplexer.l" ++#line 361 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(RELATIVETO); } + YY_BREAK + case 197: + YY_RULE_SETUP +-#line 367 "maplexer.l" ++#line 362 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(REQUIRES); } + YY_BREAK + case 198: + YY_RULE_SETUP +-#line 368 "maplexer.l" ++#line 363 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(RESOLUTION); } + YY_BREAK + case 199: + YY_RULE_SETUP +-#line 369 "maplexer.l" ++#line 364 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); } + YY_BREAK + case 200: + YY_RULE_SETUP +-#line 370 "maplexer.l" ++#line 365 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SCALE); } + YY_BREAK + case 201: + YY_RULE_SETUP +-#line 371 "maplexer.l" ++#line 366 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SCALEDENOM); } + YY_BREAK + case 202: + YY_RULE_SETUP +-#line 372 "maplexer.l" ++#line 367 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SCALEBAR); } + YY_BREAK + case 203: + YY_RULE_SETUP +-#line 373 "maplexer.l" ++#line 368 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SCALETOKEN); } + YY_BREAK + case 204: + YY_RULE_SETUP +-#line 374 "maplexer.l" ++#line 369 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); } + YY_BREAK + case 205: + YY_RULE_SETUP +-#line 375 "maplexer.l" ++#line 370 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SHADOWSIZE); } + YY_BREAK + case 206: + YY_RULE_SETUP +-#line 376 "maplexer.l" ++#line 371 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SHAPEPATH); } + YY_BREAK + case 207: + YY_RULE_SETUP +-#line 377 "maplexer.l" ++#line 372 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SIZE); } + YY_BREAK + case 208: + YY_RULE_SETUP +-#line 378 "maplexer.l" ++#line 373 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SIZEUNITS); } + YY_BREAK + case 209: + YY_RULE_SETUP +-#line 379 "maplexer.l" ++#line 374 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(STATUS); } + YY_BREAK + case 210: + YY_RULE_SETUP +-#line 380 "maplexer.l" ++#line 375 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(STYLE); } + YY_BREAK + case 211: + YY_RULE_SETUP +-#line 381 "maplexer.l" ++#line 376 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(STYLEITEM); } + YY_BREAK + case 212: + YY_RULE_SETUP +-#line 382 "maplexer.l" ++#line 377 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SYMBOL); } + YY_BREAK + case 213: + YY_RULE_SETUP +-#line 383 "maplexer.l" ++#line 378 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); } + YY_BREAK + case 214: + YY_RULE_SETUP +-#line 384 "maplexer.l" ++#line 379 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); } + YY_BREAK + case 215: + YY_RULE_SETUP +-#line 385 "maplexer.l" ++#line 380 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(SYMBOLSET); } + YY_BREAK + case 216: + YY_RULE_SETUP +-#line 386 "maplexer.l" ++#line 381 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TABLE); } + YY_BREAK + case 217: + YY_RULE_SETUP +-#line 387 "maplexer.l" ++#line 382 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TEMPLATE); } + YY_BREAK + case 218: + YY_RULE_SETUP +-#line 388 "maplexer.l" ++#line 383 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TEXT); } + YY_BREAK + case 219: + YY_RULE_SETUP +-#line 389 "maplexer.l" ++#line 384 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TILEINDEX); } + YY_BREAK + case 220: + YY_RULE_SETUP +-#line 390 "maplexer.l" ++#line 385 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TILEITEM); } + YY_BREAK + case 221: + YY_RULE_SETUP +-#line 391 "maplexer.l" ++#line 386 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TILESRS); } + YY_BREAK + case 222: + YY_RULE_SETUP +-#line 392 "maplexer.l" ++#line 387 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TITLE); } + YY_BREAK + case 223: + YY_RULE_SETUP +-#line 393 "maplexer.l" ++#line 388 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TO); } + YY_BREAK + case 224: + YY_RULE_SETUP +-#line 394 "maplexer.l" ++#line 389 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TOLERANCE); } + YY_BREAK + case 225: + YY_RULE_SETUP +-#line 395 "maplexer.l" ++#line 390 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); } + YY_BREAK + case 226: + YY_RULE_SETUP +-#line 396 "maplexer.l" ++#line 391 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TRANSPARENT); } + YY_BREAK + case 227: + YY_RULE_SETUP +-#line 397 "maplexer.l" ++#line 392 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TRANSFORM); } + YY_BREAK + case 228: + YY_RULE_SETUP +-#line 398 "maplexer.l" ++#line 393 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(TYPE); } + YY_BREAK + case 229: + YY_RULE_SETUP +-#line 399 "maplexer.l" ++#line 394 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(UNITS); } + YY_BREAK + case 230: + YY_RULE_SETUP +-#line 400 "maplexer.l" ++#line 395 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(UTFDATA); } + YY_BREAK + case 231: + YY_RULE_SETUP +-#line 401 "maplexer.l" ++#line 396 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(UTFITEM); } + YY_BREAK + case 232: + YY_RULE_SETUP +-#line 402 "maplexer.l" ++#line 397 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(VALIDATION); } + YY_BREAK + case 233: + YY_RULE_SETUP +-#line 403 "maplexer.l" ++#line 398 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(VALUES); } + YY_BREAK + case 234: + YY_RULE_SETUP +-#line 404 "maplexer.l" ++#line 399 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(WEB); } + YY_BREAK + case 235: + YY_RULE_SETUP +-#line 405 "maplexer.l" ++#line 400 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(WIDTH); } + YY_BREAK + case 236: + YY_RULE_SETUP +-#line 406 "maplexer.l" ++#line 401 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(WKT); } + YY_BREAK + case 237: + YY_RULE_SETUP +-#line 407 "maplexer.l" ++#line 402 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(WRAP); } + YY_BREAK + case 238: + YY_RULE_SETUP +-#line 409 "maplexer.l" ++#line 404 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); } + YY_BREAK + case 239: + YY_RULE_SETUP +-#line 410 "maplexer.l" ++#line 405 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_AUTO); } + YY_BREAK + case 240: + YY_RULE_SETUP +-#line 411 "maplexer.l" ++#line 406 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_AUTO2); } + YY_BREAK + case 241: + YY_RULE_SETUP +-#line 412 "maplexer.l" ++#line 407 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); } + YY_BREAK + case 242: + YY_RULE_SETUP +-#line 413 "maplexer.l" ++#line 408 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_BITMAP); } + YY_BREAK + case 243: + YY_RULE_SETUP +-#line 414 "maplexer.l" ++#line 409 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); } + YY_BREAK + case 244: + YY_RULE_SETUP +-#line 415 "maplexer.l" ++#line 410 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CC); } + YY_BREAK + case 245: + YY_RULE_SETUP +-#line 416 "maplexer.l" ++#line 411 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); } + YY_BREAK + case 246: + YY_RULE_SETUP +-#line 417 "maplexer.l" ++#line 412 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); } + YY_BREAK + case 247: + YY_RULE_SETUP +-#line 418 "maplexer.l" ++#line 413 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); } + YY_BREAK + case 248: + YY_RULE_SETUP +-#line 419 "maplexer.l" ++#line 414 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CL); } + YY_BREAK + case 249: + YY_RULE_SETUP +-#line 420 "maplexer.l" ++#line 415 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CR); } + YY_BREAK + case 250: + YY_RULE_SETUP +-#line 421 "maplexer.l" ++#line 416 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_DB_CSV); } + YY_BREAK + case 251: + YY_RULE_SETUP +-#line 422 "maplexer.l" ++#line 417 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); } + YY_BREAK + case 252: + YY_RULE_SETUP +-#line 423 "maplexer.l" ++#line 418 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); } + YY_BREAK + case 253: + YY_RULE_SETUP +-#line 424 "maplexer.l" ++#line 419 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_DEFAULT); } + YY_BREAK + case 254: + YY_RULE_SETUP +-#line 425 "maplexer.l" ++#line 420 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_DD); } + YY_BREAK + case 255: + YY_RULE_SETUP +-#line 426 "maplexer.l" ++#line 421 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); } + YY_BREAK + case 256: + YY_RULE_SETUP +-#line 427 "maplexer.l" ++#line 422 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_EMBED); } + YY_BREAK + case 257: + YY_RULE_SETUP +-#line 428 "maplexer.l" ++#line 423 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_FALSE); } + YY_BREAK + case 258: + YY_RULE_SETUP +-#line 429 "maplexer.l" ++#line 424 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_FEET); } + YY_BREAK + case 259: + YY_RULE_SETUP +-#line 430 "maplexer.l" ++#line 425 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_FOLLOW); } + YY_BREAK + case 260: + YY_RULE_SETUP +-#line 431 "maplexer.l" ++#line 426 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_GIANT); } + YY_BREAK + case 261: + YY_RULE_SETUP +-#line 432 "maplexer.l" ++#line 427 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); } + YY_BREAK + case 262: + YY_RULE_SETUP +-#line 433 "maplexer.l" ++#line 428 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_KERNELDENSITY); } + YY_BREAK + case 263: + YY_RULE_SETUP +-#line 434 "maplexer.l" ++#line 429 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_IDW); } + YY_BREAK + case 264: + YY_RULE_SETUP +-#line 435 "maplexer.l" ++#line 430 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_HILITE); } + YY_BREAK + case 265: + YY_RULE_SETUP +-#line 436 "maplexer.l" ++#line 431 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_INCHES); } + YY_BREAK + case 266: + YY_RULE_SETUP +-#line 437 "maplexer.l" ++#line 432 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); } + YY_BREAK + case 267: + YY_RULE_SETUP +-#line 438 "maplexer.l" ++#line 433 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LARGE); } + YY_BREAK + case 268: + YY_RULE_SETUP +-#line 439 "maplexer.l" ++#line 434 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LC); } + YY_BREAK + case 269: + YY_RULE_SETUP +-#line 440 "maplexer.l" ++#line 435 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); } + YY_BREAK + case 270: + YY_RULE_SETUP +-#line 441 "maplexer.l" ++#line 436 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); } + YY_BREAK + case 271: + YY_RULE_SETUP +-#line 442 "maplexer.l" ++#line 437 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LL); } + YY_BREAK + case 272: + YY_RULE_SETUP +-#line 443 "maplexer.l" ++#line 438 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LR); } + YY_BREAK + case 273: + YY_RULE_SETUP +-#line 444 "maplexer.l" ++#line 439 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_MEDIUM); } + YY_BREAK + case 274: + YY_RULE_SETUP +-#line 445 "maplexer.l" ++#line 440 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_METERS); } + YY_BREAK + case 275: + YY_RULE_SETUP +-#line 446 "maplexer.l" ++#line 441 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); } + YY_BREAK + case 276: + YY_RULE_SETUP +-#line 447 "maplexer.l" ++#line 442 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_MILES); } + YY_BREAK + case 277: + YY_RULE_SETUP +-#line 448 "maplexer.l" ++#line 443 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); } + YY_BREAK + case 278: + YY_RULE_SETUP +-#line 449 "maplexer.l" ++#line 444 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); } + YY_BREAK + case 279: + YY_RULE_SETUP +-#line 450 "maplexer.l" ++#line 445 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); } + YY_BREAK + case 280: + YY_RULE_SETUP +-#line 451 "maplexer.l" ++#line 446 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_NORMAL); } + YY_BREAK + case 281: + YY_RULE_SETUP +-#line 452 "maplexer.l" ++#line 447 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_OFF); } + YY_BREAK + case 282: + YY_RULE_SETUP +-#line 453 "maplexer.l" ++#line 448 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_OGR); } + YY_BREAK + case 283: + YY_RULE_SETUP +-#line 454 "maplexer.l" ++#line 449 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_FLATGEOBUF); } + YY_BREAK + case 284: + YY_RULE_SETUP +-#line 455 "maplexer.l" ++#line 450 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_ON); } + YY_BREAK + case 285: + YY_RULE_SETUP +-#line 456 "maplexer.l" ++#line 451 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); } + YY_BREAK + case 286: + YY_RULE_SETUP +-#line 457 "maplexer.l" ++#line 452 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); } + YY_BREAK + case 287: + YY_RULE_SETUP +-#line 458 "maplexer.l" ++#line 453 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); } + YY_BREAK + case 288: + YY_RULE_SETUP +-#line 459 "maplexer.l" ++#line 454 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); } + YY_BREAK + case 289: + YY_RULE_SETUP +-#line 460 "maplexer.l" ++#line 455 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); } + YY_BREAK + case 290: + YY_RULE_SETUP +-#line 461 "maplexer.l" ++#line 456 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_PIXELS); } + YY_BREAK + case 291: + YY_RULE_SETUP +-#line 462 "maplexer.l" ++#line 457 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); } + YY_BREAK + case 292: + YY_RULE_SETUP +-#line 463 "maplexer.l" ++#line 458 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); } + YY_BREAK + case 293: + YY_RULE_SETUP +-#line 464 "maplexer.l" ++#line 459 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_POSTGIS); } + YY_BREAK + case 294: + YY_RULE_SETUP +-#line 465 "maplexer.l" ++#line 460 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_PLUGIN); } + YY_BREAK + case 295: + YY_RULE_SETUP +-#line 466 "maplexer.l" ++#line 461 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); } + YY_BREAK + case 296: + YY_RULE_SETUP +-#line 467 "maplexer.l" ++#line 462 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); } + YY_BREAK + case 297: + YY_RULE_SETUP +-#line 468 "maplexer.l" ++#line 463 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); } + YY_BREAK + case 298: + YY_RULE_SETUP +-#line 469 "maplexer.l" ++#line 464 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); } + YY_BREAK + case 299: + YY_RULE_SETUP +-#line 470 "maplexer.l" ++#line 465 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SELECTED); } + YY_BREAK + case 300: + YY_RULE_SETUP +-#line 471 "maplexer.l" ++#line 466 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); } + YY_BREAK + case 301: + YY_RULE_SETUP +-#line 472 "maplexer.l" ++#line 467 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SINGLE); } + YY_BREAK + case 302: + YY_RULE_SETUP +-#line 473 "maplexer.l" ++#line 468 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SMALL); } + YY_BREAK + case 303: + YY_RULE_SETUP +-#line 474 "maplexer.l" ++#line 469 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); } + YY_BREAK + case 304: + YY_RULE_SETUP +-#line 475 "maplexer.l" ++#line 470 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); } + YY_BREAK + case 305: + YY_RULE_SETUP +-#line 476 "maplexer.l" ++#line 471 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(POLAROFFSET); } + YY_BREAK + case 306: + YY_RULE_SETUP +-#line 477 "maplexer.l" ++#line 472 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TINY); } + YY_BREAK + case 307: + YY_RULE_SETUP +-#line 478 "maplexer.l" ++#line 473 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); } + YY_BREAK + case 308: + YY_RULE_SETUP +-#line 479 "maplexer.l" ++#line 474 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TRUE); } + YY_BREAK + case 309: + YY_RULE_SETUP +-#line 480 "maplexer.l" ++#line 475 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); } + YY_BREAK + case 310: + YY_RULE_SETUP +-#line 481 "maplexer.l" ++#line 476 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_UC); } + YY_BREAK + case 311: + YY_RULE_SETUP +-#line 482 "maplexer.l" ++#line 477 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_UL); } + YY_BREAK + case 312: + YY_RULE_SETUP +-#line 483 "maplexer.l" ++#line 478 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_UR); } + YY_BREAK + case 313: + YY_RULE_SETUP +-#line 484 "maplexer.l" ++#line 479 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_UNION); } + YY_BREAK + case 314: + YY_RULE_SETUP +-#line 485 "maplexer.l" ++#line 480 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_UVRASTER); } + YY_BREAK + case 315: + YY_RULE_SETUP +-#line 486 "maplexer.l" ++#line 481 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_CONTOUR); } + YY_BREAK + case 316: + YY_RULE_SETUP +-#line 487 "maplexer.l" ++#line 482 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); } + YY_BREAK + case 317: + YY_RULE_SETUP +-#line 488 "maplexer.l" ++#line 483 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_WFS); } + YY_BREAK + case 318: + YY_RULE_SETUP +-#line 489 "maplexer.l" ++#line 484 "maplexer.l" + { MS_LEXER_RETURN_TOKEN(MS_WMS); } + YY_BREAK + case 319: + /* rule 319 can match eol */ + YY_RULE_SETUP +-#line 491 "maplexer.l" ++#line 486 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + return(MS_BINDING); + } + YY_BREAK + case 320: + YY_RULE_SETUP +-#line 500 "maplexer.l" ++#line 495 "maplexer.l" + { + /* attribute binding - shape (fixed value) */ + return(MS_TOKEN_BINDING_SHAPE); +@@ -4202,7 +4193,7 @@ YY_RULE_SETUP + YY_BREAK + case 321: + YY_RULE_SETUP +-#line 504 "maplexer.l" ++#line 499 "maplexer.l" + { + /* attribute binding - map cellsize */ + return(MS_TOKEN_BINDING_MAP_CELLSIZE); +@@ -4210,7 +4201,7 @@ YY_RULE_SETUP + YY_BREAK + case 322: + YY_RULE_SETUP +-#line 508 "maplexer.l" ++#line 503 "maplexer.l" + { + /* attribute binding - data cellsize */ + return(MS_TOKEN_BINDING_DATA_CELLSIZE); +@@ -4219,51 +4210,53 @@ YY_RULE_SETUP + case 323: + /* rule 323 can match eol */ + YY_RULE_SETUP +-#line 512 "maplexer.l" ++#line 507 "maplexer.l" + { + /* attribute binding - numeric (no quotes) */ + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); ++ msStringUnescape(msyystring_buffer, ']'); + return(MS_TOKEN_BINDING_DOUBLE); + } + YY_BREAK + case 324: + /* rule 324 can match eol */ + YY_RULE_SETUP +-#line 521 "maplexer.l" ++#line 517 "maplexer.l" + { + /* attribute binding - string (single or double quotes) */ +- msyytext+=2; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); +- strcpy(msyystring_buffer, msyytext); ++ msyytext[msyyleng-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); ++ strcpy(msyystring_buffer, msyytext + 2); ++ msStringUnescape(msyystring_buffer, msyytext[0]); + return(MS_TOKEN_BINDING_STRING); + } + YY_BREAK + case 325: + /* rule 325 can match eol */ + YY_RULE_SETUP +-#line 530 "maplexer.l" ++#line 526 "maplexer.l" + { + /* attribute binding - time */ + msyytext+=2; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-2-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); ++ msStringUnescape(msyystring_buffer, '`'); + return(MS_TOKEN_BINDING_TIME); + } + YY_BREAK + case 326: + YY_RULE_SETUP +-#line 540 "maplexer.l" ++#line 537 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); + return(MS_NUMBER); +@@ -4271,10 +4264,10 @@ YY_RULE_SETUP + YY_BREAK + case 327: + YY_RULE_SETUP +-#line 548 "maplexer.l" ++#line 545 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer,msyytext); + msyynumber = atof(msyytext); + return(MS_TOKEN_LITERAL_NUMBER); +@@ -4283,12 +4276,12 @@ YY_RULE_SETUP + case 328: + /* rule 328 can match eol */ + YY_RULE_SETUP +-#line 556 "maplexer.l" ++#line 553 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_TOKEN_LITERAL_TIME); + } +@@ -4296,12 +4289,12 @@ YY_RULE_SETUP + case 329: + /* rule 329 can match eol */ + YY_RULE_SETUP +-#line 565 "maplexer.l" ++#line 562 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-2] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-2] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_IREGEX); + } +@@ -4309,64 +4302,59 @@ YY_RULE_SETUP + case 330: + /* rule 330 can match eol */ + YY_RULE_SETUP +-#line 574 "maplexer.l" ++#line 571 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_REGEX); + } + YY_BREAK + case 331: + YY_RULE_SETUP +-#line 583 "maplexer.l" ++#line 580 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_EXPRESSION); + } + YY_BREAK + case 332: + YY_RULE_SETUP +-#line 592 "maplexer.l" ++#line 589 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ msyytext[msyyleng-1-1] = '\0'; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_LIST); + } + YY_BREAK + case 333: + YY_RULE_SETUP +-#line 601 "maplexer.l" ++#line 598 "maplexer.l" + { + msyystring_return_state = MS_STRING; + msyystring_begin = msyytext[0]; + msyystring_size = 0; +- msyystring_buffer_ptr = msyystring_buffer; ++ msyystring_buffer[0] = '\0'; + BEGIN(MSSTRING); + } + YY_BREAK + case 334: + YY_RULE_SETUP +-#line 609 "maplexer.l" ++#line 606 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); + if (msyystring_begin == msyytext[0]) { + BEGIN(msyystring_begin_state); +- +- *msyystring_buffer_ptr = '\0'; +- + if (msyystring_return_state == MS_STRING) { +- if (msyystring_icase && strlen(msyytext)==2) { ++ if (msyystring_icase && msyyleng==2) { + msyystring_icase = MS_FALSE; // reset + return MS_ISTRING; + } else +@@ -4376,62 +4364,58 @@ YY_RULE_SETUP + + } + else { +- ++msyystring_size; +- *msyystring_buffer_ptr++ = *msyytext; +- if (strlen(msyytext)==2) { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- ++msyystring_size; +- *msyystring_buffer_ptr++ = msyytext[1]; ++ int old_size = msyystring_size; ++ msyystring_size += (msyyleng==2) ? 2 : 1; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ msyystring_buffer[old_size] = *msyytext; ++ if (msyyleng==2) { ++ msyystring_buffer[old_size+1] = msyytext[1]; + } ++ msyystring_buffer[msyystring_size] = '\0'; + } + } + YY_BREAK + case 335: + YY_RULE_SETUP +-#line 639 "maplexer.l" ++#line 632 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- + ++msyystring_size; +- if (strlen(msyytext) == 2) +- *msyystring_buffer_ptr++ = msyytext[1]; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ ++ if (msyyleng == 2) ++ msyystring_buffer[msyystring_size-1] = msyytext[1]; + else +- *msyystring_buffer_ptr++ = msyytext[0]; ++ msyystring_buffer[msyystring_size-1] = msyytext[0]; ++ msyystring_buffer[msyystring_size] = '\0'; + } + YY_BREAK + case 336: + /* rule 336 can match eol */ + YY_RULE_SETUP +-#line 650 "maplexer.l" ++#line 644 "maplexer.l" + { +- char *yptr = msyytext; +- while ( *yptr ) { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, +- msyystring_buffer_size, msyystring_buffer_ptr); +- ++msyystring_size; +- *msyystring_buffer_ptr++ = *yptr++; +- } ++ int old_size = msyystring_size; ++ msyystring_size += msyyleng; ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, ++ msyystring_buffer_size); ++ memcpy(msyystring_buffer + old_size, msyytext, msyyleng + 1); + } + YY_BREAK + case 337: + /* rule 337 can match eol */ + YY_RULE_SETUP +-#line 660 "maplexer.l" ++#line 652 "maplexer.l" + { + msyytext++; +- msyytext[strlen(msyytext)-1] = '\0'; ++ msyytext[msyyleng-1-1] = '\0'; + + if(include_stack_ptr >= MAX_INCLUDE_DEPTH) { + msSetError(MS_IOERR, "Includes nested to deeply.", "msyylex()"); + return(-1); + } + +- include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; /* save state */ +- include_lineno[include_stack_ptr] = msyylineno; +- include_stack_ptr++; +- + msyyin = fopen(msBuildPath(path, msyybasepath, msyytext), "r"); + if(!msyyin) { + msSetError(MS_IOERR, "Error opening included file \"%s\".", "msyylex()", msyytext); +@@ -4439,6 +4423,10 @@ YY_RULE_SETUP + return(-1); + } + ++ include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; /* save state */ ++ include_lineno[include_stack_ptr] = msyylineno; ++ include_stack_ptr++; ++ + msyy_switch_to_buffer( msyy_create_buffer(msyyin, YY_BUF_SIZE) ); + msyylineno = 1; + +@@ -4447,21 +4435,21 @@ YY_RULE_SETUP + YY_BREAK + case 338: + YY_RULE_SETUP +-#line 686 "maplexer.l" ++#line 678 "maplexer.l" + { + msyystring_return_state = MS_TOKEN_LITERAL_STRING; + msyystring_begin = msyytext[0]; + msyystring_size = 0; +- msyystring_buffer_ptr = msyystring_buffer; ++ msyystring_buffer[0] = '\0'; + BEGIN(MSSTRING); + } + YY_BREAK + case 339: + YY_RULE_SETUP +-#line 694 "maplexer.l" ++#line 686 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(MS_STRING); + } +@@ -4469,12 +4457,12 @@ YY_RULE_SETUP + case 340: + /* rule 340 can match eol */ + YY_RULE_SETUP +-#line 701 "maplexer.l" ++#line 693 "maplexer.l" + { msyylineno++; } + YY_BREAK + case YY_STATE_EOF(INITIAL): + case YY_STATE_EOF(CONFIG_FILE): +-#line 703 "maplexer.l" ++#line 695 "maplexer.l" + { + if( --include_stack_ptr < 0 ) + return(EOF); /* end of main file */ +@@ -4489,32 +4477,32 @@ case YY_STATE_EOF(CONFIG_FILE): + case 341: + /* rule 341 can match eol */ + YY_RULE_SETUP +-#line 714 "maplexer.l" ++#line 706 "maplexer.l" + { + return(0); + } + YY_BREAK + case 342: + YY_RULE_SETUP +-#line 718 "maplexer.l" ++#line 710 "maplexer.l" + { +- MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), +- msyystring_buffer_size, msyystring_buffer_ptr); ++ MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, ++ msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); + return(0); + } + YY_BREAK + case 343: + YY_RULE_SETUP +-#line 724 "maplexer.l" ++#line 716 "maplexer.l" + { return(msyytext[0]); } + YY_BREAK + case 344: + YY_RULE_SETUP +-#line 725 "maplexer.l" ++#line 717 "maplexer.l" + ECHO; + YY_BREAK +-#line 4518 "/home/bjorn/code/MapServer/maplexer.c" ++#line 4506 "/build/reproducible-path/mapserver-8.0.0/maplexer.c" + case YY_STATE_EOF(EXPRESSION_STRING): + case YY_STATE_EOF(INCLUDE): + case YY_STATE_EOF(MSSTRING): +@@ -4815,7 +4803,7 @@ static int yy_get_next_buffer (void) + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 1732 ) ++ if ( yy_current_state >= 1740 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; +@@ -4843,11 +4831,11 @@ static int yy_get_next_buffer (void) + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 1732 ) ++ if ( yy_current_state >= 1740 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; +- yy_is_jam = (yy_current_state == 1731); ++ yy_is_jam = (yy_current_state == 1739); + + return yy_is_jam ? 0 : yy_current_state; + } +@@ -5523,7 +5511,7 @@ void yyfree (void * ptr ) + + #define YYTABLES_NAME "yytables" + +-#line 725 "maplexer.l" ++#line 717 "maplexer.l" + + + /* diff -Nru mapserver-8.0.0/debian/patches/CVE-2025-59431.patch mapserver-8.0.0/debian/patches/CVE-2025-59431.patch --- mapserver-8.0.0/debian/patches/CVE-2025-59431.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/CVE-2025-59431.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,255 @@ +From: Even Rouault +Date: Thu, 18 Sep 2025 20:22:23 +0200 +Subject: Add missing column name escaping in FLTGetCommonExpression() + +and use msLayerEscapePropertyName() insead of msOGRGetQuotedItem() in +OGR backend + +Origin: https://github.com/MapServer/MapServer/commit/1c73acaa2d7a8b1d3955f076186e57fc8c06e0c6 +Bug: https://github.com/MapServer/MapServer/security/advisories/GHSA-256m-rx4h-r55w +Bug: https://github.com/MapServer/MapServer/pull/7349 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2025-59431 +--- + maplexer.l | 14 ++++++++------ + mapogcfiltercommon.cpp | 27 ++++++++++++++++++++++----- + mapogr.cpp | 25 ++++++++++++++----------- + mapserver.h | 1 + + mapstring.cpp | 21 +++++++++++++++++++++ + 5 files changed, 66 insertions(+), 22 deletions(-) + +diff --git a/maplexer.l b/maplexer.l +index bc37858..3653fea 100644 +--- a/maplexer.l ++++ b/maplexer.l +@@ -503,31 +503,33 @@ char path[MS_MAXPATHLEN]; + /* attribute binding - data cellsize */ + return(MS_TOKEN_BINDING_DATA_CELLSIZE); + } +-\[[^\]]*\] { ++\[(?:\]\]|[^\]])*\] { + /* attribute binding - numeric (no quotes) */ + msyytext++; + msyytext[msyyleng-1-1] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); ++ msStringUnescape(msyystring_buffer, ']'); + return(MS_TOKEN_BINDING_DOUBLE); + } +-\"\[[^\"]*\]\"|\'\[[^\']*\]\' { ++\"\[(?:\"\"|[^\"])*\]\"|\'\[(?:\'\'|[^\'])*\]\' { + /* attribute binding - string (single or double quotes) */ +- msyytext+=2; +- msyytext[msyyleng-2-2] = '\0'; ++ msyytext[msyyleng-2] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); +- strcpy(msyystring_buffer, msyytext); ++ strcpy(msyystring_buffer, msyytext + 2); ++ msStringUnescape(msyystring_buffer, msyytext[0]); + return(MS_TOKEN_BINDING_STRING); + } +-\`\[[^\`]*\]\` { ++\`\[(?:\`\`|[^\`])*\]\` { + /* attribute binding - time */ + msyytext+=2; + msyytext[msyyleng-2-2] = '\0'; + MS_LEXER_STRING_REALLOC(msyystring_buffer, msyyleng, + msyystring_buffer_size); + strcpy(msyystring_buffer, msyytext); ++ msStringUnescape(msyystring_buffer, '`'); + return(MS_TOKEN_BINDING_TIME); + } + +diff --git a/mapogcfiltercommon.cpp b/mapogcfiltercommon.cpp +index f73d47b..c85ab8d 100644 +--- a/mapogcfiltercommon.cpp ++++ b/mapogcfiltercommon.cpp +@@ -34,6 +34,20 @@ + + #include + ++static std::string FLTEscapePropertyName(const char *pszStr, ++ char chEscapeChar) { ++ std::string ret; ++ for (; *pszStr; ++pszStr) { ++ if (*pszStr == chEscapeChar) { ++ ret += chEscapeChar; ++ ret += chEscapeChar; ++ } else { ++ ret += *pszStr; ++ } ++ } ++ return ret; ++} ++ + static std::string FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode) + { + /* From http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04 */ +@@ -58,7 +72,7 @@ static std::string FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *ps + std::string expr("(\"["); + + /* attribute */ +- expr += psFilterNode->psLeftNode->pszValue; ++ expr += FLTEscapePropertyName(psFilterNode->psLeftNode->pszValue, '"'); + + /* #3521 */ + if (bCaseInsensitive ) +@@ -171,7 +185,8 @@ static std::string FLTGetIsBetweenComparisonCommonExpresssion(FilterEncodingNode + else + expr += "(["; + +- expr += psFilterNode->psLeftNode->pszValue; ++ expr += FLTEscapePropertyName(psFilterNode->psLeftNode->pszValue, ++ bString ? '"' : ']'); + + if (bString) + expr += "]\" "; +@@ -264,7 +279,9 @@ std::string FLTGetBinaryComparisonCommonExpression(FilterEncodingNode *psFilterN + expr = "(\"["; + else + expr = "(["; +- expr += psFilterNode->psLeftNode->pszValue; ++ ++ expr += FLTEscapePropertyName(psFilterNode->psLeftNode->pszValue, ++ bString ? '"' : ']'); + + if (bString) + expr += "]\" "; +@@ -542,13 +559,13 @@ static std::string FLTGetFeatureIdCommonExpression(FilterEncodingNode *psFilterN + + if (bString) { + expr += "(\"["; +- expr += pszAttribute; ++ expr += FLTEscapePropertyName(pszAttribute, '"'); + expr += "]\" == \""; + expr += pszId; + expr += "\")"; + } else { + expr += "(["; +- expr += pszAttribute; ++ expr += FLTEscapePropertyName(pszAttribute, ']'); + expr += "] == "; + expr += pszId; + expr += ")"; +diff --git a/mapogr.cpp b/mapogr.cpp +index 1b66219..e7b7833 100644 +--- a/mapogr.cpp ++++ b/mapogr.cpp +@@ -2042,7 +2042,7 @@ char *msOGRGetToken(layerObj* layer, tokenListNodeObjPtr *node) { + break; + } + case MS_TOKEN_BINDING_INTEGER: { +- char *stresc = msOGRGetQuotedItem(layer, n->tokenval.bindval.item); ++ char *stresc = msLayerEscapePropertyName(layer, n->tokenval.bindval.item); + nOutSize = strlen(stresc)+ 20; + out = (char *)msSmallMalloc(nOutSize); + +@@ -2056,17 +2056,17 @@ char *msOGRGetToken(layerObj* layer, tokenListNodeObjPtr *node) { + EQUAL(type, "Long") || + EQUAL(type, "Real")) ) + { +- snprintf(out, nOutSize, "%s", stresc); ++ snprintf(out, nOutSize, "\"%s\"", stresc); + } + else + { +- snprintf(out, nOutSize, "CAST(%s AS integer)", stresc); ++ snprintf(out, nOutSize, "CAST(\"%s\" AS integer)", stresc); + } + msFree(stresc); + break; + } + case MS_TOKEN_BINDING_STRING: { +- char *stresc = msOGRGetQuotedItem(layer, n->tokenval.bindval.item); ++ char *stresc = msLayerEscapePropertyName(layer, n->tokenval.bindval.item); + nOutSize = strlen(stresc) + 30; + out = (char *)msSmallMalloc(nOutSize); + +@@ -2078,26 +2078,26 @@ char *msOGRGetToken(layerObj* layer, tokenListNodeObjPtr *node) { + // prevent using database indexes, such as for SQlite + if( type != NULL && EQUAL(type, "Character") ) + { +- snprintf(out, nOutSize, "%s", stresc); ++ snprintf(out, nOutSize, "\"%s\"", stresc); + } + else + { +- snprintf(out, nOutSize, "CAST(%s AS text)", stresc); ++ snprintf(out, nOutSize, "CAST(\"%s\" AS text)", stresc); + } + msFree(stresc); + break; + } + case MS_TOKEN_BINDING_TIME: { + // won't get here unless col is parsed as time and they are not +- char *stresc = msOGRGetQuotedItem(layer, n->tokenval.bindval.item); ++ char *stresc = msLayerEscapePropertyName(layer, n->tokenval.bindval.item); + nOutSize = strlen(stresc)+ 10; + out = (char *)msSmallMalloc(nOutSize); +- snprintf(out, nOutSize, "%s", stresc); ++ snprintf(out, nOutSize, "\"%s\"", stresc); + msFree(stresc); + break; + } + case MS_TOKEN_BINDING_SHAPE: { +- char *stresc = msOGRGetQuotedItem(layer, OGR_L_GetGeometryColumn(info->hLayer)); // which geom field?? ++ char *stresc = msLayerEscapePropertyName(layer, OGR_L_GetGeometryColumn(info->hLayer)); // which geom field?? + nOutSize = strlen(stresc)+ 10; + out = (char *)msSmallMalloc(nOutSize); + snprintf(out, nOutSize, "%s", stresc); +@@ -3783,8 +3783,11 @@ static std::string msOGRTranslatePartialInternal(layerObj* layer, + case MS_TOKEN_BINDING_STRING: + case MS_TOKEN_BINDING_TIME: + { +- char* pszTmp = msOGRGetQuotedItem(layer, expr->m_osVal.c_str()); +- std::string osRet(pszTmp); ++ char *pszTmp = msLayerEscapePropertyName(layer, expr->m_osVal.c_str()); ++ std::string osRet; ++ osRet += '"'; ++ osRet += pszTmp; ++ osRet += '"'; + msFree(pszTmp); + return osRet; + } +diff --git a/mapserver.h b/mapserver.h +index e811735..6c2dde7 100755 +--- a/mapserver.h ++++ b/mapserver.h +@@ -2358,6 +2358,7 @@ void msPopulateTextSymbolForLabelAndString(textSymbolObj *ts, labelObj *l, char + MS_DLL_EXPORT int msUTF8ToUniChar(const char *str, unsigned int *chPtr); /* maptclutf.c */ + MS_DLL_EXPORT char* msStringEscape( const char * pszString ); + MS_DLL_EXPORT int msStringInArray( const char * pszString, char **array, int numelements); ++ void msStringUnescape(char *pszString, char chEscapeChar); + + typedef struct msStringBuffer msStringBuffer; + MS_DLL_EXPORT msStringBuffer* msStringBufferAlloc(void); +diff --git a/mapstring.cpp b/mapstring.cpp +index 64a7ca8..f4d339a 100644 +--- a/mapstring.cpp ++++ b/mapstring.cpp +@@ -2509,3 +2509,24 @@ int msStringBufferAppend(msStringBuffer* sb, const char* pszAppendedString) + sb->length += nAppendLen; + return MS_SUCCESS; + } ++ ++/************************************************************************/ ++/* msStringUnescape() */ ++/************************************************************************/ ++ ++/** Modify in place pszString such that a sequence of two consecutive ++ * chEscapeChar is replaced by a single one. ++ * Does the reverse of FLTEscapePropertyName() ++ */ ++void msStringUnescape(char *pszString, char chEscapeChar) { ++ char *pszDest = pszString; ++ for (; *pszString; ++pszString, ++pszDest) { ++ if (pszString[0] == chEscapeChar && pszString[1] == chEscapeChar) { ++ *pszDest = chEscapeChar; ++ ++pszString; ++ } else { ++ *pszDest = *pszString; ++ } ++ } ++ *pszDest = 0; ++} diff -Nru mapserver-8.0.0/debian/patches/CVE-2026-33721.patch mapserver-8.0.0/debian/patches/CVE-2026-33721.patch --- mapserver-8.0.0/debian/patches/CVE-2026-33721.patch 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/patches/CVE-2026-33721.patch 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,29 @@ +From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> +Date: Mon, 23 Mar 2026 12:30:09 -0300 +Subject: msSLDParseRasterSymbolizer(): fix potential heap buffer overflow + +Credits to Trail of Bits and Anthropic for reporting and patch +suggestion + +Co-authored-by: Even Rouault +Origin: https://github.com/MapServer/MapServer/commit/fb08dad4afee081b81c57ca0c5d37c149e7755f9 +Bug: https://github.com/MapServer/MapServer/security/advisories/GHSA-cv4m-mr84-fgjp +Bug: https://github.com/MapServer/MapServer/pull/7461 +Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2026-33721 +--- + mapogcsld.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mapogcsld.c b/mapogcsld.c +index bbf2187..8826ca0 100644 +--- a/mapogcsld.c ++++ b/mapogcsld.c +@@ -2893,7 +2893,7 @@ int msSLDParseRasterSymbolizer(CPLXMLNode *psRoot, layerObj *psLayer, + } else if (strcasecmp(psNode->pszValue, "Threshold") == 0) { + papszThresholds[nThresholds] = psNode->psChild->pszValue; + nThresholds++; +- if (nValues == nMaxThreshold) { ++ if (nThresholds == nMaxThreshold) { + nMaxThreshold += 100; + papszThresholds = (char **)msSmallRealloc(papszThresholds, sizeof(char*)*nMaxThreshold); + } diff -Nru mapserver-8.0.0/debian/patches/series mapserver-8.0.0/debian/patches/series --- mapserver-8.0.0/debian/patches/series 2022-11-03 18:47:05.000000000 +0000 +++ mapserver-8.0.0/debian/patches/series 2026-04-17 14:43:37.000000000 +0000 @@ -2,3 +2,9 @@ java-hardening.patch interpreter-path.path setuptools.patch +0005-maplexer.l-avoid-non-null-terminated-msyystring_buff.patch +0006-maplexer.l-fix-heap-buffer-overflow-issues-with-NUL-.patch +0007-mapfile-parser-fix-double-free-when-included-file-do.patch +CVE-2025-59431.patch +CVE-2026-33721.patch +9999-Update-maplexer.c.patch diff -Nru mapserver-8.0.0/debian/salsa-ci.yml mapserver-8.0.0/debian/salsa-ci.yml --- mapserver-8.0.0/debian/salsa-ci.yml 1970-01-01 00:00:00.000000000 +0000 +++ mapserver-8.0.0/debian/salsa-ci.yml 2026-04-17 14:43:37.000000000 +0000 @@ -0,0 +1,9 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml + +variables: + RELEASE: 'bookworm' + SALSA_CI_DISABLE_LINTIAN: 1 + SALSA_CI_DISABLE_REPROTEST: 1 + SALSA_CI_DISABLE_BLHC: 1