diff options
author | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2018-06-26 02:37:10 +0000 |
---|---|---|
committer | Hironobu Yamashita <h.y.acetaminophen@gmail.com> | 2018-06-26 02:37:10 +0000 |
commit | d20548087f4b3f821726e5ea2ae506b134fcbdfe (patch) | |
tree | 27be02e71d8e0d3f43ae3a24054c6b4f751a95ec /Build | |
parent | 9f9d4524eb411625a4fe3a0d6a0162a798be6cfb (diff) |
opendetex-2.8.3
git-svn-id: svn://tug.org/texlive/trunk@48092 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
33 files changed, 2257 insertions, 8852 deletions
diff --git a/Build/source/texk/README b/Build/source/texk/README index 2bb8978251c..b6ade7b15a0 100644 --- a/Build/source/texk/README +++ b/Build/source/texk/README @@ -34,8 +34,9 @@ chktex 1.7.6 - checked 15sep16 cjkutils 4.8.4 - checked 18apr15 http://cjk.ffii.org/cjk-4.8.4.tar.gz -detex 2.8 - checked 10may12 - http://www.cs.purdue.edu/homes/trinkle/detex/ +detex 2.8.3 - checked 20jun18 + https://github.com/pkubowicz/opendetex + old info: http://www.cs.purdue.edu/homes/trinkle/detex/ dtl - ? diff --git a/Build/source/texk/detex/ChangeLog b/Build/source/texk/detex/ChangeLog index 796e3481bad..adc9e138b2b 100644 --- a/Build/source/texk/detex/ChangeLog +++ b/Build/source/texk/detex/ChangeLog @@ -1,3 +1,8 @@ +2018-06-20 Hironobu Yamashita <h.y.acetaminophen@gmail.com> + + * Import opendetex-2.8.3, TLpatches adapted. + * test.lout, test.tout: adjusted. + 2016-02-23 Akira Kakuto <kakuto@fuk.kindai.ac.jp> * Makefile.am, configure.ac: New convention. diff --git a/Build/source/texk/detex/TLpatches/ChangeLog b/Build/source/texk/detex/TLpatches/ChangeLog index 40a038a6f51..882556a27e2 100644 --- a/Build/source/texk/detex/TLpatches/ChangeLog +++ b/Build/source/texk/detex/TLpatches/ChangeLog @@ -1,3 +1,13 @@ +2018-06-20 Hironobu Yamashita <h.y.acetaminophen@gmail.com> + + Adapt to opendetex-2.8.3. + * patch-04-kpathsea: update. + * patch-01-ANSI-C, patch-03-warnings, patch-05-kern-and-glue, + patch-06-never-interactive, patch-07-rename, patch-08-kpathsea, + patch-09-binary, patch-10-ANSI-strings, patch-11-c_auto_h, + patch-12-typo: removed. + * patch-13-typo-minipage (new): Fix a typo. + 2014-08-20 Peter Breitenlohner <peb@mppmu.mpg.de> * patch-12-typo (new): Fix a typo. diff --git a/Build/source/texk/detex/TLpatches/TL-Changes b/Build/source/texk/detex/TLpatches/TL-Changes index bc7475d4644..5c561ecbf20 100644 --- a/Build/source/texk/detex/TLpatches/TL-Changes +++ b/Build/source/texk/detex/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the detex-2.8 tree as obtained from: - http://www.cs.purdue.edu/homes/trinkle/detex/ +Changes applied to the opendetex-2.8.3 tree as obtained from: + https://github.com/pkubowicz/opendetex/releases Renamed: detex.1l -> detex.man diff --git a/Build/source/texk/detex/TLpatches/patch-01-ANSI-C b/Build/source/texk/detex/TLpatches/patch-01-ANSI-C deleted file mode 100644 index 22b9b553f9c..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-01-ANSI-C +++ /dev/null @@ -1,228 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2008-02-01 20:55:51.000000000 +0100 -+++ detex-2.8/detex.l 2010-06-11 23:12:06.648394135 +0200 -@@ -72,12 +72,26 @@ - #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 - #define CITE(x) if (fLatex && !fCite) KILLARGS(x) - --char *SafeMalloc(); -+void AddInclude(char *sbFile); -+void ErrorExit(char *sb1); -+void IncludeFile(char *sbFile); -+void InputFile(char *sbFile); -+void SetEnvIgnore(char *sbEnvList); -+void SetInputPaths(void); -+void Warning(char *sb1, char *sb2); -+int BeginEnv(char *sbEnv); -+int EndEnv(char *sbEnv); -+int InList(char *sbFile); -+int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); -+FILE *TexOpen(char *sbFile); -+char *SafeMalloc(int cch, char *sbMessage); -+char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); - #endif - #ifdef OS2 - void yyless(int); -+void OS2UsageExit(void); - #endif - - char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ -@@ -368,12 +382,10 @@ - ** If no input files are specified on the command line, process stdin. - ******/ - --main(cArgs,rgsbArgs) --int cArgs; --char *rgsbArgs[]; -+int -+main(int cArgs, char *rgsbArgs[]) - { - char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2]; -- FILE *TexOpen(); - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -@@ -477,7 +489,8 @@ - ** return the termination signal for lex. - ******/ - --yywrap() -+int -+yywrap(void) - { - (void)fclose(yyin); - #ifdef FLEX_SCANNER -@@ -501,8 +514,8 @@ - ** a yyless routine - ******/ - --void yyless(n) --int n; -+void -+yyless(int n) - { - int i = strlen(yytext); - -@@ -516,8 +529,8 @@ - ** sbEnvList. - ******/ - --SetEnvIgnore(sbEnvList) --char *sbEnvList; -+void -+SetEnvIgnore(char *sbEnvList) - { - char *sb; - -@@ -533,8 +546,8 @@ - ** is, sbCurrentEnv is set to sbEnv. - ******/ - --BeginEnv(sbEnv) --char *sbEnv; -+int -+BeginEnv(char *sbEnv) - { - int i; - -@@ -551,8 +564,8 @@ - ** EndEnv -- checks to see if sbEnv is the current environment being ignored. - ******/ - --EndEnv(sbEnv) --char *sbEnv; -+int -+EndEnv(char *sbEnv) - { - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) -@@ -565,11 +578,9 @@ - ** the sbFile is ignored. - ******/ - --InputFile(sbFile) --char *sbFile; -+void -+InputFile(char *sbFile) - { -- FILE *TexOpen(); -- - if (!fFollow) - return; - rgfp[cfp++] = yyin; -@@ -589,11 +600,9 @@ - ** and open sbFile. If the open fails, the sbFile is ignored. - ******/ - --IncludeFile(sbFile) --char *sbFile; -+void -+IncludeFile(char *sbFile) - { -- FILE *TexOpen(); -- - if (!fFollow) - return; - if (!InList(sbFile)) -@@ -615,8 +624,8 @@ - ** If the include list is too long, sbFile is ignored. - ******/ - --AddInclude(sbFile) --char *sbFile; -+void -+AddInclude(char *sbFile) - { - if (!fFollow) - return; -@@ -631,8 +640,8 @@ - ** no list, all files are assumed to be "in the list". - ******/ - --InList(sbFile) --char *sbFile; -+int -+InList(char *sbFile) - { - char *pch, sbBase[MAXPATHLEN]; - int i; -@@ -658,9 +667,10 @@ - ** routine does not honor the '//' construct (expand subdirs). - ******/ - --SetInputPaths() -+void -+SetInputPaths(void) - { -- char *sb, *sbPaths, *getenv(); -+ char *sb, *sbPaths; - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -@@ -698,9 +708,8 @@ - ** ERROR is returned if there are more than csbMax words. - ******/ - --SeparateList(sbList, rgsbList, chSep, csbMax) --char *sbList, *rgsbList[], chSep; --int csbMax; -+int -+SeparateList(char *sbList, char *rgsbList[], char chSep, int csbMax) - { - int csbList = 0; - -@@ -725,8 +734,7 @@ - ******/ - - FILE * --TexOpen(sbFile) --char *sbFile; -+TexOpen(char *sbFile) - { - char *pch, *sbNew; - FILE *fp; -@@ -784,9 +792,7 @@ - ******/ - - char * --SafeMalloc(cch, sbMessage) --int cch; --char *sbMessage; -+SafeMalloc(int cch, char *sbMessage) - { - char *sb; - -@@ -799,8 +805,8 @@ - ** Warning -- print a warning message preceded by the program name. - ******/ - --Warning(sb1, sb2) --char *sb1, *sb2; -+void -+Warning(char *sb1, char *sb2) - { - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); - } -@@ -810,8 +816,8 @@ - ** Stdout is flushed and detex exits. - ******/ - --ErrorExit(sb1) --char *sb1; -+void -+ErrorExit(char *sb1) - { - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); -@@ -823,7 +829,8 @@ - ** OS2UsageExit -- print OS/2 usage message and exit. - ******/ - --OS2UsageExit() -+void -+OS2UsageExit(void) - { - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", - sbProgName); diff --git a/Build/source/texk/detex/TLpatches/patch-03-warnings b/Build/source/texk/detex/TLpatches/patch-03-warnings deleted file mode 100644 index d3a9f93eab5..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-03-warnings +++ /dev/null @@ -1,124 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-11 23:12:06.000000000 +0200 -+++ detex-2.8/detex.l 2010-06-11 23:26:08.554783186 +0200 -@@ -73,18 +73,18 @@ - #define CITE(x) if (fLatex && !fCite) KILLARGS(x) - - void AddInclude(char *sbFile); --void ErrorExit(char *sb1); -+void ErrorExit(const char *sb1); - void IncludeFile(char *sbFile); - void InputFile(char *sbFile); --void SetEnvIgnore(char *sbEnvList); -+void SetEnvIgnore(const char *sbEnvList); - void SetInputPaths(void); --void Warning(char *sb1, char *sb2); --int BeginEnv(char *sbEnv); --int EndEnv(char *sbEnv); -+void Warning(const char *sb1, const char *sb2); -+int BeginEnv(const char *sbEnv); -+int EndEnv(const char *sbEnv); - int InList(char *sbFile); - int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); - FILE *TexOpen(char *sbFile); --char *SafeMalloc(int cch, char *sbMessage); -+char *SafeMalloc(int cch, const char *sbMessage); - char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); -@@ -385,7 +385,8 @@ - int - main(int cArgs, char *rgsbArgs[]) - { -- char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2]; -+ char *pch, sbBadOpt[2]; -+ const char *sbEnvList = DEFAULTENV; - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -@@ -530,7 +531,7 @@ - ******/ - - void --SetEnvIgnore(char *sbEnvList) -+SetEnvIgnore(const char *sbEnvList) - { - char *sb; - -@@ -547,7 +548,7 @@ - ******/ - - int --BeginEnv(char *sbEnv) -+BeginEnv(const char *sbEnv) - { - int i; - -@@ -565,7 +566,7 @@ - ******/ - - int --EndEnv(char *sbEnv) -+EndEnv(const char *sbEnv) - { - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) -@@ -670,7 +671,8 @@ - void - SetInputPaths(void) - { -- char *sb, *sbPaths; -+ const char *sb; -+ char *sbPaths; - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -@@ -715,7 +717,7 @@ - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; -- if (sbList = index(sbList, chSep)) -+ if ((sbList = index(sbList, chSep))) - *sbList++ = '\0'; - } - return(sbList && *sbList ? ERROR : csbList); -@@ -760,10 +762,12 @@ - /* If sbFile ends in .tex then it must be there */ - if ((pch = rindex(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) -+ { - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - else - continue; -+ } - - /* if .<ext> then try to open it. the '.' represents */ - /* the beginning of an extension if it is not the first */ -@@ -792,7 +796,7 @@ - ******/ - - char * --SafeMalloc(int cch, char *sbMessage) -+SafeMalloc(int cch, const char *sbMessage) - { - char *sb; - -@@ -806,7 +810,7 @@ - ******/ - - void --Warning(char *sb1, char *sb2) -+Warning(const char *sb1, const char *sb2) - { - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); - } -@@ -817,7 +821,7 @@ - ******/ - - void --ErrorExit(char *sb1) -+ErrorExit(const char *sb1) - { - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); diff --git a/Build/source/texk/detex/TLpatches/patch-04-kpathsea b/Build/source/texk/detex/TLpatches/patch-04-kpathsea index f30d6f81d12..d0e3f52364a 100644 --- a/Build/source/texk/detex/TLpatches/patch-04-kpathsea +++ b/Build/source/texk/detex/TLpatches/patch-04-kpathsea @@ -1,31 +1,7 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-11 23:26:08.000000000 +0200 -+++ detex-2.8/detex.l 2010-06-12 00:15:05.785339097 +0200 -@@ -49,6 +49,23 @@ - */ - - #include "detex.h" -+ -+#ifdef KPATHSEA -+ -+#include <c-auto.h> -+#include <kpathsea/c-auto.h> -+#include <kpathsea/config.h> -+#include <kpathsea/c-memstr.h> -+#include <kpathsea/c-pathmx.h> -+#include <kpathsea/c-std.h> -+#include <kpathsea/tex-file.h> -+ -+#ifdef HAVE_SYS_PARAM_H -+#include <sys/param.h> -+#endif -+ -+#else /* KPATHSEA */ -+ - #ifdef HAVE_STRING_H - #include <string.h> - #define index strchr -@@ -59,10 +76,15 @@ +diff -ur opendetex-2.8.3.orig/detex.l opendetex-2.8.3/detex.l +--- opendetex-2.8.3.orig/detex.l 2018-02-11 18:42:05.000000000 +0900 ++++ opendetex-2.8.3/detex.l 2018-06-20 23:12:37.000000000 +0900 +@@ -73,6 +73,7 @@ #ifndef MAXPATHLEN #include <sys/param.h> #endif @@ -33,126 +9,3 @@ diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l #ifdef OS2 #include <stdlib.h> #endif - -+#endif /* KPATHSEA */ -+ -+#undef IGNORE -+ - #define LaBEGIN if (fLatex) BEGIN - #define IGNORE if (fSpace && !fWord) putchar(' ') - #define SPACE if (!fWord) putchar(' ') -@@ -77,7 +99,9 @@ - void IncludeFile(char *sbFile); - void InputFile(char *sbFile); - void SetEnvIgnore(const char *sbEnvList); -+#ifndef KPATHSEA - void SetInputPaths(void); -+#endif - void Warning(const char *sb1, const char *sb2); - int BeginEnv(const char *sbEnv); - int EndEnv(const char *sbEnv); -@@ -85,6 +109,7 @@ - int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); - FILE *TexOpen(char *sbFile); - char *SafeMalloc(int cch, const char *sbMessage); -+#ifndef KPATHSEA - char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); -@@ -93,12 +118,16 @@ - void yyless(int); - void OS2UsageExit(void); - #endif -+#endif /* KPATHSEA */ - - char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ - char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ - char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ - char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ - char *sbProgName; /* name we were invoked with */ -+#ifndef NOFILE /* might be defined in <sys/param.h> */ -+#define NOFILE 256 -+#endif - FILE *rgfp[NOFILE+1]; /* stack of input/include files */ - int cfp = 0; /* count of files in stack */ - int cOpenBrace = 0; /* count of `{' in <LaMacro> and <LaMacro2> */ -@@ -400,6 +429,9 @@ - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); - #else -+#ifdef KPATHSEA -+ kpse_set_program_name (rgsbArgs[0], NULL); -+#endif - if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else -@@ -407,9 +439,11 @@ - #endif - if (strcmp("delatex",sbProgName) == 0) - fLatex = 1; -- -+ -+#ifndef KPATHSEA - /* set rgsbInputPaths for use with TexOpen() */ - SetInputPaths(); -+#endif - - /* process command line options */ - while (iArgs < cArgs && *(pch = rgsbArgs[iArgs]) == CHOPT) { -@@ -644,7 +678,7 @@ - int - InList(char *sbFile) - { -- char *pch, sbBase[MAXPATHLEN]; -+ char *pch, sbBase[PATH_MAX]; - int i; - - if (csbIncList == 0) /* no list */ -@@ -659,6 +693,7 @@ - return(0); - } - -+#ifndef KPATHSEA - /****** - ** SetInputPaths -- sets rgsbInputPaths to the values indicated by the - ** TEXINPUTS environment variable if set or else DEFAULTINPUTS. If -@@ -702,6 +737,7 @@ - ErrorExit("TEXINPUTS environment variable has too many paths"); - #endif - } -+#endif - - /****** - ** SeparateList -- takes a chSep separated list sbList, replaces the -@@ -738,10 +774,12 @@ - FILE * - TexOpen(char *sbFile) - { -- char *pch, *sbNew; -+ char *sbNew; -+#ifndef KPATHSEA -+ char *pch; - FILE *fp; - int iPath; -- static char sbFullPath[MAXPATHLEN]; -+ static char sbFullPath[PATH_MAX]; - - for (iPath = 0; iPath < csbInputPaths; iPath++) { - #ifdef OS2 -@@ -788,7 +826,15 @@ - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - } -- return((FILE *)NULL); -+ return NULL; -+#else -+ sbNew = kpse_find_file (sbFile, kpse_tex_format, false); -+ -+ if (sbNew == NULL) -+ return NULL; -+ -+ return fopen (sbNew, "r"); -+#endif - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue b/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue deleted file mode 100644 index 784ef2ff5a7..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-12 00:15:05.000000000 +0200 -+++ detex-2.8/detex.l 2011-06-07 13:42:05.000000000 +0200 -@@ -157,7 +157,12 @@ - W [a-zA-Z]+ - N [+-]?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+)) - U pt|pc|in|bp|cm|mm|dd|cc|sp --D {S}(({N}{S}{U})|(\\{W})){S} -+HU {U}|em -+HD {S}(({N}{S}{HU})|(\\{W})){S} -+HG {HD}(plus{HD})?(minus{HD})? -+VU {U}|ex -+VD {S}(({N}{S}{VU})|(\\{W})){S} -+VG {VD}(plus{VD})?(minus{VD})? - Z \*? - - %Start Define Display IncludeOnly Input Math Normal Control -@@ -212,11 +217,12 @@ - <LaEnd>"\n" NEWLINE; - <LaEnd>. ; - --<Normal>"\\vskip"{D} ; --<Normal>"\\vspace"{Z}{S}"{"{D}"}" ; --<Normal>"\\hskip"{D} ; --<Normal>"\\hspace"{Z}{S}"{"{D}"}" ; --<Normal>"\\addvspace"{S}"{"{D}"}" ; -+<Normal>"\\kern"{HD} ; -+<Normal>"\\vskip"{VG} ; -+<Normal>"\\vspace"{Z}{S}"{"{VG}"}" ; -+<Normal>"\\hskip"{HG} ; -+<Normal>"\\hspace"{Z}{S}"{"{HG}"}" ; -+<Normal>"\\addvspace"{S}"{"{VG}"}" ; - - <Normal>"\\newlength" { KILLARGS(1); } - <Normal>"\\setlength" { KILLARGS(2); } diff --git a/Build/source/texk/detex/TLpatches/patch-06-never-interactive b/Build/source/texk/detex/TLpatches/patch-06-never-interactive deleted file mode 100644 index 9db44ace3ed..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-06-never-interactive +++ /dev/null @@ -1,9 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2011-06-07 13:42:05.000000000 +0200 -+++ detex-2.8/detex.l 2012-06-21 11:52:31.000000000 +0200 -@@ -1,3 +1,5 @@ -+%option never-interactive -+ - %{ - #ifndef lint - static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; diff --git a/Build/source/texk/detex/TLpatches/patch-07-rename b/Build/source/texk/detex/TLpatches/patch-07-rename deleted file mode 100644 index 4f8c1452d2a..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-07-rename +++ /dev/null @@ -1,48 +0,0 @@ -diff -ur detex-2.8.orig/detex.h detex-2.8/detex.h ---- detex-2.8.orig/detex.h 2008-02-01 20:55:51.000000000 +0100 -+++ detex-2.8/detex.h 2012-08-02 10:31:17.000000000 +0200 -@@ -78,4 +78,4 @@ - #define CHTEXOPT 't' - #define CHWORDOPT 'w' - --#define ERROR -1 -+#define my_ERROR -1 -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-06-21 11:52:31.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-02 10:31:20.000000000 +0200 -@@ -580,7 +580,7 @@ - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); -- if (csbEnvIgnore == ERROR) -+ if (csbEnvIgnore == my_ERROR) - ErrorExit("The environtment list contains too many environments"); - } - -@@ -738,7 +738,7 @@ - (void)strcat(sbPaths, DEFAULTINPUTS); - - csbInputPaths = SeparateList(sbPaths, rgsbInputPaths, CHPATHSEP, MAXINPUTPATHS); -- if (csbInputPaths == ERROR) -+ if (csbInputPaths == my_ERROR) - #ifdef OS2 - ErrorExit("TEXINPUT(S) environment variable has too many paths"); - #else -@@ -751,7 +751,7 @@ - ** SeparateList -- takes a chSep separated list sbList, replaces the - ** chSep's with NULLs and sets rgsbList[i] to the beginning of - ** the ith word in sbList. The number of words is returned. A --** ERROR is returned if there are more than csbMax words. -+** my_ERROR is returned if there are more than csbMax words. - ******/ - - int -@@ -764,7 +764,7 @@ - if ((sbList = index(sbList, chSep))) - *sbList++ = '\0'; - } -- return(sbList && *sbList ? ERROR : csbList); -+ return(sbList && *sbList ? my_ERROR : csbList); - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-08-kpathsea b/Build/source/texk/detex/TLpatches/patch-08-kpathsea deleted file mode 100644 index 2eacbf68bcc..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-08-kpathsea +++ /dev/null @@ -1,52 +0,0 @@ - Clarify that DEFAULTINPUTS and CHPATHSEP are not used with KPATHSEA - -diff -ur detex-2.8.orig/detex.h detex-2.8/detex.h ---- detex-2.8.orig/detex.h 2012-08-02 10:31:17.000000000 +0200 -+++ detex-2.8/detex.h 2012-08-24 10:23:29.000000000 +0200 -@@ -51,6 +51,7 @@ - - #define MAXINCLIST 40 - -+#ifndef KPATHSEA - #ifdef OS2 - #define DEFAULTINPUTS ".;/emtex/texinput" - #define CHPATHSEP ';' -@@ -58,6 +59,8 @@ - #define DEFAULTINPUTS ".:/usr/local/tex/inputs" - #define CHPATHSEP ':' - #endif -+#endif -+ - #define MAXINPUTPATHS 10 - - #define DEFAULTENV "array,eqnarray,equation,figure,mathmatica,picture,table,verbatim" - - With KPATHSEA use kpse_program_name. - Fixed a typo. - -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-02 10:31:20.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-24 10:37:03.000000000 +0200 -@@ -436,10 +436,10 @@ - #endif - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); --#else --#ifdef KPATHSEA -+#elif defined(KPATHSEA) - kpse_set_program_name (rgsbArgs[0], NULL); --#endif -+ sbProgName = kpse_program_name; -+#else - if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else -@@ -462,7 +467,7 @@ - break; - case CHENVOPT: - if (++iArgs >= cArgs) { -- ErrorExit("-e option requires and argument"); -+ ErrorExit("-e option requires an argument"); - } - sbEnvList = rgsbArgs[iArgs]; - break; diff --git a/Build/source/texk/detex/TLpatches/patch-09-binary b/Build/source/texk/detex/TLpatches/patch-09-binary deleted file mode 100644 index 95d272030ad..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-09-binary +++ /dev/null @@ -1,28 +0,0 @@ - In TeX Live we use binary mode for all output files. - -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-24 10:37:03.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-24 10:51:12.000000000 +0200 -@@ -83,6 +83,11 @@ - #include <stdlib.h> - #endif - -+#ifdef WIN32 -+#include <fcntl.h> -+#include <io.h> -+#endif -+ - #endif /* KPATHSEA */ - - #undef IGNORE -@@ -494,6 +499,10 @@ - } - SetEnvIgnore(sbEnvList); - -+#ifdef WIN32 -+ _setmode(fileno(stdout), _O_BINARY); -+#endif -+ - /* process input files */ - for (; iArgs < cArgs; iArgs++) { - fSawFile++; diff --git a/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings b/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings deleted file mode 100644 index 8f03d7b26af..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings +++ /dev/null @@ -1,52 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-24 10:51:12.000000000 +0200 -+++ detex-2.8/detex.l 2013-06-27 18:49:05.000000000 +0200 -@@ -70,10 +70,10 @@ - - #ifdef HAVE_STRING_H - #include <string.h> --#define index strchr --#define rindex strrchr - #else - #include <strings.h> -+#define strchr index -+#define strrchr rindex - #endif - #ifndef MAXPATHLEN - #include <sys/param.h> -@@ -445,7 +445,7 @@ - kpse_set_program_name (rgsbArgs[0], NULL); - sbProgName = kpse_program_name; - #else -- if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) -+ if ((sbProgName = strrchr(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else - sbProgName = rgsbArgs[0]; -@@ -701,7 +701,7 @@ - if (csbIncList == 0) /* no list */ - return(1); - (void)strcpy(sbBase, sbFile); -- if ((pch = rindex(sbBase, '.')) != NULL) -+ if ((pch = strrchr(sbBase, '.')) != NULL) - *pch = '\0'; - i = 0; - while ((i < csbIncList) && rgsbIncList[i]) -@@ -770,7 +770,7 @@ - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; -- if ((sbList = index(sbList, chSep))) -+ if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; - } - return(sbList && *sbList ? my_ERROR : csbList); -@@ -815,7 +815,7 @@ - #endif - - /* If sbFile ends in .tex then it must be there */ -- if ((pch = rindex(sbFullPath, '.')) != NULL -+ if ((pch = strrchr(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) - { - if ((fp = fopen(sbFullPath, "r")) != NULL) diff --git a/Build/source/texk/detex/TLpatches/patch-11-c_auto_h b/Build/source/texk/detex/TLpatches/patch-11-c_auto_h deleted file mode 100644 index e88dad2ad37..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-11-c_auto_h +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur -x detex.c detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2013-06-27 18:49:05.000000000 +0200 -+++ detex-2.8/detex.l 2013-06-28 14:46:12.000000000 +0200 -@@ -1,6 +1,6 @@ - %option never-interactive - --%{ -+%top{ - #ifndef lint - static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; - #endif -@@ -89,7 +89,9 @@ - #endif - - #endif /* KPATHSEA */ -+} - -+%{ - #undef IGNORE - - #define LaBEGIN if (fLatex) BEGIN diff --git a/Build/source/texk/detex/TLpatches/patch-12-typo b/Build/source/texk/detex/TLpatches/patch-12-typo deleted file mode 100644 index 77087a7ccaa..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-12-typo +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur -x detex.c detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2013-06-28 14:46:12.000000000 +0200 -+++ detex-2.8/detex.l 2014-08-20 09:56:40.115740053 +0200 -@@ -592,7 +592,7 @@ - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); - if (csbEnvIgnore == my_ERROR) -- ErrorExit("The environtment list contains too many environments"); -+ ErrorExit("The environment list contains too many environments"); - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-13-typo-minipage b/Build/source/texk/detex/TLpatches/patch-13-typo-minipage new file mode 100644 index 00000000000..0274ea378c4 --- /dev/null +++ b/Build/source/texk/detex/TLpatches/patch-13-typo-minipage @@ -0,0 +1,12 @@ +diff -ur opendetex-2.8.3.orig/detex.l opendetex-2.8.3/detex.l +--- opendetex-2.8.3.orig/detex.l 2018-02-11 18:42:05.000000000 +0900 ++++ opendetex-2.8.3/detex.l 2018-06-20 23:12:37.000000000 +0900 +@@ -203,7 +204,7 @@ + <LaVerbatim>. ECHO; + + <LaBegin>{S}"{"{S}"minipage"{S}"}" { KILLARGS(1); +- if (BeginEnv("minpage")) ++ if (BeginEnv("minipage")) + BEGIN LaEnv; + else + BEGIN LaMacro; /* Normal; */ diff --git a/Build/source/texk/detex/detex-src/COPYRIGHT b/Build/source/texk/detex/detex-src/COPYRIGHT index 33c5e6c5399..c7ac284794d 100644 --- a/Build/source/texk/detex/detex-src/COPYRIGHT +++ b/Build/source/texk/detex/detex-src/COPYRIGHT @@ -33,3 +33,4 @@ IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. + diff --git a/Build/source/texk/detex/detex-src/ChangeLog b/Build/source/texk/detex/detex-src/ChangeLog new file mode 100644 index 00000000000..8416c6f74eb --- /dev/null +++ b/Build/source/texk/detex/detex-src/ChangeLog @@ -0,0 +1,178 @@ +April 26, 1986 + +Modified -- June 4, 1986 +Changed so that it automatically recognizes LaTeX source and ignores several +environment modes such as array. + + +Modified (Version 2.0) -- June 30, 1984 +Now handles white space in sequences like "\begin { document }". Detex is not +as easily confused by such things as display mode ends and begins that don't +match up. + + +Modified -- September 19, 1986 +Added the "-e <environment-list>" option to ignore specified LaTeX +environments. + + +Modified -- June 30, 1987 +Added the "-n" no-follow option, to allow detex to ignore \input and \include +commands. Also changed the algorithm for locating the input files. It now +interprets the "." more reasonably (i.e. it is not always the beginning of an +extension). + + +Modified -- December 15, 1988 +Added handling of verbatim environment in LaTeX mode and added it to the list +of modes ignored by default. Because of limitations with lex, it was +necessary to shorten the names of some of the existing start states before +adding a new one (ugh). + + +Modified -- January 3, 1988 +Added ignore of \$ inside $$ (math) pair. + + +Modified (Version 2.2) -- June 25, 1990 +Control sequences are no longer replaced by space, but just removed. This +means accents no longer cause output words to be broken. The "-c" option was +added to show the arguments of \cite, \ref, and \pageref macros. This is +useful when using something like style on the output. + + +Modified (Version 2.3) -- September 7, 1990 +Fixed the handling of Ctl mode a little better and added an exception +for \index on suggestions from kcb@hss.caltech.edu (KC Border). Also +changed the value for DEFAULTINPUTS to coincide with a local change. + + +Modified -- February 10, 1991 +Added -t option to force TeX mode even when seeing the "\begin{document}" +string in the input. + + +Modified -- February 23, 1991 +Based on suggestions from pinard@iro.umontreal.ca (Francois Pinard), I +added support for the SysV string routines (-DUSG), added defines for +the flex lexical scanner (-DFLEX_SCANNER), changed NULL to '\0' when +using it as a character (his sys defined NULL as (void *)0), changed +the Makefile to use ${CC} instead of cc, and added comments about the +new compile time options. + + +Modified (Version 2.4) -- September 2, 1992 +Corrected the way CITEBEGIN worked. Due to serious braindeath I had +the condition wrong in the if test. It should be (fLatex && !fCite). +This solves the problem a couple people reported with amstex style +\ref entries. + +Added a preprocessing sed(1) command to replace all the long, easy to +read state names with short two letter state names (SA-S?) so that lex +won't overflow and I don't have to keep shortening the state names +every time I add one. If a state is added, it must also be added to +states.sed (order is important) along with its unique S? replacement. + +Added \pagestyle, \setcounter, and \verb handling from +K.Sattar@cs.exeter.ac.uk (Khalid Sattar). Also allows invocation as +"delatex" to force LaTeX mode. + +Applied patches from queinnec@cenatls.cena.dgac.fr (Philippe Queinnec) +to handle nested {}s in state <LaMacro2> (\bibitem, \cite, \index). + +Added special ligature handling (\aa, \ae, \oe, \l, \o, \i, \j, \ss) +at the suggestion of gwp@dido.caltech.edu (G. W. Pigman II). + +Cleaned up the comments on detex.h, added mathmatica to DEFAULTENV. + + +Modified (Version 2.5) -- January 28, 1993 +Leading spaces in macros are no longer stripped. This means +"foo\footnote{ bar}" comes out as "foo bar" instead of "foobar". + +Fixed special ligature handling so it works in cases line {\ss} instead of +just when followed by a space. + + +Modified (Version 2.6) -- July 30, 1993 +Added OS/2 port from hankedr@mail.auburn.edu (Darrel R Hankerson). + +Added handling of leading and trailing ':' in TEXINPUTS per the latest +TeX as suggested by jnp@tfl.dk (J|rgen N|rgaard). + +Changed the way the input path is constructed in SetInputPaths() so we +never try to modify a constant string. + +Changed the way the the ignore environment list is contructed in +SetEnvIgnore() so we never try to modify a constant string. + +Changed the USG define to HAVE_STRING_H. + +Fixed the states.sed script so it only replaces "Input" in the correct +places. I would like to use the \< \> word separator patterns but +they are not supported by all versions of sed. This as least works. + +Changed the detex.c target in the Makefile to use a temporary file +because I experienced problems (segmentation fault) with lex on +Solaris 2.1 when input was from stdin. + + +Modified (Version 2.7) -- September 10, 1997 +Removed line breaks in detex.l between a few patterns and actions. It +appears that flex is no longer able to handle this. Thanks to Anthony +Harris <harris@hebb.neurology.pitt.edu> and Marty Leisner +<leisner@sdsp.mc.xerox.com> for reporting this. + + +Porting notes -- March 30, 1992 +When using gcc, or compiling on a NeXT, you should compile with +-fwritable-strings. With the change to SetInputPaths() in 2.6 this +should no longer be necessary. + +On a NeXT, it has been reported that lex replaces the '\0' with NULL, +and then the compiler complains about it. I think this is an old bug +that is no longer applicable. + +July 30, 1993 +The flex scanner generator does not work because it does not handle +input buffering the same way as lex. I don't know of any reasonable +way to rewrite detex to get around this problem. + +May 25, 1995 +According to alain@ia1.u-strasbg.fr (Alain Ketterlin), using flex +allows 8-bit characters to be handled correctly. + +Modified (Version 2.8) -- January 1, 2008 +Added NCSA/University of Illinois Open Source License to facilitate +free redistribution. + +(Version 2.8.1) -- October 2, 2008 +First version of OpenDetex. +Making program compile on modern UNIX systems; many fixes in LaTeX +code handling (quotes, figure and table environments, headings and +many more). + +(Version 2.8.2) -- February, 2016 +Improved ANSI C compatibility. Used kpse_find_file() and +kpse_program_name(). Handle `\kern', allow `em/ex'for dimensions, +handle glue specs. Added the never-interactive option to prevent flex +from creating a problematic prototype for isatty(). Renamed +ERROR -> my_ERROR to avoid a conflict with WIN32 headers. Used binary +mode for output file (Peter Breitenlohner and Werner Lemberg) + +Insert a space in place of right curly brace (Eric Miotto). + +Provide 'make uninstall'. Install man page when running 'make install'. + +(Version 2.8.3) -- February, 2018 +Added -r option that replaces math environments with nouns and verbs in a way that keeps sentences readable. Thanks to Sophie Huiberts. + +Changed Makefile to fix a Mac OS X problem where frequently an empty output file was produced. + +Removed states.sed that modified detex.l to avoid Lex memory overrun - no longer needed on current machines. Added detex.c to the distributed package to allow compiling OpenDetex without having Flex. + +Removed 'mathmatica' from the default list of environments which contents are ignored - 'mathmatica' is not supported by TeX. Added more ignored environments: algorithm, align, smallmatrix and several more. + +Fixed compilation on Cygwin. + +Removed special files for OS/2 - they required compilers that no longer exist. OpenDetex should be able to be compiled using GCC for OS/2. diff --git a/Build/source/texk/detex/detex-src/INSTALL b/Build/source/texk/detex/detex-src/INSTALL new file mode 100644 index 00000000000..28a48174c02 --- /dev/null +++ b/Build/source/texk/detex/detex-src/INSTALL @@ -0,0 +1,13 @@ +To build the program, you need: +* 'make' program +* a C compiler (for example, Clang or GCC) +* 'lex' implementation (for example, flex) + +Debian/Ubuntu users can install those by executing: + sudo apt-get install make gcc flex + +To compile the program, simply execute + make + +To install the program, execute + sudo make install diff --git a/Build/source/texk/detex/detex-src/Makefile b/Build/source/texk/detex/detex-src/Makefile index e6a75b763a7..5358b291040 100644 --- a/Build/source/texk/detex/detex-src/Makefile +++ b/Build/source/texk/detex/detex-src/Makefile @@ -38,6 +38,8 @@ # # Detex is a program to remove TeX and LaTeX constructs from text source. +UNAME_S := $(shell uname -s) + # Installation directory # DESTDIR = /usr/local/bin @@ -69,25 +71,27 @@ DEFS = # #DEFS += ${DEFS} -DNO_MALLOC_DECL # -CFLAGS = -O ${DEFS} +CFLAGS = -O ${DEFS} -Wall # Use your favorite lexical scanner # -LEX = lex -#LEX = flex +#LEX = lex +LEX = flex #LFLAGS = -8 -C # scanner library # -LEXLIB = -ll -#LEXLIB = -lfl +LEXLIB = -lfl +ifeq ($(UNAME_S),Darwin) + LEXLIB = -ll +endif LPR = lpr -p # Program names # -PROGS = detex +PROGS = detex delatex # Header files # @@ -101,39 +105,56 @@ SRC = detex.l # D_OBJ = detex.o +VERSION = 2.8.3 + all: ${PROGS} detex: ${D_OBJ} ${CC} ${CFLAGS} -o $@ ${D_OBJ} ${LEXLIB} -detex.c: - sed -f states.sed detex.l > xxx.l - ${LEX} ${LFLAGS} xxx.l - rm -f xxx.l - mv lex.yy.c detex.c +delatex: detex + cp detex delatex -lexout.c: detex.c - mv detex.c lexout.c +detex.c: detex.l + ${LEX} ${LFLAGS} detex.l + mv lex.yy.c detex.c man-page: troff -man detex.1l # If you want detex available as delatex, uncomment the last two lines of # this target -install: detex +install: all rm -f ${DESTDIR}/detex - install -c -m 775 -o binary -g staff -s detex ${DESTDIR} + install -c -m 775 -g staff -s detex ${DESTDIR} + install detex.1l /usr/local/share/man/man1 # rm -f ${DESTDIR}/delatex # ln ${DESTDIR}/detex ${DESTDIR}/delatex +uninstall: + rm -f ${DESTDIR}/detex + rm -f ${DESTDIR}/delatex + rm -f /usr/local/share/man/man1/detex.* + clean: -rm -f a.out core *.s *.o ERRS errs .,* .emacs_[0-9]* - -rm -f ${PROGS} xxx.l lex.yy.c + -rm -f ${PROGS} xxx.l lex.yy.c detex.c + -rm -f *.tar.bz2 print: ${HDR} ${SRC} ${LPR} Makefile ${HDR} ${SRC} +test: all + ./test.pl + +run: delatex + ./delatex in > out.txt + +package: clean detex.c + tar cjfv opendetex-${VERSION}.tar.bz2 ChangeLog COPYRIGHT detex.* INSTALL Makefile README + # Dependencies # detex.c: detex.h detex.c: detex.l + diff --git a/Build/source/texk/detex/detex-src/README b/Build/source/texk/detex/detex-src/README index a310a7f3fd0..c7feeefbf0d 100644 --- a/Build/source/texk/detex/detex-src/README +++ b/Build/source/texk/detex/detex-src/README @@ -1,6 +1,6 @@ -Detex - Version 2.8 +OpenDetex - Version 2.8.3 -Detex is a program to remove TeX constructs from a text file. It recognizes +OpenDetex is a program to remove TeX constructs from a text file. It recognizes the \input command. This program assumes it is dealing with LaTeX input if it sees the string @@ -11,185 +11,35 @@ This directory contains the following files: README - you're looking at it. -COPYRIGHT - NCSA/University of Illinois Open Source License +ChangeLog - detailed history of changes done in different versions of the program -Makefile - makefile for generating detex on a 4.2BSD Unix system. +COPYRIGHT - information about program authors and license + +INSTALL - how to compile the program + +Makefile - makefile for generating detex detex.1l - troff source for the detex manual page. Assuming you have the -man macros, use "make man-page" to generate it. +detex.c - C code generated from detex.l distributed to allow + building from source without having Flex installed + detex.h - Various global definitions. These should be modified to suit the local installation. -detex.l - Lex and C source for the detex program. - -lexout.c - C code generated from detex.l using lex on a Sun (SunOS 4.1.1) - This can be useful for DOS, OS/2 or systems that don't have - lex. - -states.sed - sed(1) script to munge the state names in detex.l so that - reasonable names can be used in the source without causing - lex(1) to overflow. - -os2 - subdirectory containing support for compilation on - OS/2 and DOS systems +detex.l - Lex/Flex and C source for the detex program. This software package is distributed under the NCSA/University of -Illinois Open Source License. The latest version is available at -http://www.cs.purdue.edu/homes/trinkle/detex/ Send comments and fixes -to me via email. - -Daniel Trinkle <trinkle@cs.purdue.edu> -Department of Computer Sciences -Purdue University -West Lafayette, IN 47907-1398 - -April 26, 1986 - -Modified -- June 4, 1986 -Changed so that it automatically recognizes LaTeX source and ignores several -environment modes such as array. - - -Modified (Version 2.0) -- June 30, 1984 -Now handles white space in sequences like "\begin { document }". Detex is not -as easily confused by such things as display mode ends and begins that don't -match up. - - -Modified -- September 19, 1986 -Added the "-e <environment-list>" option to ignore specified LaTeX -environments. - - -Modified -- June 30, 1987 -Added the "-n" no-follow option, to allow detex to ignore \input and \include -commands. Also changed the algorithm for locating the input files. It now -interprets the "." more reasonably (i.e. it is not always the beginning of an -extension). - - -Modified -- December 15, 1988 -Added handling of verbatim environment in LaTeX mode and added it to the list -of modes ignored by default. Because of limitations with lex, it was -necessary to shorten the names of some of the existing start states before -adding a new one (ugh). - - -Modified -- January 3, 1988 -Added ignore of \$ inside $$ (math) pair. - - -Modified (Version 2.2) -- June 25, 1990 -Control sequences are no longer replaced by space, but just removed. This -means accents no longer cause output words to be broken. The "-c" option was -added to show the arguments of \cite, \ref, and \pageref macros. This is -useful when using something like style on the output. - - -Modified (Version 2.3) -- September 7, 1990 -Fixed the handling of Ctl mode a little better and added an exception -for \index on suggestions from kcb@hss.caltech.edu (KC Border). Also -changed the value for DEFAULTINPUTS to coincide with a local change. - - -Modified -- February 10, 1991 -Added -t option to force TeX mode even when seeing the "\begin{document}" -string in the input. - - -Modified -- February 23, 1991 -Based on suggestions from pinard@iro.umontreal.ca (Francois Pinard), I -added support for the SysV string routines (-DUSG), added defines for -the flex lexical scanner (-DFLEX_SCANNER), changed NULL to '\0' when -using it as a character (his sys defined NULL as (void *)0), changed -the Makefile to use ${CC} instead of cc, and added comments about the -new compile time options. - - -Modified (Version 2.4) -- September 2, 1992 -Corrected the way CITEBEGIN worked. Due to serious braindeath I had -the condition wrong in the if test. It should be (fLatex && !fCite). -This solves the problem a couple people reported with amstex style -\ref entries. - -Added a preprocessing sed(1) command to replace all the long, easy to -read state names with short two letter state names (SA-S?) so that lex -won't overflow and I don't have to keep shortening the state names -every time I add one. If a state is added, it must also be added to -states.sed (order is important) along with its unique S? replacement. - -Added \pagestyle, \setcounter, and \verb handling from -K.Sattar@cs.exeter.ac.uk (Khalid Sattar). Also allows invocation as -"delatex" to force LaTeX mode. - -Applied patches from queinnec@cenatls.cena.dgac.fr (Philippe Queinnec) -to handle nested {}s in state <LaMacro2> (\bibitem, \cite, \index). - -Added special ligature handling (\aa, \ae, \oe, \l, \o, \i, \j, \ss) -at the suggestion of gwp@dido.caltech.edu (G. W. Pigman II). - -Cleaned up the comments on detex.h, added mathmatica to DEFAULTENV. - - -Modified (Version 2.5) -- January 28, 1993 -Leading spaces in macros are no longer stripped. This means -"foo\footnote{ bar}" comes out as "foo bar" instead of "foobar". - -Fixed special ligature handling so it works in cases line {\ss} instead of -just when followed by a space. - - -Modified (Version 2.6) -- July 30, 1993 -Added OS/2 port from hankedr@mail.auburn.edu (Darrel R Hankerson). - -Added handling of leading and trailing ':' in TEXINPUTS per the latest -TeX as suggested by jnp@tfl.dk (J|rgen N|rgaard). - -Changed the way the input path is constructed in SetInputPaths() so we -never try to modify a constant string. - -Changed the way the the ignore environment list is contructed in -SetEnvIgnore() so we never try to modify a constant string. - -Changed the USG define to HAVE_STRING_H. - -Fixed the states.sed script so it only replaces "Input" in the correct -places. I would like to use the \< \> word separator patterns but -they are not supported by all versions of sed. This as least works. - -Changed the detex.c target in the Makefile to use a temporary file -because I experienced problems (segmentation fault) with lex on -Solaris 2.1 when input was from stdin. - - -Modified (Version 2.7) -- September 10, 1997 -Removed line breaks in detex.l between a few patterns and actions. It -appears that flex is no longer able to handle this. Thanks to Anthony -Harris <harris@hebb.neurology.pitt.edu> and Marty Leisner -<leisner@sdsp.mc.xerox.com> for reporting this. - - -Porting notes -- March 30, 1992 -When using gcc, or compiling on a NeXT, you should compile with --fwritable-strings. With the change to SetInputPaths() in 2.6 this -should no longer be necessary. - -On a NeXT, it has been reported that lex replaces the '\0' with NULL, -and then the compiler complains about it. I think this is an old bug -that is no longer applicable. - -July 30, 1993 -The flex scanner generator does not work because it does not handle -input buffering the same way as lex. I don't know of any reasonable -way to rewrite detex to get around this problem. +Illinois Open Source License. -May 25, 1995 -According to alain@ia1.u-strasbg.fr (Alain Ketterlin), using flex -allows 8-bit characters to be handled correctly. +OpenDetex was created by Piotr Kubowicz from version 2.8 of Detex +program by Daniel Trinkle, obtained from +http://www.cs.purdue.edu/homes/trinkle/detex/ -Modified (Version 2.8) -- January 1, 2008 -Added NCSA/University of Illinois Open Source License to facilitate -free redistribution. +Currently home of OpenDetex is GitHub: +https://github.com/pkubowicz/opendetex +You can check for latest version, submit bug reports or patches, or +ask for becoming team member there. diff --git a/Build/source/texk/detex/detex-src/detex.c b/Build/source/texk/detex/detex-src/detex.c index 171d81ac926..bd140ff191d 100644 --- a/Build/source/texk/detex/detex-src/detex.c +++ b/Build/source/texk/detex/detex-src/detex.c @@ -1,8 +1,3 @@ -#line 4 "../../../texk/detex/detex-src/detex.l" -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; -#endif - /* * Copyright (c) 1986-2007 Purdue University * All rights reserved. @@ -40,7 +35,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. */ - /* * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex] ] * @@ -70,7 +64,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #include <string.h> #else #include <strings.h> -#define strchr index #define strrchr rindex #endif #ifndef MAXPATHLEN @@ -88,9 +81,7 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #endif /* KPATHSEA */ - - -#line 94 "../../../texk/detex/detex-src/detex.c" +#line 84 "lex.yy.c" #define YY_INT_ALIGNED short int @@ -99,7 +90,7 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -178,25 +169,13 @@ typedef unsigned int flex_uint32_t; #endif /* ! FLEXINT_H */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ @@ -257,7 +236,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; @@ -296,12 +275,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -324,7 +303,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -352,7 +331,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -371,11 +350,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -400,7 +379,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); @@ -434,7 +413,7 @@ void yyfree (void * ); typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; @@ -451,23 +430,20 @@ extern char *yytext; static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); -#if defined(__GNUC__) && __GNUC__ >= 3 -__attribute__((__noreturn__)) -#endif -static void yy_fatal_error (yyconst char msg[] ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - yyleng = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 142 -#define YY_END_OF_BUFFER 143 +#define YY_NUM_RULES 173 +#define YY_END_OF_BUFFER 174 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -475,125 +451,158 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1067] = +static yyconst flex_int16_t yy_accept[1362] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 122, 122, 0, 0, 0, 0, + 0, 0, 0, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 135, 135, 0, 0, 0, 0, 0, 0, 118, 118, - 0, 0, 143, 142, 80, 79, 78, 92, 91, 92, - 103, 106, 105, 104, 108, 110, 109, 97, 95, 94, - 97, 129, 129, 93, 1, 128, 129, 124, 124, 126, - 123, 122, 121, 120, 123, 123, 122, 11, 11, 10, - 9, 11, 88, 87, 88, 18, 17, 15, 16, 14, - 13, 14, 84, 83, 84, 99, 101, 100, 133, 130, - - 131, 132, 135, 134, 139, 136, 137, 138, 141, 140, - 6, 6, 7, 118, 43, 42, 44, 90, 103, 108, - 96, 125, 89, 1, 128, 0, 127, 117, 115, 81, - 114, 114, 114, 114, 85, 116, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 122, 122, 120, 120, 0, 119, - 0, 0, 9, 0, 0, 0, 86, 15, 0, 82, - 99, 135, 6, 0, 43, 127, 114, 114, 112, 112, - 116, 0, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 0, 0, 0, 0, 111, 111, 0, 116, 114, - 114, 114, 114, 114, 77, 114, 65, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 71, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 0, 0, - 12, 0, 114, 114, 114, 114, 114, 114, 61, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 52, 114, 114, 114, 114, 114, 114, 32, 114, 114, - - 114, 114, 114, 114, 114, 114, 114, 114, 73, 114, - 114, 0, 0, 0, 0, 114, 114, 3, 114, 114, - 114, 46, 114, 114, 114, 114, 114, 114, 114, 114, - 66, 107, 0, 0, 0, 0, 0, 68, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 52, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 0, 0, - 0, 0, 114, 114, 0, 0, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 0, 0, 0, 0, 0, - 114, 114, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 19, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 36, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 34, 114, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 114, 114, 0, 0, 58, 114, 114, 114, - 114, 114, 114, 114, 114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 98, 0, 19, 19, 114, 114, 114, 114, 114, 114, - 69, 114, 114, 114, 114, 114, 114, 114, 33, 114, - 53, 114, 114, 114, 114, 114, 114, 114, 114, 114, - - 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 0, 0, 0, 114, - 114, 0, 114, 60, 48, 114, 114, 114, 51, 67, - 0, 22, 22, 22, 22, 0, 0, 0, 0, 0, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 35, 114, 114, 114, 114, 37, 53, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 0, 20, 20, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 114, 0, 114, 114, 114, 114, 49, 0, 0, - 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 166, 0, 0, 0, 0, 0, 0, + 139, 139, 0, 0, 174, 173, 92, 91, 90, 107, + 105, 107, 106, 107, 107, 119, 122, 121, 120, 128, + 130, 129, 113, 110, 109, 112, 113, 113, 158, 158, + 159, 158, 158, 108, 1, 158, 158, 158, 157, 158, + 146, 151, 154, 146, 155, 148, 145, 144, 142, 141, + 145, 145, 143, 12, 12, 173, 11, 12, 102, 100, + + 101, 102, 102, 18, 16, 17, 15, 14, 15, 97, + 95, 96, 97, 97, 115, 117, 116, 124, 126, 125, + 164, 161, 162, 163, 166, 165, 170, 167, 168, 169, + 172, 171, 6, 6, 7, 139, 44, 43, 46, 104, + 0, 0, 0, 0, 0, 0, 0, 119, 121, 128, + 129, 111, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 147, 103, 1, 152, 153, 149, 157, 0, 156, + 138, 136, 93, 135, 135, 135, 135, 98, 137, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 150, 0, 0, + + 0, 144, 143, 142, 141, 141, 0, 140, 0, 0, + 11, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 16, 14, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 124, 125, 163, + 166, 6, 0, 44, 0, 45, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, + 0, 0, 0, 149, 156, 135, 135, 133, 133, 137, + 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 132, 132, 0, 137, 135, 135, 135, 135, 135, 135, + 89, 135, 71, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 78, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 114, 114, 113, 114, 114, 25, - 114, 50, 70, 56, 114, 114, 38, 40, 114, 26, - 114, 114, 114, 114, 114, 114, 47, 114, 0, 0, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 4, 0, 114, - 0, 0, 0, 114, 114, 114, 114, 0, 0, 22, - 22, 0, 0, 0, 0, 0, 23, 114, 114, 74, - 114, 31, 56, 39, 114, 38, 72, 30, 114, 28, - 54, 114, 114, 64, 0, 0, 20, 20, 0, 0, - 0, 0, 0, 21, 0, 27, 0, 0, 0, 0, - - 0, 0, 114, 45, 114, 114, 0, 0, 22, 22, - 0, 0, 0, 0, 114, 102, 114, 114, 29, 54, - 114, 114, 0, 0, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 114, 114, 0, 0, 22, - 22, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 114, 75, 114, 57, 0, 0, 20, 20, 0, 0, + 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 67, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 57, 135, + 135, 135, 135, 135, 135, 33, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 85, 135, 135, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 135, 135, 135, + + 135, 3, 135, 135, 135, 135, 48, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 73, 127, 0, + 0, 0, 0, 0, 74, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 57, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 131, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 63, 62, 0, 0, 22, 0, + 0, 0, 0, 0, 106, 0, 112, 0, 135, 135, + 135, 135, 135, 0, 0, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + + 0, 135, 135, 135, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 37, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 35, 135, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 101, 0, 96, 0, 0, 0, 0, 135, 135, + 135, 135, 135, 0, 0, 64, 135, 135, 58, 135, + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, + + 0, 135, 114, 0, 19, 19, 135, 75, 135, 135, + 135, 135, 135, 135, 76, 135, 135, 135, 135, 135, + 135, 135, 34, 135, 59, 135, 135, 135, 135, 135, + 135, 123, 135, 135, 135, 135, 135, 135, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 135, 135, 135, 135, 135, 0, 135, 66, + 58, 50, 135, 135, 135, 53, 83, 135, 0, 22, + 22, 22, 22, 0, 0, 0, 0, 0, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + + 36, 135, 135, 135, 135, 38, 59, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, + 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, + 0, 135, 135, 135, 135, 51, 0, 84, 0, 0, + 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 135, 135, 134, 135, 135, + 135, 26, 135, 52, 77, 62, 135, 135, 39, 41, + 135, 27, 135, 135, 135, 135, 135, 135, 135, 49, + 135, 135, 0, 0, 20, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 114, - 114, 55, 57, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 5, 0, 0, + 8, 9, 0, 4, 0, 135, 135, 135, 135, 0, + 0, 0, 135, 135, 135, 135, 0, 0, 0, 22, + 22, 0, 0, 0, 0, 0, 23, 72, 135, 135, + 0, 86, 81, 135, 32, 62, 40, 135, 39, 79, + 31, 135, 29, 135, 135, 60, 135, 135, 70, 0, + 0, 20, 20, 0, 0, 0, 0, 0, 21, 10, + 0, 135, 135, 135, 28, 0, 0, 0, 0, 0, + 0, 135, 47, 135, 135, 0, 0, 0, 22, 22, + 0, 0, 0, 0, 135, 118, 0, 135, 135, 30, + + 82, 135, 60, 135, 135, 0, 0, 20, 20, 0, + 0, 0, 0, 0, 135, 135, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 0, 22, 22, 22, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 76, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 20, 20, 20, 0, 0, + 65, 135, 135, 0, 0, 22, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 134, 135, 87, 63, + 135, 135, 0, 0, 20, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 135, 0, 0, 0, + 0, 0, 24, 0, 69, 68, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 135, + + 135, 63, 61, 55, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 5, 135, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, + 0, 135, 88, 61, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 20, 20, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 2, 0, 22, 22, 22, - 0, 2, 0, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 41, 0, 20, 20, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42, 42, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 41, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 22, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -603,15 +612,15 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 1, 6, 7, 1, 8, 9, 10, 11, 12, 13, 14, 15, 1, 16, 16, 16, - 16, 16, 17, 17, 17, 17, 17, 1, 1, 1, - 18, 1, 5, 19, 20, 21, 21, 21, 22, 21, - 21, 21, 21, 21, 21, 23, 21, 21, 24, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 25, 26, 27, 1, 1, 28, 29, 30, 31, 32, - - 33, 34, 35, 36, 37, 23, 38, 39, 40, 41, - 42, 43, 21, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 1, 1, 1, 1, + 16, 16, 17, 17, 17, 17, 17, 1, 1, 18, + 19, 20, 5, 21, 22, 23, 23, 23, 24, 23, + 23, 23, 23, 23, 23, 25, 23, 23, 26, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 27, 28, 29, 1, 1, 30, 31, 32, 33, 34, + + 35, 36, 37, 38, 39, 25, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -628,928 +637,1090 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[57] = +static yyconst YY_CHAR yy_meta[60] = { 0, 1, 2, 3, 2, 1, 1, 1, 4, 1, 1, - 1, 1, 5, 6, 1, 6, 6, 6, 7, 8, - 8, 8, 8, 8, 1, 9, 10, 6, 8, 8, + 1, 1, 5, 6, 1, 6, 6, 1, 6, 1, + 7, 8, 8, 8, 8, 8, 1, 9, 10, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 11, 1, 12, 1 + 8, 8, 8, 8, 8, 11, 1, 12, 1 } ; -static yyconst flex_uint16_t yy_base[1116] = +static yyconst flex_uint16_t yy_base[1416] = { 0, - 0, 0, 0, 1, 2, 3, 8, 11, 14, 23, - 16, 17, 78, 0, 134, 0, 190, 0, 4, 25, - 246, 0, 26, 29, 30, 31, 301, 304, 307, 308, - 2540, 2539, 311, 312, 32, 33, 36, 42, 2549, 2548, - 17, 18, 2563, 2913, 2913, 2913, 2913, 2913, 2913, 2556, - 0, 2913, 2913, 2913, 0, 2913, 2913, 2913, 2913, 2913, - 2555, 2913, 2531, 2552, 0, 21, 2549, 367, 2913, 2913, - 2913, 317, 2913, 0, 310, 0, 2503, 2913, 422, 425, - 0, 428, 2913, 2913, 2528, 2913, 2913, 0, 2913, 2913, - 2913, 2521, 2913, 2913, 2543, 0, 2913, 2913, 2913, 2913, - - 2913, 2913, 0, 2913, 2913, 2913, 2913, 2913, 2913, 2913, - 0, 0, 2519, 2913, 0, 2913, 2913, 2913, 0, 0, - 2913, 2913, 2913, 0, 24, 2539, 2537, 2913, 2913, 2913, - 0, 24, 431, 434, 2913, 298, 284, 289, 283, 16, - 2503, 298, 2498, 438, 2509, 443, 2508, 448, 2511, 301, - 424, 2506, 2489, 32, 456, 2480, 0, 0, 327, 0, - 459, 462, 0, 480, 2495, 2498, 2913, 0, 2489, 2913, - 0, 0, 0, 2488, 0, 2520, 0, 488, 492, 2913, - 2502, 2499, 2493, 2489, 2493, 2476, 2482, 2485, 2487, 2485, - 2474, 302, 304, 442, 2471, 2484, 2472, 2463, 314, 2474, - - 463, 2464, 2461, 2466, 2478, 281, 418, 2455, 2471, 2459, - 308, 2461, 2457, 2468, 2467, 497, 2913, 2471, 2913, 2, - 2456, 468, 2458, 2448, 2452, 2441, 0, 2448, 2447, 2439, - 2443, 2450, 2439, 2444, 2429, 2434, 2441, 2440, 484, 2439, - 489, 2426, 2431, 2436, 2431, 2438, 2432, 2414, 2424, 2416, - 475, 2416, 2417, 2413, 481, 2428, 2420, 2427, 2418, 2424, - 2913, 523, 2411, 2406, 2409, 2403, 2411, 2401, 0, 2402, - 2404, 2404, 2397, 2401, 2395, 2392, 2403, 2386, 2382, 2385, - 575, 2387, 2395, 2382, 2382, 2389, 2392, 500, 2385, 2377, - 2407, 2384, 2383, 2366, 2362, 2366, 2381, 0, 2377, 2372, - - 2366, 2374, 2364, 483, 2376, 2369, 2356, 2368, 0, 2353, - 2364, 2351, 2364, 530, 534, 2353, 2344, 546, 2353, 2343, - 2333, 2353, 2349, 2348, 2336, 2346, 2336, 600, 2344, 2344, - 0, 0, 625, 524, 58, 650, 0, 0, 2331, 2333, - 2324, 2330, 2322, 2327, 2335, 2321, 2322, 2311, 2913, 2329, - 2327, 2326, 2323, 2322, 2312, 2323, 2306, 2300, 2305, 510, - 2314, 2314, 2299, 2300, 2291, 2309, 694, 2306, 2309, 2291, - 552, 2303, 2301, 2304, 558, 561, 2292, 2296, 2291, 2287, - 2297, 2286, 2292, 2291, 2273, 719, 551, 336, 744, 0, - 569, 2285, 569, 427, 471, 2274, 557, 2284, 2275, 2273, - - 2269, 550, 2265, 603, 2274, 2266, 2268, 2269, 2270, 2263, - 2267, 2249, 2270, 0, 2256, 2251, 2253, 2264, 2263, 2242, - 2249, 2249, 2248, 2253, 2250, 2248, 2243, 2233, 2233, 2248, - 2237, 0, 2237, 788, 593, 541, 813, 0, 621, 2235, - 2231, 2223, 2224, 2233, 616, 2220, 0, 2217, 2227, 2205, - 2212, 2207, 2210, 2219, 2217, 618, 553, 558, 2206, 590, - 2216, 2207, 2205, 2205, 567, 2201, 659, 641, 654, 857, - 435, 578, 666, 669, 2211, 2210, 2194, 2191, 2206, 2193, - 0, 2195, 2190, 2182, 2201, 2186, 2183, 2182, 0, 2173, - 2211, 2175, 2174, 2176, 2177, 2180, 2174, 2177, 2174, 2166, - - 2178, 660, 630, 633, 2163, 624, 2169, 2149, 2157, 2156, - 654, 2152, 701, 710, 713, 882, 2160, 2152, 2161, 2151, - 2152, 2153, 2154, 0, 0, 2143, 647, 2130, 0, 0, - 643, 722, 753, 769, 795, 0, 712, 672, 907, 0, - 2135, 2136, 2138, 2134, 2127, 2131, 2122, 2118, 2124, 2119, - 0, 2112, 2105, 2093, 2090, 0, 2913, 2106, 2102, 2086, - 2085, 2072, 2064, 2067, 2052, 2051, 2059, 702, 822, 837, - 864, 886, 0, 722, 726, 951, 0, 765, 776, 2064, - 2044, 748, 2037, 2039, 2029, 2030, 2022, 0, 2029, 2026, - 916, 929, 806, 737, 766, 2020, 709, 2020, 2008, 2006, - - 2005, 655, 1998, 958, 2008, 1997, 0, 2003, 1993, 0, - 1983, 0, 0, 2021, 1977, 1994, 2011, 0, 1977, 0, - 1984, 1979, 1977, 1971, 1965, 1978, 0, 1967, 1909, 1905, - 971, 975, 832, 769, 778, 1900, 779, 1909, 1887, 1895, - 1891, 787, 1886, 983, 910, 2913, 1000, 2913, 1882, 1891, - 889, 1054, 1886, 1889, 1880, 1893, 1870, 1879, 1869, 1003, - 1032, 791, 1038, 1045, 1049, 311, 2913, 1872, 1863, 0, - 1873, 0, 2913, 0, 1870, 2913, 0, 0, 1864, 0, - 1898, 1871, 1859, 0, 1857, 1849, 1058, 1080, 820, 1092, - 1105, 1109, 514, 2913, 1858, 0, 0, 900, 835, 1163, - - 0, 1857, 1837, 0, 1838, 1843, 1830, 1830, 1113, 1207, - 1837, 1833, 838, 402, 1835, 0, 1835, 1835, 0, 2913, - 1820, 1821, 1806, 1807, 1159, 1249, 1814, 1808, 841, 795, - 1805, 919, 838, 847, 1799, 890, 1809, 1778, 1786, 1781, - 856, 1776, 1134, 1777, 0, 1771, 1775, 1758, 1291, 1316, - 1188, 993, 889, 1341, 0, 1761, 1747, 904, 858, 1751, - 1742, 0, 1740, 1769, 1733, 1385, 1410, 1214, 1004, 911, - 1435, 0, 1736, 1721, 911, 926, 1126, 929, 1233, 1241, - 1297, 599, 2913, 1721, 0, 0, 1479, 0, 1237, 1012, - 973, 1504, 0, 1015, 976, 983, 1719, 985, 1729, 1717, - - 1708, 1708, 918, 1703, 1167, 1697, 1694, 1000, 1548, 1706, - 1690, 1722, 2913, 1584, 0, 1283, 1048, 1057, 1609, 0, - 1124, 1074, 1086, 1684, 993, 1693, 1674, 1673, 1662, 949, - 1654, 1180, 1633, 1633, 1022, 1653, 1183, 2913, 1627, 1614, - 1069, 1007, 1223, 0, 1127, 1102, 1105, 1591, 1093, 1595, - 1557, 1554, 1553, 1068, 1546, 1210, 1110, 1307, 1310, 1358, - 1530, 1689, 1714, 1351, 1243, 1134, 1739, 0, 1528, 0, - 2913, 0, 1252, 1138, 1156, 1518, 1128, 1527, 1490, 1474, - 1452, 1184, 1436, 1268, 1159, 1363, 1405, 1416, 1429, 1783, - 1808, 1430, 1353, 1181, 1833, 0, 1428, 1410, 1050, 1197, - - 1373, 2913, 1232, 1413, 1427, 1457, 1877, 0, 1444, 1425, - 1239, 1902, 0, 1447, 1266, 1274, 1406, 1284, 1391, 1381, - 1369, 1364, 1290, 1353, 1498, 1947, 1281, 1486, 1507, 1514, - 2002, 0, 1526, 1497, 1322, 2027, 0, 1507, 1332, 1347, - 1342, 1285, 1327, 1301, 1305, 1301, 1359, 1286, 1554, 1275, - 1259, 1290, 2071, 1568, 0, 1510, 1363, 1366, 1259, 1404, - 1247, 1234, 1221, 1206, 1412, 1189, 1529, 1376, 1574, 1588, - 1634, 0, 0, 1619, 0, 1587, 1438, 1460, 1186, 1508, - 1173, 1151, 1147, 1117, 1440, 1091, 1603, 1487, 1658, 1679, - 1683, 1086, 2107, 2132, 1692, 1601, 1526, 2157, 0, 1705, - - 1529, 1629, 1708, 1749, 1756, 1551, 1762, 1771, 1789, 2201, - 0, 1803, 1660, 1563, 2226, 0, 1798, 1566, 1603, 1036, - 1604, 1044, 989, 976, 957, 1599, 927, 1829, 2270, 1883, - 2309, 2006, 0, 1823, 1631, 1634, 900, 1632, 868, 831, - 835, 830, 1642, 814, 1852, 1683, 1857, 2022, 2052, 2348, - 2036, 2387, 2097, 1705, 2047, 2076, 2110, 2426, 2480, 2123, - 2101, 2113, 2126, 2534, 1897, 2913, 2589, 2601, 2613, 2625, - 2637, 2649, 2661, 2673, 2685, 2697, 2709, 2721, 2733, 2745, - 2757, 2769, 2781, 2791, 2801, 2810, 2818, 2827, 2829, 819, - 805, 2837, 2847, 2859, 2871, 2878, 2880, 2888, 803, 780, - - 762, 756, 750, 724, 722, 683, 676, 671, 623, 514, - 459, 23, 2900, 39, 323 + 0, 0, 0, 1, 2, 6, 14, 29, 11, 33, + 40, 45, 93, 0, 152, 0, 211, 0, 268, 271, + 319, 0, 16, 25, 376, 379, 381, 384, 387, 398, + 20, 378, 3307, 3306, 390, 403, 26, 37, 46, 49, + 3318, 3317, 23, 24, 3332, 3337, 3337, 3337, 3337, 3337, + 3337, 3325, 3337, 236, 3280, 0, 3337, 3326, 3337, 0, + 3337, 3325, 3337, 3337, 3337, 3337, 266, 3277, 3337, 3324, + 3337, 3297, 3294, 3317, 0, 3314, 3308, 3306, 22, 3311, + 461, 3288, 396, 3337, 3337, 3337, 3337, 519, 3314, 0, + 287, 0, 3260, 3337, 522, 525, 0, 528, 3337, 3337, + + 3337, 504, 3265, 3337, 0, 3337, 3337, 3311, 3278, 3337, + 3337, 3337, 410, 3262, 0, 3337, 3308, 0, 3337, 3307, + 3337, 3337, 3337, 3306, 0, 3337, 3337, 3337, 3337, 3337, + 3337, 3337, 0, 0, 3273, 3337, 0, 3337, 278, 3337, + 3272, 3263, 3270, 3273, 3268, 36, 3270, 0, 3298, 0, + 3297, 3337, 3264, 3255, 3262, 3265, 3260, 244, 3262, 3291, + 3259, 3337, 3337, 0, 3337, 3337, 3277, 45, 3281, 3268, + 3337, 3337, 3337, 0, 68, 532, 535, 3337, 265, 384, + 6, 274, 258, 3208, 267, 250, 546, 3215, 552, 390, + 559, 3218, 391, 564, 393, 3186, 36, 3337, 550, 416, + + 556, 572, 3167, 3203, 0, 0, 592, 0, 582, 605, + 0, 616, 3166, 3157, 3164, 3153, 3337, 3150, 3134, 3141, + 3142, 3137, 353, 3139, 0, 3157, 3107, 3337, 3114, 3099, + 3105, 3108, 2897, 405, 2899, 0, 2927, 0, 2926, 3337, + 0, 0, 2885, 0, 621, 627, 2881, 3337, 2880, 2880, + 2878, 2881, 265, 2874, 2875, 3337, 2874, 2874, 2872, 2874, + 384, 2867, 2875, 3337, 2905, 0, 630, 633, 3337, 2885, + 2882, 2876, 2872, 2876, 2876, 2857, 2864, 2868, 2869, 2867, + 2856, 514, 369, 2854, 535, 2851, 2865, 2853, 2853, 2842, + 413, 2854, 603, 2839, 2835, 2841, 2853, 408, 2852, 2847, + + 2849, 2827, 2836, 2839, 2826, 542, 599, 586, 2823, 2834, + 2827, 2837, 2821, 2821, 3337, 2820, 2820, 2818, 2821, 595, + 2814, 2827, 2813, 3337, 2812, 2812, 2810, 2813, 610, 2806, + 2819, 2804, 2803, 2802, 2814, 2800, 2799, 2797, 2809, 2794, + 646, 3337, 2813, 3337, 624, 2802, 503, 2795, 2804, 2794, + 2798, 2786, 0, 2790, 2788, 2779, 2778, 2787, 2794, 2789, + 2782, 2783, 2767, 2773, 2780, 2779, 2778, 628, 2777, 640, + 2763, 2769, 2774, 2769, 2776, 2771, 2752, 2763, 2753, 629, + 2753, 2755, 632, 2750, 2750, 621, 2765, 2757, 2764, 665, + 2736, 2743, 2753, 2750, 2758, 2740, 2739, 2738, 2750, 3337, + + 2736, 2735, 2734, 2746, 681, 2731, 2744, 2739, 2723, 2722, + 2735, 2734, 2719, 2732, 2722, 2717, 2716, 2711, 2715, 2708, + 2717, 2706, 2705, 0, 2706, 2709, 2709, 2706, 2711, 2700, + 2704, 2700, 2711, 2696, 2692, 2688, 2691, 736, 2698, 2706, + 2690, 2692, 2692, 2699, 2702, 646, 2694, 2686, 2718, 2693, + 2692, 2674, 2670, 2675, 2691, 0, 2687, 2678, 2671, 2679, + 2669, 2674, 2678, 2671, 2678, 388, 2671, 2658, 2658, 2670, + 0, 2655, 2666, 3337, 2651, 2652, 2661, 2664, 2645, 2658, + 2657, 2641, 2640, 2653, 2652, 2637, 693, 696, 2641, 2635, + 2634, 2647, 2637, 2627, 2625, 2638, 3337, 2629, 2628, 668, + + 2625, 703, 2634, 2624, 2609, 2627, 2629, 2625, 2624, 2611, + 2622, 2611, 2611, 763, 2619, 2605, 2618, 0, 0, 790, + 696, 670, 817, 0, 0, 2604, 2614, 666, 2597, 2604, + 2595, 2601, 2609, 2594, 2595, 2588, 3337, 2608, 2602, 2600, + 2597, 2596, 2586, 2597, 2584, 2577, 2579, 680, 0, 2577, + 2579, 2572, 2585, 2585, 2572, 2584, 2561, 2580, 864, 2577, + 2576, 2579, 718, 2559, 2563, 2557, 2556, 2569, 2559, 2553, + 2552, 2565, 721, 2564, 2559, 2546, 2556, 2544, 2540, 2539, + 2543, 2551, 2550, 725, 739, 2538, 2542, 2537, 2530, 2532, + 2542, 2531, 2541, 2541, 2536, 2521, 891, 718, 686, 918, + + 0, 752, 2534, 2532, 729, 714, 741, 2521, 684, 2531, + 2522, 2520, 2520, 610, 2516, 758, 2525, 2523, 2516, 2510, + 2512, 2513, 2514, 2507, 2511, 2492, 2514, 0, 2496, 2490, + 2493, 2504, 2502, 2480, 2487, 2487, 2481, 2486, 2487, 2486, + 2481, 2468, 2482, 2485, 2466, 2466, 2471, 2474, 0, 2467, + 965, 753, 766, 992, 0, 784, 795, 2469, 811, 808, + 2466, 2469, 2457, 2467, 2455, 2452, 2452, 2447, 2457, 2455, + 2440, 2446, 2455, 820, 2442, 0, 2438, 2442, 2465, 2419, + 2422, 2416, 2419, 2428, 2427, 2424, 810, 768, 773, 2412, + 767, 2421, 2408, 2406, 2406, 641, 2402, 840, 827, 834, + + 1039, 2394, 759, 800, 843, 868, 2411, 0, 2407, 2388, + 2383, 2380, 2396, 2383, 0, 2384, 2379, 2365, 2385, 2373, + 2370, 2368, 0, 2358, 2388, 2349, 2343, 2345, 2349, 2353, + 2335, 0, 2339, 2335, 2338, 2317, 2325, 2325, 858, 841, + 844, 2309, 806, 2319, 2299, 2304, 2296, 851, 2288, 884, + 908, 914, 1066, 928, 911, 2289, 921, 0, 2281, 2275, + 2274, 2278, 2266, 2270, 2261, 2265, 2266, 2266, 2267, 0, + 3337, 0, 2247, 856, 2234, 0, 0, 565, 847, 894, + 942, 971, 987, 0, 925, 885, 1093, 0, 2236, 2238, + 2234, 2226, 2221, 2228, 2215, 2220, 2207, 2147, 2158, 2153, + + 0, 2146, 2146, 2134, 2132, 0, 3337, 2149, 2140, 2128, + 2139, 34, 236, 268, 336, 431, 475, 492, 523, 911, + 1002, 1015, 1019, 1046, 0, 939, 942, 1140, 0, 1071, + 0, 1082, 559, 1100, 567, 577, 614, 615, 643, 996, + 665, 674, 692, 730, 725, 0, 0, 3337, 762, 787, + 1103, 1109, 986, 945, 955, 796, 943, 821, 835, 848, + 857, 916, 864, 1118, 892, 912, 906, 951, 949, 941, + 949, 0, 944, 0, 0, 1000, 959, 983, 1004, 0, + 973, 0, 992, 995, 997, 1001, 1007, 996, 996, 0, + 997, 1024, 1023, 1022, 1162, 1166, 1084, 1049, 1055, 1031, + + 1081, 1043, 1026, 1046, 1048, 1082, 1047, 1187, 1064, 1190, + 3337, 3337, 1193, 3337, 1067, 1069, 1069, 1084, 1086, 1196, + 1251, 1087, 1092, 1086, 1103, 1082, 1108, 1096, 1097, 1199, + 1216, 1133, 1231, 1235, 1267, 1139, 3337, 0, 1107, 1099, + 1145, 0, 0, 1120, 0, 3337, 0, 1124, 3337, 0, + 0, 1122, 0, 1130, 1136, 1172, 1145, 1132, 0, 1144, + 1156, 1279, 1288, 1193, 1292, 1296, 1300, 1173, 3337, 3337, + 1174, 1174, 1167, 1174, 0, 0, 1207, 1209, 1357, 0, + 1192, 1174, 0, 1182, 1190, 1180, 1190, 1194, 1353, 1404, + 1204, 1205, 1217, 1235, 1209, 0, 1221, 1222, 1225, 0, + + 0, 1224, 3337, 1228, 1234, 1228, 1236, 1367, 1448, 1247, + 1246, 1258, 1266, 1246, 1268, 1261, 0, 1298, 1294, 1301, + 1274, 1289, 1286, 1270, 1283, 1285, 1295, 1287, 1380, 1292, + 0, 1292, 1308, 1298, 1492, 1519, 1384, 1332, 1335, 1546, + 0, 1310, 1312, 1325, 1328, 1324, 3337, 1322, 0, 1355, + 1325, 1342, 1330, 1593, 1620, 1432, 1364, 1377, 1647, 0, + 1342, 1347, 1361, 1365, 1439, 1360, 1375, 1407, 1468, 1482, + 1499, 1389, 3337, 1365, 0, 0, 1694, 0, 1513, 1438, + 1423, 1721, 0, 1441, 1428, 1431, 1372, 1426, 1393, 1389, + 1390, 1395, 1433, 1416, 1476, 1417, 1421, 1444, 1768, 1440, + + 1426, 3337, 1470, 0, 1806, 0, 1526, 1472, 1482, 1833, + 0, 1536, 1495, 1526, 1446, 1472, 1466, 1466, 1482, 1490, + 1521, 1492, 1562, 1489, 1497, 1521, 1880, 1570, 3337, 1511, + 0, 1517, 1518, 1543, 1537, 1596, 0, 1586, 1567, 1573, + 1522, 1573, 1541, 1535, 1549, 1551, 1578, 1567, 1614, 1597, + 1627, 1636, 1663, 1571, 1918, 1945, 1642, 1626, 1609, 1972, + 0, 1572, 0, 3337, 0, 1640, 1636, 1642, 1588, 1628, + 1613, 1607, 1625, 1629, 1639, 1628, 1672, 1674, 1710, 1715, + 1725, 1629, 2019, 2046, 1731, 1715, 1677, 2073, 0, 0, + 1640, 1635, 1665, 1668, 1737, 1696, 1704, 1740, 1743, 1784, + + 2120, 0, 1788, 1733, 1742, 2147, 0, 1762, 1745, 1758, + 1656, 1760, 1669, 1684, 1708, 1723, 1748, 1723, 1796, 2195, + 1787, 1809, 1812, 1837, 2253, 0, 1856, 1827, 1789, 2280, + 0, 1836, 1808, 1812, 1749, 1814, 1767, 1764, 1776, 1789, + 1812, 1787, 1860, 1805, 1809, 1837, 2327, 1866, 1886, 0, + 1888, 1854, 1857, 1832, 1858, 1852, 1845, 1850, 1857, 1874, + 1861, 1907, 1896, 1913, 1922, 1939, 0, 0, 1935, 0, + 1935, 1928, 1937, 1882, 1898, 1895, 1903, 1915, 1921, 1933, + 1922, 1966, 1967, 1988, 1996, 2025, 1924, 2365, 2392, 1999, + 1978, 1992, 2419, 0, 2049, 1996, 2067, 2082, 2096, 2078, + + 1999, 2099, 2107, 2125, 2466, 0, 2258, 2077, 2002, 2493, + 0, 2126, 2009, 2023, 1934, 2023, 1952, 1943, 1967, 1990, + 2010, 1992, 2269, 2540, 2276, 2581, 2290, 0, 2129, 2056, + 2062, 1997, 2054, 2011, 2002, 2023, 2026, 2081, 2050, 2287, + 2100, 2304, 2333, 2347, 2622, 2355, 2663, 2368, 2136, 2361, + 2381, 2398, 2704, 2761, 2429, 2818, 2442, 2471, 2875, 2272, + 3337, 2933, 2945, 2957, 2969, 2981, 2993, 3005, 3017, 3029, + 3041, 3053, 3065, 3077, 3089, 3101, 3113, 3125, 3137, 3147, + 3157, 3166, 3174, 3183, 3185, 2096, 2105, 3193, 3203, 3213, + 3225, 3237, 3244, 3246, 3254, 2111, 2123, 2125, 2139, 2147, + + 2148, 2150, 3266, 2151, 2152, 2153, 2158, 2161, 2162, 2163, + 2164, 2165, 3278, 2166, 2167 } ; -static yyconst flex_int16_t yy_def[1116] = +static yyconst flex_int16_t yy_def[1416] = { 0, - 1067, 1067, 1068, 1068, 1069, 1069, 1070, 1070, 1071, 1071, - 1072, 1072, 1066, 13, 1066, 15, 1066, 17, 1073, 1073, - 1066, 21, 1074, 1074, 1075, 1075, 1076, 1076, 1077, 1077, - 1078, 1078, 1079, 1079, 1080, 1080, 1081, 1081, 1067, 1067, - 1082, 1082, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1083, 1066, 1066, 1066, 1084, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1085, 1066, 1086, 1066, 1066, 1066, - 1066, 1066, 1066, 1087, 1088, 1089, 1066, 1066, 1066, 1066, - 1090, 1066, 1066, 1066, 1066, 1066, 1066, 1091, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1092, 1066, 1066, 1066, 1066, - - 1066, 1066, 1093, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1094, 1094, 1066, 1066, 1095, 1066, 1066, 1066, 1083, 1084, - 1066, 1066, 1066, 1085, 1066, 1096, 1086, 1066, 1066, 1066, - 1097, 1097, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 1087, 1087, 1088, 1089, - 1066, 1066, 1090, 1066, 1066, 1066, 1066, 1091, 1066, 1066, - 1092, 1093, 1094, 1066, 1095, 1096, 1097, 1097, 1066, 1066, - 1066, 1098, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1066, 1066, 1066, 1066, 1066, 1066, 1098, 1066, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1066, 1066, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1066, 1066, 1066, 1066, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1066, 1066, 1066, 1066, 1099, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1066, 1066, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1066, 1066, 1066, 1066, 1100, - 1097, 1097, 336, 393, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1099, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1066, 1066, 1066, 1066, 1101, 1097, 1066, - 1066, 1066, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 389, 456, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1100, 1066, 1066, 1066, - 1097, 393, 1066, 1066, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 437, 502, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1101, 1066, 1066, 1066, 1066, 1066, 1066, 1097, - 1097, 1066, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 456, 1066, 1066, 1100, 1100, 470, 1066, 1066, 1066, 1102, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 502, 1066, 1066, - 1101, 1101, 516, 1066, 1066, 1066, 1103, 1066, 1066, 1066, - 1097, 1097, 1066, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1100, 1100, 539, 593, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1102, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1101, 1101, 576, 633, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1103, 1066, 1066, 1066, 1066, 1066, 1097, - 1066, 1066, 1066, 1097, 1097, 1097, 1097, 1066, 1066, 1100, - 1100, 593, 1066, 1066, 1102, 665, 1066, 1097, 1097, 1097, - 1097, 1097, 1066, 1097, 1097, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 1101, 1101, 633, 1066, - 1066, 1103, 692, 1066, 1066, 1097, 652, 1066, 1066, 1066, - - 1104, 1066, 1097, 1097, 1097, 1097, 1066, 1066, 1100, 1100, - 1066, 1066, 665, 665, 1097, 1097, 1097, 1097, 1097, 1066, - 1097, 1097, 1066, 1066, 1101, 1101, 1066, 1066, 692, 692, - 1066, 700, 732, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1104, 1066, 1097, 1097, 1097, 1066, 1066, 710, - 749, 1066, 1066, 1066, 1105, 1066, 1066, 665, 665, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 726, 766, 1066, 1066, - 1066, 1106, 1066, 1066, 692, 692, 1066, 732, 1066, 1066, - 1104, 781, 1066, 1066, 1097, 1097, 1066, 749, 787, 1066, - 1066, 1066, 1107, 754, 794, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1066, 1105, 1066, 1066, 665, 665, 1097, - 1097, 1097, 1066, 1066, 766, 814, 1066, 1066, 1066, 1108, - 771, 821, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1106, 1066, 1066, 692, 692, 1066, 1066, 1066, 1066, - 781, 781, 1066, 787, 792, 845, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1107, 794, 1066, 1066, 1105, - 1066, 1066, 809, 862, 1066, 1066, 1066, 1109, 1097, 1097, - 1066, 814, 819, 873, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1108, 821, 1066, 1066, 1106, 1066, 1066, - 836, 890, 1066, 1066, 1066, 1110, 1066, 1066, 781, 781, - - 1066, 1066, 845, 1066, 1066, 1105, 1066, 862, 907, 1066, - 1066, 1066, 1111, 867, 914, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1109, 1066, 873, 1066, 1066, 1106, - 1066, 890, 931, 1066, 1066, 1066, 1112, 895, 938, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1110, 1066, - 1066, 781, 781, 1105, 907, 912, 956, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1111, 914, 1066, 1066, - 1109, 1113, 926, 1106, 931, 936, 976, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1112, 938, 1066, 1066, - 1110, 1066, 1066, 953, 993, 1066, 1066, 1066, 1114, 1105, - - 956, 1066, 1066, 1109, 1106, 976, 1066, 1066, 1110, 1066, - 993, 1010, 1066, 1066, 1066, 1115, 998, 1017, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1114, 1105, 1109, - 1106, 1110, 1010, 1015, 1034, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1115, 1017, 1066, 1066, 1114, 1066, - 1109, 1066, 1110, 1034, 1066, 1066, 1114, 1109, 1110, 1114, - 907, 931, 1114, 1114, 1012, 0, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066 + 1362, 1362, 1363, 1363, 1364, 1364, 1365, 1365, 1366, 1366, + 1367, 1367, 1361, 13, 1361, 15, 1361, 17, 1368, 1368, + 1361, 21, 1369, 1369, 1370, 1370, 1371, 1371, 1372, 1372, + 1373, 1373, 1374, 1374, 1375, 1375, 1376, 1376, 1377, 1377, + 1362, 1362, 1378, 1378, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1379, 1361, 1361, 1361, 1380, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1381, 1361, 1361, 1361, 1361, 1382, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1383, + 1384, 1385, 1361, 1361, 1361, 1361, 1386, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1387, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1388, 1361, 1361, 1389, 1361, 1361, + 1361, 1361, 1361, 1361, 1390, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1391, 1391, 1361, 1361, 1392, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1379, 1361, 1380, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1381, 1361, 1361, 1361, 1361, 1393, 1382, + 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1361, 1361, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1383, 1383, 1384, 1385, 1361, 1361, + 1386, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1387, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1388, 1361, 1389, 1361, 1361, + 1390, 1391, 1361, 1392, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1393, 1394, 1394, 1361, 1361, 1361, + 1395, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1395, 1361, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1361, 1396, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1361, + + 1397, 1394, 1394, 1394, 523, 605, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1396, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1361, 1361, 1361, 1361, 1398, 1394, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 600, 687, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1397, 1361, 1361, + + 1361, 1394, 1394, 605, 1361, 1361, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 654, 739, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1398, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1399, 1361, 1361, + 1361, 1361, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 687, 1361, + 1361, 1397, 1397, 701, 1361, 1361, 1361, 1400, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 739, + 1361, 1361, 1398, 1398, 753, 1361, 1361, 1361, 1401, 1361, + 1402, 1361, 1399, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1394, 1403, 1361, 1361, 1361, + 1397, 1397, 787, 853, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1400, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1361, 1361, 1398, 1398, 828, 897, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1401, 1402, 1361, + 1361, 1361, 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1394, 1394, 1394, 1394, 1403, 1361, 1361, 1397, + 1397, 853, 1361, 1361, 1400, 935, 1361, 1394, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1361, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1398, 1398, 897, 1361, 1361, 1401, 967, 1361, 1361, + 1361, 1394, 1394, 1394, 1394, 921, 1361, 1361, 1361, 1404, + 1361, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1397, 1397, + 1361, 1361, 935, 935, 1394, 1394, 1361, 1394, 1394, 1394, + + 1394, 1394, 1361, 1394, 1394, 1361, 1361, 1398, 1398, 1361, + 1361, 967, 967, 1361, 1394, 1394, 1394, 979, 1018, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1404, 1361, + 1394, 1394, 1394, 1361, 1361, 990, 1035, 1361, 1361, 1361, + 1405, 1361, 1361, 935, 935, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1361, 1361, 1009, 1054, 1361, 1361, 1361, 1406, + 1361, 1361, 967, 967, 1361, 1394, 1394, 1018, 1361, 1361, + 1404, 1071, 1361, 1361, 1394, 1394, 1361, 1035, 1077, 1361, + 1361, 1361, 1407, 1040, 1084, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1405, 1361, 1361, 935, 935, 1394, + + 1394, 1361, 1394, 1394, 1361, 1054, 1105, 1361, 1361, 1361, + 1408, 1059, 1112, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1406, 1361, 1361, 967, 967, 1361, 1361, 1394, + 1394, 1361, 1361, 1071, 1071, 1361, 1077, 1082, 1138, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1407, 1084, + 1361, 1361, 1405, 1361, 1361, 1099, 1155, 1361, 1361, 1361, + 1409, 1394, 1394, 1361, 1105, 1110, 1166, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1408, 1112, 1361, 1361, + 1406, 1361, 1361, 1127, 1183, 1361, 1361, 1361, 1410, 1394, + 1361, 1361, 1071, 1071, 1361, 1361, 1138, 1361, 1361, 1405, + + 1361, 1155, 1201, 1361, 1361, 1361, 1411, 1160, 1208, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1409, 1361, + 1166, 1361, 1361, 1406, 1361, 1183, 1225, 1361, 1361, 1361, + 1412, 1188, 1232, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1410, 1361, 1361, 1071, 1071, 1361, 1405, 1201, + 1206, 1251, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1411, 1208, 1361, 1361, 1409, 1413, 1220, 1406, 1225, + 1230, 1271, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1412, 1232, 1361, 1361, 1410, 1361, 1361, 1247, 1288, + 1361, 1361, 1361, 1414, 1405, 1251, 1361, 1361, 1409, 1406, + + 1271, 1361, 1361, 1410, 1361, 1288, 1305, 1361, 1361, 1361, + 1415, 1293, 1312, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1414, 1405, 1409, 1406, 1410, 1305, 1310, 1329, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1415, + 1312, 1361, 1361, 1414, 1361, 1409, 1361, 1410, 1329, 1361, + 1361, 1414, 1409, 1410, 1414, 1361, 1225, 1414, 1414, 1307, + 0, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361 } ; -static yyconst flex_uint16_t yy_nxt[2970] = +static yyconst flex_uint16_t yy_nxt[3397] = { 0, - 1066, 1066, 46, 46, 49, 49, 84, 50, 50, 52, - 53, 52, 52, 53, 52, 56, 57, 56, 59, 59, - 52, 60, 60, 52, 56, 57, 56, 84, 91, 85, - 987, 91, 94, 94, 44, 44, 125, 125, 112, 125, - 125, 61, 61, 178, 112, 178, 1028, 263, 188, 264, - 85, 92, 47, 47, 92, 95, 95, 189, 110, 110, - 52, 113, 54, 52, 210, 54, 56, 113, 56, 116, - 116, 117, 117, 393, 393, 56, 211, 56, 62, 62, - 62, 62, 63, 64, 65, 62, 62, 62, 62, 62, - 62, 62, 62, 66, 66, 62, 62, 67, 67, 67, - - 67, 67, 62, 68, 62, 62, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 69, 69, 69, 70, 71, 72, 73, 72, 71, 71, - 71, 74, 71, 71, 71, 71, 71, 74, 71, 75, - 75, 74, 75, 75, 75, 75, 75, 75, 71, 76, - 71, 74, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 77, 71, 71, 71, - 78, 79, 80, 79, 78, 78, 78, 78, 78, 78, - - 78, 78, 78, 78, 78, 78, 78, 78, 78, 81, - 81, 81, 81, 81, 78, 78, 78, 78, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 82, 78, 78, 78, 86, 86, 87, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 88, 88, 88, 88, 88, - 86, 86, 86, 86, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 86, 86, - - 89, 86, 97, 98, 97, 97, 98, 97, 181, 44, - 44, 250, 178, 44, 44, 183, 178, 158, 155, 186, - 155, 184, 182, 158, 187, 185, 251, 158, 191, 200, - 1045, 100, 100, 201, 158, 106, 106, 158, 229, 192, - 158, 231, 202, 230, 158, 257, 232, 604, 240, 714, - 258, 456, 456, 97, 158, 97, 97, 241, 97, 101, - 101, 102, 102, 107, 107, 108, 108, 128, 128, 156, - 129, 128, 128, 128, 128, 130, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 131, 132, 131, 131, 133, - 134, 135, 136, 128, 128, 137, 138, 139, 140, 141, - - 142, 131, 143, 144, 145, 146, 131, 147, 148, 149, - 150, 151, 152, 153, 154, 131, 131, 131, 131, 128, - 128, 128, 128, 161, 161, 161, 161, 161, 161, 164, - 164, 164, 179, 180, 179, 179, 180, 179, 604, 179, - 180, 179, 1066, 1066, 179, 180, 179, 252, 759, 179, - 180, 179, 203, 204, 205, 178, 206, 155, 253, 155, - 161, 161, 161, 164, 164, 164, 967, 165, 178, 541, - 207, 196, 233, 234, 162, 166, 542, 162, 194, 197, - 178, 164, 164, 164, 235, 180, 472, 472, 180, 216, - 217, 216, 180, 179, 180, 179, 243, 180, 216, 217, - - 216, 165, 180, 244, 266, 301, 267, 245, 156, 166, - 307, 162, 268, 302, 284, 361, 285, 289, 290, 165, - 303, 949, 286, 308, 314, 314, 314, 166, 287, 362, - 344, 314, 314, 314, 291, 371, 371, 371, 335, 336, - 336, 425, 217, 345, 346, 426, 180, 375, 375, 375, - 644, 217, 730, 371, 371, 371, 502, 502, 427, 375, - 375, 375, 445, 445, 445, 388, 389, 389, 1066, 1066, - 468, 468, 468, 531, 531, 315, 333, 333, 333, 469, - 473, 372, 315, 1066, 393, 393, 334, 473, 334, 335, - 336, 336, 446, 472, 472, 473, 473, 532, 376, 372, - - 337, 386, 386, 386, 474, 474, 474, 436, 437, 437, - 376, 387, 532, 387, 388, 389, 389, 445, 445, 445, - 532, 470, 514, 514, 514, 390, 333, 333, 333, 532, - 925, 515, 1066, 456, 456, 743, 334, 842, 334, 335, - 336, 336, 468, 468, 468, 1066, 1066, 446, 568, 568, - 337, 394, 394, 394, 569, 468, 468, 468, 531, 531, - 533, 533, 533, 569, 395, 336, 336, 474, 474, 474, - 474, 474, 474, 516, 1066, 502, 502, 586, 884, 396, - 397, 398, 399, 856, 569, 663, 400, 593, 593, 401, - 832, 587, 402, 470, 403, 434, 434, 434, 534, 569, - - 663, 535, 570, 570, 570, 435, 470, 435, 436, 437, - 437, 514, 514, 514, 514, 514, 514, 568, 568, 438, - 386, 386, 386, 533, 533, 533, 538, 539, 539, 805, - 387, 743, 387, 388, 389, 389, 575, 576, 576, 663, - 571, 633, 633, 572, 390, 457, 457, 457, 663, 651, - 651, 651, 1066, 1066, 533, 533, 533, 644, 458, 389, - 389, 589, 516, 604, 590, 516, 645, 645, 645, 513, - 533, 533, 533, 459, 460, 461, 462, 647, 647, 647, - 463, 662, 662, 464, 1066, 1066, 465, 467, 466, 434, - 434, 434, 589, 689, 689, 590, 533, 533, 533, 435, - - 652, 435, 436, 437, 437, 591, 662, 662, 534, 690, - 404, 535, 168, 438, 503, 503, 503, 690, 690, 646, - 1066, 593, 593, 570, 570, 570, 163, 504, 437, 437, - 648, 644, 690, 592, 534, 689, 689, 535, 570, 570, - 570, 776, 505, 506, 507, 508, 1066, 633, 633, 509, - 732, 732, 510, 1066, 1066, 511, 1055, 512, 536, 536, - 536, 629, 778, 778, 630, 570, 570, 570, 537, 1055, - 537, 538, 539, 539, 604, 1055, 629, 644, 758, 630, - 1055, 775, 540, 573, 573, 573, 779, 570, 570, 570, - 651, 651, 651, 574, 604, 574, 575, 576, 576, 1055, - - 631, 779, 809, 571, 794, 794, 572, 577, 594, 594, - 594, 645, 645, 645, 699, 700, 700, 533, 533, 533, - 779, 595, 539, 539, 632, 571, 821, 821, 572, 779, - 533, 533, 533, 1066, 732, 732, 596, 597, 598, 599, - 604, 652, 1055, 600, 778, 778, 601, 644, 858, 602, - 808, 603, 634, 634, 634, 534, 660, 835, 535, 664, - 664, 664, 644, 858, 646, 635, 576, 576, 534, 1047, - 836, 535, 570, 570, 570, 661, 570, 570, 570, 886, - 636, 637, 638, 639, 691, 691, 691, 640, 845, 845, - 641, 1066, 1066, 642, 886, 643, 1047, 665, 857, 857, - - 666, 647, 647, 647, 533, 533, 533, 753, 754, 754, - 571, 687, 667, 572, 571, 858, 1047, 572, 770, 771, - 771, 688, 692, 886, 858, 693, 791, 792, 792, 1066, - 794, 794, 886, 533, 533, 533, 604, 694, 1047, 664, - 664, 664, 534, 743, 863, 535, 664, 664, 664, 709, - 664, 664, 664, 900, 648, 697, 697, 697, 644, 570, - 570, 570, 818, 819, 819, 698, 891, 698, 699, 700, - 700, 534, 873, 873, 535, 1047, 710, 711, 1047, 701, - 712, 570, 570, 570, 711, 713, 743, 712, 665, 1066, - 1066, 666, 667, 691, 691, 691, 952, 571, 904, 667, - - 572, 885, 885, 667, 725, 743, 691, 691, 691, 899, - 691, 691, 691, 904, 533, 533, 533, 1066, 1066, 571, - 903, 903, 572, 904, 726, 857, 857, 837, 837, 837, - 1010, 727, 904, 1007, 728, 780, 780, 780, 1066, 821, - 821, 1066, 845, 845, 727, 729, 694, 728, 692, 914, - 914, 693, 534, 1066, 1066, 535, 1007, 750, 928, 694, - 570, 570, 570, 694, 733, 733, 733, 928, 859, 859, - 859, 927, 927, 781, 885, 885, 782, 734, 700, 700, - 838, 887, 887, 887, 837, 837, 837, 1007, 783, 751, - 751, 751, 735, 736, 737, 738, 938, 938, 571, 739, - - 1007, 572, 740, 767, 1007, 741, 860, 742, 751, 751, - 751, 905, 905, 905, 928, 768, 768, 768, 752, 888, - 752, 753, 754, 754, 901, 901, 901, 589, 1007, 928, - 590, 1002, 755, 743, 780, 780, 780, 838, 789, 789, - 789, 953, 780, 780, 780, 1002, 534, 903, 903, 535, - 768, 768, 768, 629, 956, 956, 630, 866, 867, 867, - 769, 1002, 769, 770, 771, 771, 1066, 873, 873, 929, - 929, 929, 839, 1002, 772, 840, 589, 902, 1002, 590, - 839, 1066, 1066, 840, 816, 816, 816, 783, 571, 968, - 968, 572, 788, 788, 788, 783, 927, 927, 780, 780, - - 780, 1002, 752, 993, 752, 753, 754, 754, 859, 859, - 859, 859, 859, 859, 969, 989, 755, 789, 789, 789, - 969, 992, 629, 969, 989, 630, 743, 790, 989, 790, - 791, 792, 792, 841, 994, 969, 781, 976, 976, 782, - 989, 793, 795, 795, 795, 989, 589, 1066, 1066, 589, - 989, 783, 864, 864, 864, 796, 754, 754, 989, 859, - 859, 859, 988, 988, 887, 887, 887, 894, 895, 895, - 797, 798, 799, 800, 901, 901, 901, 801, 1066, 1066, - 802, 1001, 1001, 803, 989, 804, 815, 815, 815, 989, - 711, 968, 968, 712, 906, 969, 769, 860, 769, 770, - - 771, 771, 629, 969, 989, 667, 887, 887, 887, 969, - 772, 816, 816, 816, 905, 905, 905, 887, 887, 887, - 969, 817, 969, 817, 818, 819, 819, 902, 905, 905, - 905, 892, 892, 892, 1002, 820, 822, 822, 822, 911, - 912, 912, 1002, 1002, 629, 909, 909, 909, 969, 823, - 771, 771, 930, 1066, 1066, 888, 951, 1002, 859, 859, - 859, 1066, 914, 914, 824, 825, 826, 827, 950, 727, - 1007, 828, 728, 931, 829, 1006, 1006, 830, 928, 831, - 844, 844, 844, 711, 694, 1007, 712, 929, 929, 929, - 790, 928, 790, 791, 792, 792, 860, 954, 667, 970, - - 970, 970, 988, 988, 793, 846, 846, 846, 929, 929, - 929, 935, 936, 936, 928, 887, 887, 887, 847, 792, - 792, 1066, 938, 938, 1066, 956, 956, 933, 933, 933, - 1003, 1003, 1003, 848, 849, 850, 851, 971, 1007, 928, - 852, 1017, 1017, 853, 1001, 1001, 854, 1007, 855, 864, - 864, 864, 667, 888, 974, 990, 990, 990, 928, 865, - 928, 865, 866, 867, 867, 727, 1006, 1006, 728, 859, - 859, 859, 926, 868, 907, 970, 970, 970, 1034, 1034, - 694, 1066, 1066, 667, 604, 872, 872, 872, 904, 970, - 970, 970, 904, 991, 904, 817, 904, 817, 818, 819, - - 819, 1066, 976, 976, 1008, 1008, 1008, 860, 694, 820, - 874, 874, 874, 711, 1000, 997, 998, 998, 1046, 1046, - 887, 887, 887, 875, 819, 819, 904, 711, 667, 1047, - 1003, 1003, 1003, 904, 1047, 970, 970, 970, 876, 877, - 878, 879, 667, 1047, 1047, 880, 1066, 1066, 881, 1054, - 1054, 882, 898, 883, 892, 892, 892, 694, 888, 990, - 990, 990, 1055, 897, 893, 1005, 893, 894, 895, 895, - 1004, 1055, 1055, 971, 1014, 1015, 1015, 890, 896, 889, - 990, 990, 990, 667, 990, 990, 990, 1055, 667, 644, - 908, 908, 908, 995, 995, 995, 886, 727, 1046, 1046, - - 865, 886, 865, 866, 867, 867, 859, 859, 859, 1003, - 1003, 1003, 694, 886, 868, 909, 909, 909, 727, 1009, - 1054, 1054, 991, 886, 886, 910, 886, 910, 911, 912, - 912, 839, 871, 694, 840, 870, 869, 694, 862, 913, - 915, 915, 915, 861, 860, 858, 783, 858, 858, 1029, - 970, 970, 970, 916, 867, 867, 858, 887, 887, 887, - 858, 858, 667, 1008, 1008, 1008, 843, 834, 917, 918, - 919, 920, 1008, 1008, 1008, 921, 833, 814, 922, 813, - 812, 923, 811, 924, 932, 932, 932, 810, 971, 1030, - 990, 990, 990, 807, 893, 888, 893, 894, 895, 895, - - 1031, 806, 787, 667, 1012, 1012, 1012, 786, 896, 933, - 933, 933, 1066, 1017, 1017, 785, 694, 784, 779, 934, - 779, 934, 935, 936, 936, 694, 779, 779, 991, 1032, - 1048, 1048, 1048, 937, 939, 939, 939, 1066, 1034, 1034, - 779, 779, 839, 694, 777, 840, 774, 940, 895, 895, - 773, 766, 765, 1056, 1056, 1056, 764, 783, 1048, 1048, - 1048, 763, 941, 942, 943, 944, 762, 761, 1049, 945, - 760, 757, 946, 756, 749, 947, 748, 948, 955, 955, - 955, 747, 746, 783, 970, 970, 970, 745, 910, 744, - 910, 911, 912, 912, 731, 724, 839, 723, 1065, 1065, - - 1065, 722, 913, 957, 957, 957, 783, 721, 720, 719, - 718, 783, 717, 716, 715, 708, 958, 912, 912, 707, - 706, 705, 971, 704, 703, 702, 696, 695, 690, 1051, - 690, 959, 960, 961, 962, 690, 690, 667, 963, 1066, - 690, 964, 690, 686, 965, 685, 966, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 973, 973, 973, 973, 973, - 973, 972, 972, 972, 972, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, 973, 684, - - 972, 972, 972, 975, 975, 975, 683, 990, 990, 990, - 682, 681, 680, 934, 679, 934, 935, 936, 936, 678, - 677, 676, 675, 1048, 1048, 1048, 674, 937, 977, 977, - 977, 673, 672, 671, 670, 669, 668, 970, 970, 970, - 663, 978, 936, 936, 663, 991, 663, 663, 1056, 1056, - 1056, 663, 1053, 1048, 1048, 1048, 979, 980, 981, 982, - 694, 839, 663, 983, 659, 658, 984, 657, 656, 985, - 655, 986, 995, 995, 995, 971, 783, 1056, 1056, 1056, - 1058, 654, 996, 653, 996, 997, 998, 998, 1057, 650, - 667, 1049, 649, 628, 627, 626, 999, 625, 990, 990, - - 990, 783, 1061, 1061, 1061, 624, 783, 743, 1011, 1011, - 1011, 1048, 1048, 1048, 1062, 1062, 1062, 623, 996, 622, - 996, 997, 998, 998, 1048, 1048, 1048, 1048, 1048, 1048, - 783, 621, 999, 1012, 1012, 1012, 991, 620, 619, 618, - 711, 1059, 617, 1013, 616, 1013, 1014, 1015, 1015, 1049, - 1060, 694, 727, 615, 614, 667, 613, 1016, 1018, 1018, - 1018, 612, 1049, 611, 783, 1049, 610, 694, 609, 1063, - 1064, 1019, 998, 998, 608, 607, 606, 783, 605, 588, - 783, 585, 584, 583, 582, 581, 1020, 1021, 1022, 1023, - 580, 579, 578, 1024, 569, 569, 1025, 569, 569, 1026, - - 569, 1027, 1033, 1033, 1033, 569, 567, 566, 565, 564, - 563, 562, 1013, 561, 1013, 1014, 1015, 1015, 560, 559, - 558, 557, 556, 555, 554, 553, 1016, 1035, 1035, 1035, - 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 1036, 1015, 1015, 532, 532, 532, 532, 532, 532, 530, - 529, 528, 527, 526, 525, 1037, 1038, 1039, 1040, 524, - 523, 522, 1041, 521, 520, 1042, 519, 518, 1043, 517, - 1044, 1050, 1050, 1050, 501, 500, 499, 498, 497, 496, - 495, 790, 494, 790, 791, 792, 792, 493, 492, 491, - 490, 489, 488, 487, 486, 793, 485, 484, 483, 482, - - 481, 480, 479, 478, 477, 476, 475, 473, 473, 860, - 1052, 1052, 1052, 473, 473, 473, 473, 471, 455, 454, - 817, 453, 817, 818, 819, 819, 452, 451, 450, 449, - 448, 447, 444, 443, 820, 442, 441, 440, 439, 433, - 432, 431, 430, 429, 428, 424, 423, 422, 888, 1050, - 1050, 1050, 421, 420, 419, 418, 417, 416, 415, 790, - 414, 790, 791, 792, 792, 413, 412, 411, 410, 409, - 408, 407, 406, 793, 405, 392, 391, 385, 384, 383, - 382, 381, 380, 379, 378, 377, 374, 589, 1052, 1052, - 1052, 373, 370, 369, 368, 367, 366, 365, 817, 364, - - 817, 818, 819, 819, 363, 360, 359, 358, 357, 356, - 355, 354, 820, 353, 352, 351, 350, 349, 348, 347, - 343, 342, 341, 340, 339, 338, 629, 1061, 1061, 1061, - 332, 331, 330, 329, 328, 327, 326, 910, 325, 910, - 911, 912, 912, 324, 323, 322, 321, 320, 319, 318, - 317, 913, 316, 313, 312, 311, 310, 309, 306, 305, - 304, 300, 299, 298, 297, 971, 296, 295, 294, 293, - 292, 288, 283, 282, 281, 280, 279, 278, 277, 276, - 667, 1062, 1062, 1062, 275, 274, 273, 272, 271, 270, - 269, 934, 265, 934, 935, 936, 936, 219, 262, 261, - - 260, 259, 256, 255, 254, 937, 249, 248, 247, 246, - 242, 239, 238, 237, 236, 228, 227, 226, 225, 991, - 224, 223, 222, 221, 220, 219, 182, 1066, 215, 214, - 213, 212, 156, 209, 694, 1065, 1065, 1065, 208, 199, - 198, 195, 193, 190, 126, 1013, 126, 1013, 1014, 1015, - 1015, 174, 170, 169, 167, 156, 126, 123, 122, 1016, - 121, 118, 1066, 114, 114, 104, 104, 1066, 1066, 1066, - 1066, 1066, 1066, 1049, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 783, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 96, 96, 96, - - 96, 96, 96, 96, 96, 96, 96, 96, 96, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 119, 1066, 1066, 119, 1066, 119, 119, 119, 119, - 119, 120, 1066, 1066, 120, 120, 120, 120, 120, 120, - - 120, 124, 124, 1066, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 127, 1066, 1066, 1066, 127, 157, 1066, - 1066, 157, 157, 157, 157, 157, 157, 157, 1066, 157, - 159, 1066, 159, 159, 159, 160, 160, 171, 1066, 1066, - 171, 171, 171, 171, 171, 171, 171, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 1066, 172, 172, 173, - 173, 173, 173, 173, 173, 173, 173, 1066, 173, 173, - 173, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 176, 1066, 1066, 1066, 176, 177, 177, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 1066, 972, 43, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066 + 1361, 1361, 48, 48, 51, 1361, 1361, 52, 51, 1361, + 1361, 52, 61, 62, 61, 57, 58, 57, 108, 53, + 53, 53, 46, 53, 53, 53, 57, 108, 46, 54, + 57, 58, 57, 54, 61, 62, 61, 168, 168, 46, + 273, 57, 64, 109, 274, 65, 122, 64, 134, 55, + 65, 134, 109, 55, 132, 49, 49, 66, 66, 66, + 168, 168, 66, 66, 66, 132, 61, 67, 61, 57, + 305, 59, 67, 135, 252, 123, 135, 124, 138, 138, + 139, 139, 885, 306, 57, 253, 59, 68, 61, 267, + 61, 267, 68, 69, 70, 71, 72, 73, 74, 75, + + 76, 69, 69, 69, 69, 77, 78, 69, 79, 79, + 69, 69, 69, 69, 80, 80, 80, 80, 80, 69, + 81, 69, 82, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 83, 84, + 85, 86, 87, 88, 89, 88, 87, 87, 87, 90, + 87, 87, 87, 87, 87, 90, 87, 91, 91, 87, + 90, 87, 91, 91, 91, 91, 91, 91, 87, 92, + 87, 90, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + + 91, 91, 91, 91, 91, 91, 91, 93, 87, 87, + 87, 94, 95, 96, 95, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 97, 97, 97, 97, 97, 94, 94, 94, + 94, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 98, 94, 94, 94, + 100, 152, 141, 100, 142, 270, 143, 144, 145, 245, + 246, 245, 260, 146, 886, 101, 101, 101, 101, 101, + 101, 271, 278, 261, 206, 102, 333, 283, 102, 281, + + 206, 279, 153, 284, 154, 206, 155, 156, 157, 334, + 282, 275, 276, 158, 887, 103, 206, 277, 103, 104, + 104, 46, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 105, 105, 105, 105, 105, 104, 104, 104, 104, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 104, 104, 106, 104, 111, 888, + 46, 111, 116, 117, 116, 116, 117, 116, 119, 120, + 119, 319, 46, 112, 112, 112, 112, 112, 112, 119, + + 120, 119, 320, 113, 122, 46, 113, 199, 358, 199, + 200, 201, 201, 359, 267, 337, 128, 272, 267, 228, + 289, 292, 553, 114, 290, 293, 114, 302, 338, 128, + 303, 307, 307, 123, 294, 124, 116, 554, 116, 116, + 379, 116, 119, 328, 119, 129, 229, 130, 230, 369, + 231, 232, 233, 119, 329, 119, 380, 234, 129, 370, + 130, 171, 171, 889, 172, 171, 171, 171, 171, 173, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 174, 175, 174, 174, 176, 177, 178, 179, 171, + 171, 180, 181, 182, 183, 184, 185, 174, 186, 187, + + 188, 189, 174, 190, 191, 192, 174, 193, 194, 195, + 196, 197, 174, 174, 174, 174, 171, 171, 171, 171, + 202, 890, 202, 209, 209, 209, 209, 209, 209, 212, + 212, 212, 217, 268, 269, 268, 268, 269, 268, 891, + 218, 420, 219, 421, 220, 221, 222, 268, 269, 268, + 422, 223, 355, 268, 269, 268, 356, 357, 267, 892, + 268, 269, 268, 213, 200, 201, 201, 361, 362, 214, + 308, 201, 201, 202, 203, 202, 215, 210, 216, 363, + 210, 388, 287, 209, 209, 209, 389, 912, 285, 269, + 288, 847, 269, 267, 295, 296, 297, 915, 298, 206, + + 309, 390, 390, 269, 299, 206, 212, 212, 212, 269, + 206, 267, 300, 301, 307, 307, 269, 212, 212, 212, + 848, 206, 245, 246, 245, 916, 397, 203, 245, 246, + 245, 341, 342, 341, 268, 269, 268, 210, 372, 398, + 213, 402, 705, 309, 917, 373, 214, 341, 342, 341, + 374, 213, 469, 215, 403, 216, 415, 214, 705, 416, + 442, 459, 443, 918, 215, 470, 216, 464, 444, 460, + 447, 448, 417, 780, 418, 445, 465, 461, 532, 466, + 390, 390, 487, 487, 487, 605, 605, 342, 449, 780, + 269, 919, 533, 534, 487, 487, 487, 573, 573, 573, + + 581, 687, 687, 342, 584, 584, 584, 619, 582, 309, + 522, 523, 523, 639, 922, 620, 705, 640, 923, 659, + 659, 659, 573, 573, 573, 705, 584, 584, 584, 1361, + 1361, 641, 599, 600, 600, 924, 488, 520, 520, 520, + 674, 674, 674, 1361, 605, 605, 574, 521, 488, 521, + 522, 523, 523, 699, 699, 699, 704, 704, 585, 706, + 706, 706, 700, 524, 597, 597, 597, 653, 654, 654, + 925, 574, 675, 926, 598, 660, 598, 599, 600, 600, + 585, 739, 739, 1361, 1361, 751, 751, 751, 779, 779, + 601, 520, 520, 520, 752, 790, 754, 754, 754, 780, + + 928, 521, 791, 521, 522, 523, 523, 701, 780, 757, + 757, 757, 659, 659, 659, 704, 704, 524, 606, 606, + 606, 674, 674, 674, 1361, 687, 687, 929, 699, 699, + 699, 607, 523, 523, 758, 699, 699, 699, 821, 753, + 933, 781, 781, 781, 706, 706, 706, 821, 608, 609, + 610, 611, 755, 675, 933, 612, 1361, 1361, 613, 820, + 820, 614, 779, 779, 615, 651, 651, 651, 660, 706, + 706, 706, 1361, 739, 739, 652, 933, 652, 653, 654, + 654, 782, 701, 821, 783, 822, 822, 822, 844, 701, + 933, 655, 597, 597, 597, 781, 781, 781, 933, 821, + + 853, 853, 598, 845, 598, 599, 600, 600, 933, 751, + 751, 751, 830, 830, 830, 751, 751, 751, 601, 688, + 688, 688, 757, 757, 757, 823, 820, 820, 824, 754, + 754, 754, 689, 600, 600, 849, 938, 831, 850, 786, + 787, 787, 939, 781, 781, 781, 940, 758, 933, 690, + 691, 692, 693, 827, 828, 828, 694, 897, 897, 695, + 1361, 1361, 696, 753, 933, 697, 651, 651, 651, 753, + 932, 932, 781, 781, 781, 933, 652, 941, 652, 653, + 654, 654, 942, 849, 933, 755, 850, 943, 781, 781, + 781, 944, 655, 740, 740, 740, 945, 920, 920, 920, + + 1361, 853, 853, 822, 822, 822, 741, 654, 654, 851, + 946, 947, 782, 948, 949, 783, 822, 822, 822, 950, + 822, 822, 822, 742, 743, 744, 745, 852, 782, 951, + 746, 783, 952, 747, 953, 954, 748, 955, 956, 749, + 784, 784, 784, 893, 957, 958, 894, 822, 822, 822, + 785, 921, 785, 786, 787, 787, 893, 895, 959, 894, + 823, 960, 961, 824, 1361, 1361, 788, 825, 825, 825, + 964, 964, 830, 830, 830, 965, 965, 826, 965, 826, + 827, 828, 828, 910, 910, 910, 896, 823, 965, 965, + 824, 965, 970, 829, 854, 854, 854, 831, 1361, 897, + + 897, 913, 913, 913, 781, 781, 781, 855, 787, 787, + 781, 781, 781, 965, 965, 971, 972, 973, 974, 934, + 934, 934, 965, 975, 856, 857, 858, 859, 981, 982, + 965, 860, 983, 984, 861, 985, 986, 862, 987, 911, + 863, 898, 898, 898, 782, 930, 988, 783, 932, 932, + 782, 995, 996, 783, 899, 828, 828, 914, 931, 935, + 997, 998, 936, 822, 822, 822, 999, 822, 822, 822, + 1000, 900, 901, 902, 903, 937, 1001, 864, 904, 994, + 1002, 905, 1003, 1004, 906, 1005, 1006, 907, 966, 966, + 966, 910, 910, 910, 913, 913, 913, 920, 920, 920, + + 781, 781, 781, 823, 962, 1007, 824, 823, 964, 964, + 824, 908, 1014, 1013, 1015, 963, 1016, 781, 781, 781, + 1017, 978, 979, 979, 1018, 1018, 1030, 1031, 967, 1032, + 1033, 968, 934, 934, 934, 848, 934, 934, 934, 1034, + 782, 1035, 1042, 783, 969, 1043, 1046, 911, 989, 1047, + 914, 921, 976, 976, 976, 864, 1048, 782, 1049, 1044, + 783, 1050, 977, 990, 977, 978, 979, 979, 934, 934, + 934, 1051, 991, 864, 1052, 992, 991, 1053, 980, 992, + 822, 822, 822, 1054, 1045, 1061, 1062, 1065, 937, 822, + 822, 822, 937, 966, 966, 966, 908, 966, 966, 966, + + 1063, 966, 966, 966, 908, 993, 1066, 1067, 935, 1361, + 1361, 936, 1361, 1018, 1018, 1064, 1068, 1068, 1069, 1069, + 823, 1069, 1069, 824, 937, 1069, 1069, 1069, 1008, 823, + 1069, 1069, 824, 1010, 1074, 1009, 1011, 1010, 1012, 1075, + 1011, 967, 1076, 1069, 968, 1077, 1039, 1040, 1040, 969, + 1084, 1084, 1096, 969, 781, 781, 781, 969, 1019, 1019, + 1019, 1097, 1100, 864, 1101, 1102, 864, 1103, 822, 822, + 822, 1020, 979, 979, 1098, 1099, 1104, 1105, 1058, 1059, + 1059, 1070, 1070, 1070, 1124, 1037, 1037, 1037, 1021, 1022, + 1023, 1024, 1112, 1112, 782, 1025, 1125, 783, 1026, 908, + + 1036, 1027, 1130, 908, 1028, 1037, 1037, 1037, 823, 1131, + 1126, 824, 1127, 1136, 1055, 1038, 1151, 1038, 1039, 1040, + 1040, 1071, 1068, 1068, 1072, 849, 1151, 1029, 850, 1135, + 1151, 1041, 1151, 1056, 1056, 1056, 1151, 1073, 1138, 1138, + 1128, 1128, 1128, 1361, 1361, 782, 1150, 1150, 783, 1056, + 1056, 1056, 1081, 1082, 1082, 1361, 1084, 1084, 1151, 1057, + 1151, 1057, 1058, 1059, 1059, 1151, 1154, 1151, 1155, 1070, + 1070, 1070, 1162, 893, 1163, 1060, 894, 1152, 1152, 1152, + 1164, 1151, 864, 1070, 1070, 1070, 1109, 1110, 1110, 823, + 1179, 1156, 824, 1078, 1078, 1078, 1129, 1166, 1166, 1179, + + 1070, 1070, 1070, 1038, 1179, 1038, 1039, 1040, 1040, 1132, + 1361, 1361, 1133, 1179, 1079, 1079, 1079, 1153, 1179, 1041, + 1079, 1079, 1079, 1132, 1179, 1073, 1133, 1107, 1107, 1107, + 1080, 1179, 1080, 1081, 1082, 1082, 1179, 1134, 1182, 1073, + 1071, 1178, 1178, 1072, 1183, 1190, 1083, 1085, 1085, 1085, + 1361, 1112, 1112, 1179, 849, 1191, 1073, 850, 1192, 908, + 1086, 1040, 1040, 1180, 1180, 1180, 1198, 893, 1184, 1179, + 894, 1128, 1128, 1128, 1198, 1029, 1198, 1087, 1088, 1089, + 1090, 1029, 1361, 1361, 1091, 1193, 1194, 1092, 1197, 1197, + 1093, 1198, 1198, 1094, 1106, 1106, 1106, 1195, 1195, 1195, + + 1361, 1138, 1138, 1181, 1057, 1198, 1057, 1058, 1059, 1059, + 1198, 1198, 1150, 1150, 1198, 1199, 1199, 1199, 1201, 1220, + 1060, 1107, 1107, 1107, 1208, 1208, 1198, 1129, 1152, 1152, + 1152, 1108, 1222, 1108, 1109, 1110, 1110, 1152, 1152, 1152, + 1159, 1160, 1160, 1157, 1157, 1157, 1222, 1111, 1113, 1113, + 1113, 1361, 1361, 1196, 1361, 1166, 1166, 1221, 1221, 1222, + 1222, 1114, 1059, 1059, 1152, 1152, 1152, 1222, 849, 1222, + 1222, 1222, 1222, 1223, 1223, 1223, 1225, 849, 1115, 1116, + 1117, 1118, 1244, 991, 1245, 1119, 992, 1222, 1120, 1178, + 1178, 1121, 1232, 1232, 1122, 1137, 1137, 1137, 1248, 937, + + 1264, 1200, 1264, 1029, 1153, 1080, 1029, 1080, 1081, 1082, + 1082, 1180, 1180, 1180, 1246, 1247, 1180, 1180, 1180, 1197, + 1197, 1083, 1139, 1139, 1139, 1264, 1180, 1180, 1180, 1187, + 1188, 1188, 1185, 1185, 1185, 1140, 1082, 1082, 1195, 1195, + 1195, 1199, 1199, 1199, 1199, 1199, 1199, 1205, 1206, 1206, + 1264, 893, 1141, 1142, 1143, 1144, 893, 1251, 1251, 1145, + 1361, 1361, 1146, 1224, 1264, 1147, 1181, 1264, 1148, 1157, + 1157, 1157, 1010, 1263, 1263, 1011, 1361, 1208, 1208, 1158, + 1264, 1158, 1159, 1160, 1160, 1152, 1152, 1152, 969, 1203, + 1203, 1203, 1264, 1284, 1196, 1161, 1264, 1265, 1265, 1265, + + 1284, 1264, 1221, 1221, 1271, 1271, 864, 1165, 1165, 1165, + 1223, 1223, 1223, 1223, 1223, 1223, 1284, 1108, 1284, 1108, + 1109, 1110, 1110, 1361, 1361, 1153, 1249, 1283, 1283, 991, + 1284, 1284, 992, 1111, 1167, 1167, 1167, 1266, 1180, 1180, + 1180, 1229, 1230, 1230, 1284, 937, 1284, 1168, 1110, 1110, + 1361, 1232, 1232, 937, 1287, 1284, 1288, 1227, 1227, 1227, + 1284, 1285, 1285, 1285, 1169, 1170, 1171, 1172, 1248, 1361, + 1361, 1173, 1296, 1296, 1174, 1029, 1297, 1175, 1181, 1269, + 1176, 1185, 1185, 1185, 1289, 1297, 1297, 1152, 1152, 1152, + 1297, 1186, 1297, 1186, 1187, 1188, 1188, 1010, 1297, 1297, + + 1011, 1286, 1361, 1251, 1251, 1297, 1297, 1189, 1298, 1298, + 1298, 1263, 1263, 969, 1265, 1265, 1265, 969, 908, 1202, + 1202, 1202, 1297, 1265, 1265, 1265, 1302, 1153, 1302, 1158, + 1302, 1158, 1159, 1160, 1160, 1295, 1180, 1180, 1180, 1302, + 1265, 1265, 1265, 1361, 1361, 1161, 1203, 1203, 1203, 1361, + 1271, 1271, 1301, 1301, 991, 1302, 1204, 1302, 1204, 1205, + 1206, 1206, 1302, 991, 937, 1302, 1302, 1303, 1303, 1303, + 937, 1305, 1207, 1209, 1209, 1209, 1181, 1299, 1342, 937, + 1266, 1302, 1283, 1283, 1300, 1342, 1210, 1160, 1160, 1285, + 1285, 1285, 1292, 1293, 1293, 1342, 937, 1285, 1285, 1285, + + 1290, 1290, 1290, 1211, 1212, 1213, 1214, 1312, 1312, 1342, + 1215, 1296, 1296, 1216, 1301, 1301, 1217, 1329, 1329, 1218, + 1226, 1226, 1226, 969, 1361, 1361, 1285, 1285, 1285, 1010, + 1186, 1342, 1186, 1187, 1188, 1188, 1342, 1010, 1341, 1341, + 1132, 1350, 1342, 1133, 1350, 969, 1189, 1227, 1227, 1227, + 1152, 1152, 1152, 969, 1350, 1342, 1073, 1228, 1342, 1228, + 1229, 1230, 1230, 1304, 1342, 1350, 1286, 1350, 1298, 1298, + 1298, 1361, 1361, 1231, 1233, 1233, 1233, 1349, 1349, 1180, + 1180, 1180, 969, 1298, 1298, 1298, 1350, 1234, 1188, 1188, + 1153, 1309, 1310, 1310, 1350, 1350, 1324, 1265, 1265, 1265, + + 1303, 1303, 1303, 211, 1235, 1236, 1237, 1238, 1303, 1303, + 1303, 1239, 225, 1350, 1240, 1341, 1341, 1241, 616, 1181, + 1242, 1250, 1250, 1250, 937, 1326, 1285, 1285, 1285, 1350, + 698, 1204, 750, 1204, 1205, 1206, 1206, 1266, 1325, 937, + 1361, 1312, 1312, 1361, 1329, 1329, 833, 1207, 1252, 1252, + 1252, 1349, 1349, 937, 864, 908, 969, 909, 1029, 1095, + 1123, 1253, 1206, 1206, 969, 1149, 1286, 1327, 1177, 1219, + 1243, 1262, 1282, 1323, 1340, 884, 883, 882, 1254, 1255, + 1256, 1257, 969, 881, 880, 1258, 879, 878, 1259, 877, + 876, 1260, 875, 874, 1261, 1267, 1267, 1267, 1267, 1267, + + 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, + 1267, 1267, 1267, 1267, 1267, 1268, 1268, 1268, 1268, 1268, + 1268, 1267, 1267, 1267, 1267, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 873, 1267, 1267, 1267, 1270, 1270, 1270, 872, 871, 1307, + 1307, 1307, 870, 869, 1228, 868, 1228, 1229, 1230, 1230, + 1343, 1343, 1343, 1360, 1360, 1360, 867, 1265, 1265, 1265, + 1231, 1272, 1272, 1272, 866, 865, 846, 843, 1351, 1351, + 1351, 1285, 1285, 1285, 1273, 1230, 1230, 842, 841, 1132, + + 840, 839, 1133, 838, 837, 1343, 1343, 1343, 836, 835, + 1344, 1274, 1275, 1276, 1277, 1073, 1361, 1266, 1278, 324, + 315, 1279, 834, 832, 1280, 1346, 1073, 1281, 1290, 1290, + 1290, 1286, 821, 937, 1343, 1343, 1343, 821, 1291, 1348, + 1291, 1292, 1293, 1293, 1073, 1132, 821, 969, 1343, 1343, + 1343, 821, 821, 821, 1294, 819, 1265, 1265, 1265, 818, + 817, 1073, 1351, 1351, 1351, 1029, 1306, 1306, 1306, 1285, + 1285, 1285, 816, 815, 1132, 814, 1291, 813, 1291, 1292, + 1293, 1293, 1351, 1351, 1351, 1352, 812, 811, 1344, 810, + 1073, 809, 1294, 1307, 1307, 1307, 1266, 808, 807, 1343, + + 1343, 1343, 1353, 1308, 1073, 1308, 1309, 1310, 1310, 1286, + 806, 805, 937, 804, 803, 1354, 802, 801, 1073, 1311, + 1313, 1313, 1313, 800, 799, 969, 798, 797, 796, 795, + 1343, 1343, 1343, 1314, 1293, 1293, 794, 793, 1073, 1344, + 1355, 792, 789, 1357, 1357, 1357, 780, 780, 780, 780, + 1315, 1316, 1317, 1318, 780, 1073, 780, 1319, 778, 777, + 1320, 776, 775, 1321, 774, 773, 1322, 1328, 1328, 1328, + 1344, 772, 1343, 1343, 1343, 771, 770, 1308, 1358, 1308, + 1309, 1310, 1310, 1010, 769, 768, 1073, 767, 766, 765, + 764, 763, 256, 1311, 1330, 1330, 1330, 248, 762, 969, + + 324, 761, 315, 760, 759, 756, 738, 1331, 1310, 1310, + 737, 736, 1344, 735, 734, 733, 732, 731, 1359, 730, + 729, 728, 727, 726, 1332, 1333, 1334, 1335, 1073, 725, + 724, 1336, 723, 722, 1337, 721, 720, 1338, 719, 718, + 1339, 1345, 1345, 1345, 717, 716, 715, 714, 713, 712, + 711, 1080, 710, 1080, 1081, 1082, 1082, 709, 708, 707, + 705, 705, 705, 705, 705, 705, 703, 1083, 702, 686, + 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, + 673, 1153, 1347, 1347, 1347, 672, 671, 670, 669, 256, + 668, 248, 1108, 667, 1108, 1109, 1110, 1110, 666, 665, + + 324, 664, 324, 663, 315, 662, 315, 661, 1111, 658, + 657, 656, 650, 649, 648, 647, 646, 645, 644, 643, + 642, 638, 1181, 1345, 1345, 1345, 637, 636, 635, 634, + 633, 632, 631, 1080, 630, 1080, 1081, 1082, 1082, 629, + 628, 627, 626, 625, 624, 623, 622, 621, 618, 1083, + 617, 604, 603, 602, 596, 595, 594, 593, 592, 591, + 590, 589, 588, 849, 1347, 1347, 1347, 587, 586, 583, + 580, 579, 578, 256, 1108, 577, 1108, 1109, 1110, 1110, + 256, 576, 248, 575, 248, 572, 571, 570, 569, 568, + 1111, 567, 566, 565, 564, 563, 562, 561, 560, 559, + + 558, 557, 556, 555, 893, 1356, 1356, 1356, 552, 551, + 550, 549, 548, 547, 546, 1204, 545, 1204, 1205, 1206, + 1206, 544, 543, 542, 541, 540, 539, 538, 537, 536, + 535, 1207, 531, 530, 529, 528, 527, 526, 525, 519, + 518, 517, 516, 515, 514, 1266, 513, 512, 511, 510, + 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, + 499, 937, 1357, 1357, 1357, 498, 497, 496, 495, 494, + 493, 492, 1228, 491, 1228, 1229, 1230, 1230, 490, 489, + 486, 485, 484, 483, 482, 481, 480, 479, 1231, 478, + 477, 476, 475, 474, 473, 472, 471, 468, 467, 463, + + 462, 458, 1286, 457, 456, 455, 454, 453, 452, 451, + 450, 446, 441, 440, 439, 438, 437, 436, 969, 1356, + 1356, 1356, 435, 434, 433, 432, 431, 430, 429, 1204, + 428, 1204, 1205, 1206, 1206, 427, 426, 425, 424, 423, + 419, 344, 414, 413, 412, 1207, 411, 410, 409, 408, + 407, 406, 405, 404, 324, 324, 401, 324, 324, 991, + 400, 399, 315, 315, 396, 315, 315, 395, 394, 393, + 392, 391, 387, 386, 385, 937, 1360, 1360, 1360, 384, + 383, 382, 381, 378, 377, 376, 1308, 375, 1308, 1309, + 1310, 1310, 371, 368, 367, 366, 365, 364, 360, 354, + + 353, 352, 1311, 351, 350, 349, 348, 347, 346, 345, + 344, 271, 1361, 340, 339, 256, 1344, 256, 336, 256, + 256, 335, 248, 248, 332, 248, 248, 331, 239, 237, + 330, 327, 1073, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 63, 63, 63, 63, 63, 63, 63, + + 63, 63, 63, 63, 63, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + + 127, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 148, 326, 325, + 148, 324, 148, 148, 148, 148, 148, 150, 323, 322, + 150, 150, 150, 150, 150, 150, 150, 164, 164, 226, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 170, + 321, 318, 317, 170, 205, 316, 315, 205, 205, 205, + 205, 205, 205, 205, 314, 205, 207, 313, 207, 207, + 207, 208, 208, 236, 312, 311, 236, 236, 236, 236, + + 236, 236, 236, 238, 310, 204, 238, 238, 238, 238, + 238, 238, 238, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 203, 241, 241, 242, 242, 242, 242, 242, + 242, 242, 242, 304, 242, 242, 242, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 265, 291, 286, + 280, 265, 266, 266, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 927, 927, 927, 927, + 927, 927, 927, 927, 927, 169, 927, 927, 1267, 1267, + 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 169, 1267, + 264, 263, 160, 262, 259, 258, 257, 256, 255, 151, + + 149, 254, 251, 250, 249, 248, 247, 243, 240, 239, + 237, 235, 227, 226, 224, 203, 204, 198, 169, 167, + 166, 165, 163, 162, 161, 160, 159, 151, 149, 147, + 140, 1361, 136, 136, 126, 126, 45, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361 + } ; -static yyconst flex_int16_t yy_chk[2970] = +static yyconst flex_int16_t yy_chk[3397] = { 0, - 0, 0, 3, 4, 5, 6, 19, 5, 6, 7, - 7, 7, 8, 8, 8, 9, 9, 9, 11, 12, - 7, 11, 12, 8, 10, 10, 10, 20, 23, 19, - 1112, 24, 25, 26, 35, 36, 66, 66, 37, 125, - 125, 11, 12, 132, 38, 132, 1114, 220, 140, 220, - 20, 23, 3, 4, 24, 25, 26, 140, 35, 36, - 7, 37, 7, 8, 154, 8, 9, 38, 9, 41, - 42, 41, 42, 335, 335, 10, 154, 10, 13, 13, + 0, 0, 3, 4, 5, 0, 0, 5, 6, 0, + 0, 6, 9, 9, 9, 7, 7, 7, 23, 5, + 5, 5, 31, 6, 6, 6, 7, 24, 37, 5, + 8, 8, 8, 6, 10, 10, 10, 79, 79, 38, + 181, 8, 11, 23, 181, 11, 31, 12, 39, 5, + 12, 40, 24, 6, 37, 3, 4, 11, 11, 11, + 168, 168, 12, 12, 12, 38, 9, 11, 9, 7, + 197, 7, 12, 39, 146, 31, 40, 31, 43, 44, + 43, 44, 812, 197, 8, 146, 8, 11, 10, 175, + 10, 175, 12, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 15, 15, 15, 15, 15, 15, + 13, 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 21, 21, 21, 21, + 19, 67, 54, 20, 54, 179, 54, 54, 54, 139, + 139, 139, 158, 54, 813, 19, 19, 19, 20, 20, + 20, 179, 183, 158, 91, 19, 253, 186, 20, 185, + + 91, 183, 67, 186, 67, 91, 67, 67, 67, 253, + 185, 182, 182, 67, 814, 19, 91, 182, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 25, 815, + 32, 26, 27, 27, 27, 28, 28, 28, 29, 29, + 29, 223, 35, 25, 25, 25, 26, 26, 26, 30, + + 30, 30, 223, 25, 32, 36, 26, 83, 283, 83, + 83, 83, 83, 283, 180, 261, 35, 180, 180, 113, + 190, 193, 466, 25, 190, 193, 26, 195, 261, 36, + 195, 200, 200, 32, 193, 32, 27, 466, 27, 28, + 298, 28, 29, 234, 29, 35, 113, 35, 113, 291, + 113, 113, 113, 30, 234, 30, 298, 113, 36, 291, + 36, 81, 81, 816, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 88, 817, 88, 95, 95, 95, 96, 96, 96, 98, + 98, 98, 102, 176, 176, 176, 177, 177, 177, 818, + 102, 347, 102, 347, 102, 102, 102, 187, 187, 187, + 347, 102, 282, 189, 189, 189, 282, 282, 177, 819, + 191, 191, 191, 98, 199, 199, 199, 285, 285, 98, + 201, 201, 201, 202, 88, 202, 98, 95, 98, 285, + 96, 306, 189, 209, 209, 209, 306, 833, 187, 176, + 189, 778, 177, 191, 194, 194, 194, 835, 194, 207, + + 201, 308, 308, 187, 194, 207, 210, 210, 210, 189, + 207, 194, 194, 194, 307, 307, 191, 212, 212, 212, + 778, 207, 245, 245, 245, 836, 320, 202, 246, 246, + 246, 267, 267, 267, 268, 268, 268, 209, 293, 320, + 210, 329, 614, 307, 837, 293, 210, 341, 341, 341, + 293, 212, 386, 210, 329, 210, 345, 212, 614, 345, + 368, 380, 368, 838, 212, 386, 212, 383, 368, 380, + 370, 370, 345, 696, 345, 368, 383, 380, 446, 383, + 390, 390, 405, 405, 405, 522, 522, 267, 370, 696, + 268, 839, 446, 446, 487, 487, 487, 488, 488, 488, + + 500, 599, 599, 341, 502, 502, 502, 528, 500, 390, + 521, 521, 521, 548, 841, 528, 609, 548, 842, 563, + 563, 563, 573, 573, 573, 609, 584, 584, 584, 606, + 606, 548, 598, 598, 598, 843, 405, 438, 438, 438, + 585, 585, 585, 605, 605, 605, 488, 438, 487, 438, + 438, 438, 438, 602, 602, 602, 607, 607, 502, 616, + 616, 616, 602, 438, 514, 514, 514, 652, 652, 652, + 844, 573, 585, 845, 514, 563, 514, 514, 514, 514, + 584, 653, 653, 688, 688, 656, 656, 656, 689, 689, + 514, 520, 520, 520, 656, 703, 657, 657, 657, 691, + + 849, 520, 703, 520, 520, 520, 520, 602, 691, 660, + 660, 660, 659, 659, 659, 704, 704, 520, 523, 523, + 523, 674, 674, 674, 687, 687, 687, 850, 699, 699, + 699, 523, 523, 523, 660, 700, 700, 700, 743, 656, + 856, 698, 698, 698, 705, 705, 705, 743, 523, 523, + 523, 523, 657, 674, 858, 523, 740, 740, 523, 741, + 741, 523, 779, 779, 523, 559, 559, 559, 659, 706, + 706, 706, 739, 739, 739, 559, 859, 559, 559, 559, + 559, 698, 699, 748, 698, 750, 750, 750, 774, 700, + 860, 559, 597, 597, 597, 780, 780, 780, 861, 748, + + 786, 786, 597, 774, 597, 597, 597, 597, 863, 751, + 751, 751, 755, 755, 755, 752, 752, 752, 597, 600, + 600, 600, 757, 757, 757, 750, 820, 820, 750, 754, + 754, 754, 600, 600, 600, 780, 865, 755, 780, 785, + 785, 785, 866, 781, 781, 781, 867, 757, 862, 600, + 600, 600, 600, 826, 826, 826, 600, 827, 827, 600, + 854, 854, 600, 751, 862, 600, 651, 651, 651, 752, + 855, 855, 782, 782, 782, 857, 651, 868, 651, 651, + 651, 651, 869, 781, 857, 754, 781, 870, 783, 783, + 783, 871, 651, 654, 654, 654, 873, 840, 840, 840, + + 853, 853, 853, 821, 821, 821, 654, 654, 654, 782, + 876, 877, 782, 878, 879, 782, 822, 822, 822, 881, + 823, 823, 823, 654, 654, 654, 654, 783, 783, 883, + 654, 783, 884, 654, 885, 886, 654, 887, 888, 654, + 701, 701, 701, 821, 889, 891, 821, 824, 824, 824, + 701, 840, 701, 701, 701, 701, 822, 823, 892, 822, + 823, 893, 894, 823, 898, 898, 701, 753, 753, 753, + 899, 899, 830, 830, 830, 900, 902, 753, 903, 753, + 753, 753, 753, 832, 832, 832, 824, 824, 904, 905, + 824, 907, 909, 753, 787, 787, 787, 830, 897, 897, + + 897, 834, 834, 834, 851, 851, 851, 787, 787, 787, + 852, 852, 852, 901, 906, 915, 916, 917, 918, 864, + 864, 864, 901, 919, 787, 787, 787, 787, 922, 923, + 906, 787, 924, 925, 787, 926, 927, 787, 928, 832, + 787, 828, 828, 828, 851, 851, 929, 851, 932, 932, + 852, 939, 940, 852, 828, 828, 828, 834, 852, 864, + 941, 944, 864, 895, 895, 895, 948, 896, 896, 896, + 952, 828, 828, 828, 828, 864, 954, 936, 828, 936, + 955, 828, 956, 957, 828, 958, 960, 828, 908, 908, + 908, 910, 910, 910, 913, 913, 913, 920, 920, 920, + + 930, 930, 930, 895, 895, 961, 895, 896, 964, 964, + 896, 968, 971, 968, 972, 896, 973, 931, 931, 931, + 974, 977, 977, 977, 978, 978, 981, 982, 908, 984, + 985, 908, 933, 933, 933, 986, 934, 934, 934, 987, + 930, 988, 991, 930, 908, 992, 995, 910, 930, 997, + 913, 920, 921, 921, 921, 993, 998, 931, 999, 993, + 931, 1002, 921, 931, 921, 921, 921, 921, 935, 935, + 935, 1004, 933, 994, 1005, 933, 934, 1006, 921, 934, + 962, 962, 962, 1007, 994, 1010, 1011, 1014, 933, 963, + 963, 963, 934, 965, 965, 965, 1012, 966, 966, 966, + + 1012, 967, 967, 967, 1013, 935, 1015, 1016, 935, 1019, + 1019, 935, 1018, 1018, 1018, 1013, 1020, 1020, 1021, 1023, + 962, 1022, 1024, 962, 935, 1025, 1026, 1027, 962, 963, + 1022, 1028, 963, 965, 1030, 963, 965, 966, 967, 1032, + 966, 967, 1033, 1027, 967, 1034, 1038, 1038, 1038, 965, + 1039, 1039, 1042, 966, 989, 989, 989, 967, 979, 979, + 979, 1043, 1046, 1044, 1048, 1050, 1045, 1051, 1008, 1008, + 1008, 979, 979, 979, 1044, 1045, 1052, 1053, 1057, 1057, + 1057, 1029, 1029, 1029, 1061, 1037, 1037, 1037, 979, 979, + 979, 979, 1058, 1058, 989, 979, 1062, 989, 979, 1063, + + 989, 979, 1066, 1064, 979, 990, 990, 990, 1008, 1067, + 1063, 1008, 1064, 1074, 1008, 990, 1087, 990, 990, 990, + 990, 1029, 1068, 1068, 1029, 1037, 1089, 1072, 1037, 1072, + 1090, 990, 1091, 1056, 1056, 1056, 1092, 1029, 1081, 1081, + 1065, 1065, 1065, 1085, 1085, 990, 1086, 1086, 990, 1009, + 1009, 1009, 1080, 1080, 1080, 1084, 1084, 1084, 1088, 1009, + 1094, 1009, 1009, 1009, 1009, 1093, 1096, 1088, 1097, 1069, + 1069, 1069, 1100, 1056, 1101, 1009, 1056, 1095, 1095, 1095, + 1103, 1093, 1098, 1070, 1070, 1070, 1108, 1108, 1108, 1009, + 1115, 1098, 1009, 1035, 1035, 1035, 1065, 1109, 1109, 1117, + + 1071, 1071, 1071, 1035, 1116, 1035, 1035, 1035, 1035, 1069, + 1113, 1113, 1069, 1116, 1079, 1079, 1079, 1095, 1118, 1035, + 1036, 1036, 1036, 1070, 1119, 1069, 1070, 1107, 1107, 1107, + 1036, 1120, 1036, 1036, 1036, 1036, 1122, 1071, 1124, 1070, + 1071, 1114, 1114, 1071, 1125, 1130, 1036, 1040, 1040, 1040, + 1112, 1112, 1112, 1121, 1079, 1132, 1071, 1079, 1133, 1126, + 1040, 1040, 1040, 1123, 1123, 1123, 1141, 1107, 1126, 1121, + 1107, 1128, 1128, 1128, 1143, 1135, 1144, 1040, 1040, 1040, + 1040, 1134, 1139, 1139, 1040, 1134, 1135, 1040, 1140, 1140, + 1040, 1145, 1146, 1040, 1054, 1054, 1054, 1136, 1136, 1136, + + 1138, 1138, 1138, 1123, 1054, 1142, 1054, 1054, 1054, 1054, + 1147, 1148, 1150, 1150, 1142, 1149, 1149, 1149, 1154, 1162, + 1054, 1055, 1055, 1055, 1159, 1159, 1147, 1128, 1151, 1151, + 1151, 1055, 1169, 1055, 1055, 1055, 1055, 1152, 1152, 1152, + 1158, 1158, 1158, 1157, 1157, 1157, 1171, 1055, 1059, 1059, + 1059, 1167, 1167, 1136, 1166, 1166, 1166, 1168, 1168, 1172, + 1170, 1059, 1059, 1059, 1153, 1153, 1153, 1173, 1151, 1170, + 1174, 1175, 1176, 1177, 1177, 1177, 1182, 1152, 1059, 1059, + 1059, 1059, 1191, 1157, 1192, 1059, 1157, 1175, 1059, 1178, + 1178, 1059, 1187, 1187, 1059, 1077, 1077, 1077, 1196, 1157, + + 1211, 1153, 1213, 1193, 1153, 1077, 1194, 1077, 1077, 1077, + 1077, 1179, 1179, 1179, 1193, 1194, 1180, 1180, 1180, 1197, + 1197, 1077, 1082, 1082, 1082, 1214, 1181, 1181, 1181, 1186, + 1186, 1186, 1185, 1185, 1185, 1082, 1082, 1082, 1195, 1195, + 1195, 1198, 1198, 1198, 1199, 1199, 1199, 1204, 1204, 1204, + 1215, 1179, 1082, 1082, 1082, 1082, 1180, 1205, 1205, 1082, + 1209, 1209, 1082, 1181, 1216, 1082, 1181, 1218, 1082, 1099, + 1099, 1099, 1185, 1210, 1210, 1185, 1208, 1208, 1208, 1099, + 1217, 1099, 1099, 1099, 1099, 1200, 1200, 1200, 1185, 1203, + 1203, 1203, 1212, 1235, 1195, 1099, 1217, 1219, 1219, 1219, + + 1237, 1212, 1221, 1221, 1229, 1229, 1099, 1105, 1105, 1105, + 1222, 1222, 1222, 1223, 1223, 1223, 1238, 1105, 1239, 1105, + 1105, 1105, 1105, 1233, 1233, 1200, 1200, 1234, 1234, 1203, + 1240, 1242, 1203, 1105, 1110, 1110, 1110, 1219, 1224, 1224, + 1224, 1228, 1228, 1228, 1241, 1203, 1236, 1110, 1110, 1110, + 1232, 1232, 1232, 1219, 1244, 1236, 1245, 1227, 1227, 1227, + 1241, 1243, 1243, 1243, 1110, 1110, 1110, 1110, 1248, 1252, + 1252, 1110, 1253, 1253, 1110, 1246, 1254, 1110, 1224, 1224, + 1110, 1127, 1127, 1127, 1246, 1256, 1257, 1249, 1249, 1249, + 1255, 1127, 1258, 1127, 1127, 1127, 1127, 1227, 1259, 1255, + + 1227, 1243, 1251, 1251, 1251, 1261, 1260, 1127, 1262, 1262, + 1262, 1263, 1263, 1227, 1264, 1264, 1264, 1243, 1127, 1155, + 1155, 1155, 1260, 1265, 1265, 1265, 1274, 1249, 1276, 1155, + 1275, 1155, 1155, 1155, 1155, 1249, 1269, 1269, 1269, 1275, + 1266, 1266, 1266, 1272, 1272, 1155, 1156, 1156, 1156, 1271, + 1271, 1271, 1273, 1273, 1264, 1277, 1156, 1278, 1156, 1156, + 1156, 1156, 1279, 1265, 1262, 1280, 1281, 1282, 1282, 1282, + 1264, 1287, 1156, 1160, 1160, 1160, 1269, 1266, 1315, 1265, + 1266, 1280, 1283, 1283, 1269, 1317, 1160, 1160, 1160, 1284, + 1284, 1284, 1291, 1291, 1291, 1318, 1266, 1285, 1285, 1285, + + 1290, 1290, 1290, 1160, 1160, 1160, 1160, 1292, 1292, 1319, + 1160, 1296, 1296, 1160, 1301, 1301, 1160, 1309, 1309, 1160, + 1183, 1183, 1183, 1282, 1313, 1313, 1286, 1286, 1286, 1284, + 1183, 1320, 1183, 1183, 1183, 1183, 1322, 1285, 1314, 1314, + 1290, 1332, 1321, 1290, 1334, 1284, 1183, 1184, 1184, 1184, + 1295, 1295, 1295, 1285, 1335, 1316, 1290, 1184, 1321, 1184, + 1184, 1184, 1184, 1286, 1316, 1336, 1286, 1337, 1297, 1297, + 1297, 1330, 1330, 1184, 1188, 1188, 1188, 1331, 1331, 1300, + 1300, 1300, 1286, 1298, 1298, 1298, 1333, 1188, 1188, 1188, + 1295, 1308, 1308, 1308, 1339, 1333, 1295, 1299, 1299, 1299, + + 1302, 1302, 1302, 1386, 1188, 1188, 1188, 1188, 1303, 1303, + 1303, 1188, 1387, 1338, 1188, 1341, 1341, 1188, 1396, 1300, + 1188, 1201, 1201, 1201, 1297, 1300, 1304, 1304, 1304, 1338, + 1397, 1201, 1398, 1201, 1201, 1201, 1201, 1299, 1299, 1298, + 1312, 1312, 1312, 1329, 1329, 1329, 1399, 1201, 1206, 1206, + 1206, 1349, 1349, 1299, 1400, 1401, 1302, 1402, 1404, 1405, + 1406, 1206, 1206, 1206, 1303, 1407, 1304, 1304, 1408, 1409, + 1410, 1411, 1412, 1414, 1415, 811, 810, 809, 1206, 1206, + 1206, 1206, 1304, 808, 805, 1206, 804, 803, 1206, 802, + 800, 1206, 799, 798, 1206, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 797, 1220, 1220, 1220, 1225, 1225, 1225, 796, 795, 1307, + 1307, 1307, 794, 793, 1225, 792, 1225, 1225, 1225, 1225, + 1323, 1323, 1323, 1360, 1360, 1360, 791, 1325, 1325, 1325, + 1225, 1230, 1230, 1230, 790, 789, 775, 773, 1340, 1340, + 1340, 1327, 1327, 1327, 1230, 1230, 1230, 769, 768, 1307, + + 767, 766, 1307, 765, 764, 1342, 1342, 1342, 763, 762, + 1323, 1230, 1230, 1230, 1230, 1307, 1360, 1325, 1230, 761, + 760, 1230, 759, 756, 1230, 1325, 1323, 1230, 1247, 1247, + 1247, 1327, 749, 1325, 1343, 1343, 1343, 747, 1247, 1327, + 1247, 1247, 1247, 1247, 1340, 1342, 746, 1327, 1344, 1344, + 1344, 745, 744, 742, 1247, 738, 1346, 1346, 1346, 737, + 736, 1342, 1350, 1350, 1350, 1247, 1288, 1288, 1288, 1348, + 1348, 1348, 735, 734, 1343, 733, 1288, 731, 1288, 1288, + 1288, 1288, 1351, 1351, 1351, 1344, 730, 729, 1344, 728, + 1343, 727, 1288, 1289, 1289, 1289, 1346, 726, 725, 1352, + + 1352, 1352, 1346, 1289, 1344, 1289, 1289, 1289, 1289, 1348, + 724, 722, 1346, 721, 720, 1348, 719, 718, 1350, 1289, + 1293, 1293, 1293, 717, 716, 1348, 714, 713, 712, 711, + 1355, 1355, 1355, 1293, 1293, 1293, 710, 709, 1351, 1352, + 1352, 707, 702, 1357, 1357, 1357, 697, 695, 694, 693, + 1293, 1293, 1293, 1293, 692, 1352, 690, 1293, 686, 685, + 1293, 684, 683, 1293, 682, 681, 1293, 1305, 1305, 1305, + 1355, 680, 1358, 1358, 1358, 679, 678, 1305, 1355, 1305, + 1305, 1305, 1305, 1357, 677, 675, 1355, 673, 672, 671, + 670, 669, 668, 1305, 1310, 1310, 1310, 667, 666, 1357, + + 665, 664, 663, 662, 661, 658, 650, 1310, 1310, 1310, + 648, 647, 1358, 646, 645, 644, 643, 642, 1358, 641, + 640, 639, 638, 637, 1310, 1310, 1310, 1310, 1358, 636, + 635, 1310, 634, 633, 1310, 632, 631, 1310, 630, 629, + 1310, 1324, 1324, 1324, 627, 626, 625, 624, 623, 622, + 621, 1324, 620, 1324, 1324, 1324, 1324, 619, 618, 617, + 615, 613, 612, 611, 610, 608, 604, 1324, 603, 596, + 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, + 583, 1324, 1326, 1326, 1326, 582, 581, 580, 579, 578, + 577, 576, 1326, 575, 1326, 1326, 1326, 1326, 574, 572, + + 571, 570, 569, 568, 567, 566, 565, 564, 1326, 562, + 561, 560, 558, 557, 556, 555, 554, 553, 552, 551, + 550, 547, 1326, 1345, 1345, 1345, 546, 545, 544, 543, + 542, 541, 540, 1345, 539, 1345, 1345, 1345, 1345, 538, + 536, 535, 534, 533, 532, 531, 530, 529, 527, 1345, + 526, 517, 516, 515, 513, 512, 511, 510, 509, 508, + 507, 506, 505, 1345, 1347, 1347, 1347, 504, 503, 501, + 499, 498, 496, 495, 1347, 494, 1347, 1347, 1347, 1347, + 493, 492, 491, 490, 489, 486, 485, 484, 483, 482, + 1347, 481, 480, 479, 478, 477, 476, 475, 473, 472, + + 470, 469, 468, 467, 1347, 1353, 1353, 1353, 465, 464, + 463, 462, 461, 460, 459, 1353, 458, 1353, 1353, 1353, + 1353, 457, 455, 454, 453, 452, 451, 450, 449, 448, + 447, 1353, 445, 444, 443, 442, 441, 440, 439, 437, + 436, 435, 434, 433, 432, 1353, 431, 430, 429, 428, + 427, 426, 425, 423, 422, 421, 420, 419, 418, 417, + 416, 1353, 1354, 1354, 1354, 415, 414, 413, 412, 411, + 410, 409, 1354, 408, 1354, 1354, 1354, 1354, 407, 406, + 404, 403, 402, 401, 399, 398, 397, 396, 1354, 395, + 394, 393, 392, 391, 389, 388, 387, 385, 384, 382, + + 381, 379, 1354, 378, 377, 376, 375, 374, 373, 372, + 371, 369, 367, 366, 365, 364, 363, 362, 1354, 1356, + 1356, 1356, 361, 360, 359, 358, 357, 356, 355, 1356, + 354, 1356, 1356, 1356, 1356, 352, 351, 350, 349, 348, + 346, 343, 340, 339, 338, 1356, 337, 336, 335, 334, + 333, 332, 331, 330, 328, 327, 326, 325, 323, 1356, + 322, 321, 319, 318, 317, 316, 314, 313, 312, 311, + 310, 309, 305, 304, 303, 1356, 1359, 1359, 1359, 302, + 301, 300, 299, 297, 296, 295, 1359, 294, 1359, 1359, + 1359, 1359, 292, 290, 289, 288, 287, 286, 284, 281, + + 280, 279, 1359, 278, 277, 276, 275, 274, 273, 272, + 271, 270, 265, 263, 262, 260, 1359, 259, 258, 257, + 255, 254, 252, 251, 250, 249, 247, 243, 239, 237, + 235, 233, 1359, 1362, 1362, 1362, 1362, 1362, 1362, 1362, + 1362, 1362, 1362, 1362, 1362, 1363, 1363, 1363, 1363, 1363, + 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1365, + 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, + 1365, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1367, 1367, 1367, 1367, 1367, 1367, 1367, + + 1367, 1367, 1367, 1367, 1367, 1368, 1368, 1368, 1368, 1368, + 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1369, 1369, 1369, + 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1375, + 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, + + 1375, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1377, 1377, 1377, 1377, 1377, 1377, 1377, + 1377, 1377, 1377, 1377, 1377, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1379, 232, 231, + 1379, 230, 1379, 1379, 1379, 1379, 1379, 1380, 229, 227, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1381, 1381, 226, + 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1382, + 224, 222, 221, 1382, 1383, 220, 219, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 218, 1383, 1384, 216, 1384, 1384, + 1384, 1385, 1385, 1388, 215, 214, 1388, 1388, 1388, 1388, + + 1388, 1388, 1388, 1389, 213, 204, 1389, 1389, 1389, 1389, + 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1390, + 1390, 1390, 203, 1390, 1390, 1391, 1391, 1391, 1391, 1391, + 1391, 1391, 1391, 196, 1391, 1391, 1391, 1392, 1392, 1392, + 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1393, 192, 188, + 184, 1393, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395, + 1395, 1395, 1395, 1395, 1395, 1395, 1403, 1403, 1403, 1403, + 1403, 1403, 1403, 1403, 1403, 170, 1403, 1403, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 169, 1413, + 167, 161, 160, 159, 157, 156, 155, 154, 153, 151, + + 149, 147, 145, 144, 143, 142, 141, 135, 124, 120, + 117, 114, 109, 108, 103, 93, 89, 82, 80, 78, + 77, 76, 74, 73, 72, 70, 68, 62, 58, 55, + 52, 45, 42, 41, 34, 33, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361 - 21, 21, 27, 27, 27, 28, 28, 28, 136, 29, - 30, 206, 137, 33, 34, 137, 137, 75, 72, 139, - 72, 138, 136, 75, 139, 138, 206, 75, 142, 150, - 1115, 29, 30, 150, 159, 33, 34, 75, 192, 142, - 159, 193, 150, 192, 159, 211, 193, 666, 199, 666, - 211, 388, 388, 27, 159, 27, 28, 199, 28, 29, - 30, 29, 30, 33, 34, 33, 34, 68, 68, 72, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 79, 79, 79, 80, 80, 80, 82, - 82, 82, 133, 133, 133, 134, 134, 134, 714, 144, - 144, 144, 394, 394, 146, 146, 146, 207, 714, 148, - 148, 148, 151, 151, 151, 134, 151, 155, 207, 155, - 161, 161, 161, 162, 162, 162, 1111, 82, 151, 471, - 151, 146, 194, 194, 79, 82, 471, 80, 144, 146, - 148, 164, 164, 164, 194, 133, 395, 395, 134, 178, - 178, 178, 144, 179, 179, 179, 201, 146, 216, 216, - - 216, 162, 148, 201, 222, 251, 222, 201, 155, 162, - 255, 161, 222, 251, 239, 304, 239, 241, 241, 164, - 251, 1110, 239, 255, 262, 262, 262, 164, 239, 304, - 288, 314, 314, 314, 241, 315, 315, 315, 334, 334, - 334, 360, 178, 288, 288, 360, 179, 318, 318, 318, - 693, 216, 693, 371, 371, 371, 436, 436, 360, 375, - 375, 375, 376, 376, 376, 387, 387, 387, 457, 457, - 391, 391, 391, 458, 458, 262, 281, 281, 281, 391, - 402, 315, 314, 393, 393, 393, 281, 397, 281, 281, - 281, 281, 376, 472, 472, 402, 397, 465, 318, 371, - - 281, 328, 328, 328, 404, 404, 404, 435, 435, 435, - 375, 328, 465, 328, 328, 328, 328, 445, 445, 445, - 460, 391, 439, 439, 439, 328, 333, 333, 333, 460, - 1109, 439, 456, 456, 456, 782, 333, 782, 333, 333, - 333, 333, 468, 468, 468, 503, 503, 445, 504, 504, - 333, 336, 336, 336, 506, 469, 469, 469, 531, 531, - 467, 467, 467, 506, 336, 336, 336, 473, 473, 473, - 474, 474, 474, 439, 502, 502, 502, 527, 1108, 336, - 336, 336, 336, 1107, 511, 602, 336, 538, 538, 336, - 1106, 527, 336, 468, 336, 367, 367, 367, 467, 511, - - 602, 467, 513, 513, 513, 367, 469, 367, 367, 367, - 367, 514, 514, 514, 515, 515, 515, 568, 568, 367, - 386, 386, 386, 532, 532, 532, 537, 537, 537, 1105, - 386, 1104, 386, 386, 386, 386, 574, 574, 574, 597, - 513, 575, 575, 513, 386, 389, 389, 389, 597, 582, - 582, 582, 594, 594, 533, 533, 533, 1103, 389, 389, - 389, 532, 514, 1102, 532, 515, 578, 578, 578, 1101, - 534, 534, 534, 389, 389, 389, 389, 579, 579, 579, - 389, 595, 595, 389, 634, 634, 389, 1100, 389, 434, - 434, 434, 533, 635, 635, 533, 535, 535, 535, 434, - - 582, 434, 434, 434, 434, 534, 662, 662, 534, 637, - 1099, 534, 1091, 434, 437, 437, 437, 642, 637, 578, - 593, 593, 593, 569, 569, 569, 1090, 437, 437, 437, - 579, 730, 642, 535, 535, 689, 689, 535, 570, 570, - 570, 730, 437, 437, 437, 437, 633, 633, 633, 437, - 699, 699, 437, 733, 733, 437, 1044, 437, 470, 470, - 470, 569, 734, 734, 569, 571, 571, 571, 470, 1042, - 470, 470, 470, 470, 713, 1041, 570, 729, 713, 570, - 1040, 729, 470, 516, 516, 516, 741, 572, 572, 572, - 651, 651, 651, 516, 759, 516, 516, 516, 516, 1039, - - 571, 741, 759, 571, 753, 753, 571, 516, 539, 539, - 539, 645, 645, 645, 698, 698, 698, 591, 591, 591, - 736, 539, 539, 539, 572, 572, 770, 770, 572, 736, - 592, 592, 592, 732, 732, 732, 539, 539, 539, 539, - 758, 651, 1037, 539, 778, 778, 539, 775, 803, 539, - 758, 539, 576, 576, 576, 591, 591, 775, 591, 604, - 604, 604, 776, 803, 645, 576, 576, 576, 592, 1027, - 776, 592, 631, 631, 631, 592, 632, 632, 632, 830, - 576, 576, 576, 576, 644, 644, 644, 576, 791, 791, - 576, 795, 795, 576, 830, 576, 1025, 604, 796, 796, - - 604, 647, 647, 647, 660, 660, 660, 752, 752, 752, - 631, 631, 604, 631, 632, 798, 1024, 632, 769, 769, - 769, 632, 644, 825, 798, 644, 790, 790, 790, 794, - 794, 794, 825, 661, 661, 661, 808, 644, 1023, 663, - 663, 663, 660, 842, 808, 660, 664, 664, 664, 660, - 665, 665, 665, 842, 647, 652, 652, 652, 835, 687, - 687, 687, 817, 817, 817, 652, 835, 652, 652, 652, - 652, 661, 818, 818, 661, 1022, 661, 663, 1020, 652, - 663, 688, 688, 688, 664, 665, 899, 664, 665, 822, - 822, 665, 663, 690, 690, 690, 899, 687, 854, 664, - - 687, 823, 823, 665, 687, 841, 691, 691, 691, 841, - 692, 692, 692, 854, 709, 709, 709, 846, 846, 688, - 847, 847, 688, 849, 688, 857, 857, 777, 777, 777, - 992, 690, 849, 986, 690, 743, 743, 743, 821, 821, - 821, 845, 845, 845, 691, 692, 690, 691, 692, 866, - 866, 692, 709, 874, 874, 709, 984, 709, 877, 691, - 725, 725, 725, 692, 700, 700, 700, 877, 805, 805, - 805, 875, 875, 743, 885, 885, 743, 700, 700, 700, - 777, 832, 832, 832, 837, 837, 837, 983, 743, 751, - 751, 751, 700, 700, 700, 700, 894, 894, 725, 700, - - 982, 725, 700, 725, 981, 700, 805, 700, 710, 710, - 710, 856, 856, 856, 882, 768, 768, 768, 710, 832, - 710, 710, 710, 710, 843, 843, 843, 751, 979, 882, - 751, 966, 710, 900, 779, 779, 779, 837, 789, 789, - 789, 900, 780, 780, 780, 964, 710, 903, 903, 710, - 726, 726, 726, 768, 911, 911, 768, 865, 865, 865, - 726, 963, 726, 726, 726, 726, 873, 873, 873, 884, - 884, 884, 779, 962, 726, 779, 789, 843, 961, 789, - 780, 915, 915, 780, 816, 816, 816, 779, 726, 916, - 916, 726, 749, 749, 749, 780, 927, 927, 781, 781, - - 781, 959, 749, 951, 749, 749, 749, 749, 858, 858, - 858, 859, 859, 859, 918, 942, 749, 750, 750, 750, - 923, 950, 816, 918, 942, 816, 952, 750, 948, 750, - 750, 750, 750, 781, 952, 923, 781, 935, 935, 781, - 946, 750, 754, 754, 754, 945, 858, 939, 939, 859, - 944, 781, 864, 864, 864, 754, 754, 754, 943, 860, - 860, 860, 940, 940, 886, 886, 886, 893, 893, 893, - 754, 754, 754, 754, 901, 901, 901, 754, 957, 957, - 754, 958, 958, 754, 941, 754, 766, 766, 766, 947, - 864, 968, 968, 864, 860, 924, 766, 860, 766, 766, - - 766, 766, 886, 922, 947, 864, 887, 887, 887, 921, - 766, 767, 767, 767, 904, 904, 904, 888, 888, 888, - 920, 767, 919, 767, 767, 767, 767, 901, 905, 905, - 905, 892, 892, 892, 960, 767, 771, 771, 771, 910, - 910, 910, 965, 960, 887, 909, 909, 909, 917, 771, - 771, 771, 888, 977, 977, 888, 898, 965, 906, 906, - 906, 914, 914, 914, 771, 771, 771, 771, 897, 892, - 985, 771, 892, 889, 771, 978, 978, 771, 883, 771, - 787, 787, 787, 909, 892, 985, 909, 928, 928, 928, - 787, 881, 787, 787, 787, 787, 906, 906, 909, 925, - - 925, 925, 988, 988, 787, 792, 792, 792, 929, 929, - 929, 934, 934, 934, 880, 930, 930, 930, 792, 792, - 792, 938, 938, 938, 956, 956, 956, 933, 933, 933, - 967, 967, 967, 792, 792, 792, 792, 925, 980, 879, - 792, 997, 997, 792, 1001, 1001, 792, 980, 792, 809, - 809, 809, 925, 930, 930, 949, 949, 949, 878, 809, - 876, 809, 809, 809, 809, 933, 1006, 1006, 933, 954, - 954, 954, 869, 809, 861, 969, 969, 969, 1014, 1014, - 933, 1018, 1018, 967, 809, 814, 814, 814, 855, 970, - 970, 970, 853, 949, 852, 814, 851, 814, 814, 814, - - 814, 976, 976, 976, 987, 987, 987, 954, 949, 814, - 819, 819, 819, 969, 954, 996, 996, 996, 1019, 1019, - 974, 974, 974, 819, 819, 819, 850, 970, 969, 1026, - 1002, 1002, 1002, 848, 1021, 971, 971, 971, 819, 819, - 819, 819, 970, 1021, 1026, 819, 1035, 1035, 819, 1036, - 1036, 819, 840, 819, 836, 836, 836, 987, 974, 989, - 989, 989, 1038, 839, 836, 974, 836, 836, 836, 836, - 971, 1038, 1043, 971, 1013, 1013, 1013, 834, 836, 833, - 990, 990, 990, 1002, 991, 991, 991, 1043, 971, 836, - 862, 862, 862, 995, 995, 995, 831, 989, 1046, 1046, - - 862, 829, 862, 862, 862, 862, 1000, 1000, 1000, 1003, - 1003, 1003, 989, 828, 862, 863, 863, 863, 990, 991, - 1054, 1054, 991, 827, 826, 863, 824, 863, 863, 863, - 863, 995, 812, 990, 995, 811, 810, 991, 807, 863, - 867, 867, 867, 806, 1000, 804, 995, 802, 801, 1000, - 1004, 1004, 1004, 867, 867, 867, 800, 1005, 1005, 1005, - 799, 797, 1003, 1007, 1007, 1007, 784, 774, 867, 867, - 867, 867, 1008, 1008, 1008, 867, 773, 765, 867, 764, - 763, 867, 761, 867, 890, 890, 890, 760, 1004, 1004, - 1009, 1009, 1009, 757, 890, 1005, 890, 890, 890, 890, - - 1005, 756, 748, 1004, 1012, 1012, 1012, 747, 890, 891, - 891, 891, 1017, 1017, 1017, 746, 1007, 744, 742, 891, - 740, 891, 891, 891, 891, 1008, 739, 738, 1009, 1009, - 1028, 1028, 1028, 891, 895, 895, 895, 1034, 1034, 1034, - 737, 735, 1012, 1009, 731, 1012, 728, 895, 895, 895, - 727, 724, 723, 1045, 1045, 1045, 722, 1012, 1047, 1047, - 1047, 721, 895, 895, 895, 895, 718, 717, 1028, 895, - 715, 712, 895, 711, 708, 895, 707, 895, 907, 907, - 907, 706, 705, 1028, 1030, 1030, 1030, 703, 907, 702, - 907, 907, 907, 907, 695, 686, 1047, 685, 1065, 1065, - - 1065, 683, 907, 912, 912, 912, 1045, 682, 681, 679, - 675, 1047, 671, 669, 668, 659, 912, 912, 912, 658, - 657, 656, 1030, 655, 654, 653, 650, 649, 643, 1030, - 641, 912, 912, 912, 912, 640, 639, 1030, 912, 1065, - 638, 912, 636, 630, 912, 629, 912, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 628, - - 926, 926, 926, 931, 931, 931, 626, 1032, 1032, 1032, - 625, 624, 623, 931, 622, 931, 931, 931, 931, 621, - 619, 617, 616, 1048, 1048, 1048, 615, 931, 936, 936, - 936, 614, 611, 609, 608, 606, 605, 1051, 1051, 1051, - 603, 936, 936, 936, 601, 1032, 600, 599, 1055, 1055, - 1055, 598, 1032, 1049, 1049, 1049, 936, 936, 936, 936, - 1032, 1048, 596, 936, 590, 589, 936, 587, 586, 936, - 585, 936, 953, 953, 953, 1051, 1048, 1056, 1056, 1056, - 1051, 584, 953, 583, 953, 953, 953, 953, 1049, 581, - 1051, 1049, 580, 567, 566, 565, 953, 564, 1053, 1053, - - 1053, 1055, 1061, 1061, 1061, 563, 1049, 953, 993, 993, - 993, 1057, 1057, 1057, 1062, 1062, 1062, 562, 993, 561, - 993, 993, 993, 993, 1060, 1060, 1060, 1063, 1063, 1063, - 1056, 560, 993, 994, 994, 994, 1053, 559, 558, 555, - 1061, 1053, 554, 994, 553, 994, 994, 994, 994, 1057, - 1057, 1053, 1062, 552, 550, 1061, 549, 994, 998, 998, - 998, 548, 1060, 547, 1057, 1063, 546, 1062, 545, 1060, - 1063, 998, 998, 998, 544, 543, 542, 1060, 541, 528, - 1063, 526, 523, 522, 521, 520, 998, 998, 998, 998, - 519, 518, 517, 998, 512, 510, 998, 509, 508, 998, - - 507, 998, 1010, 1010, 1010, 505, 501, 500, 499, 498, - 497, 496, 1010, 495, 1010, 1010, 1010, 1010, 494, 493, - 492, 491, 490, 488, 487, 486, 1010, 1015, 1015, 1015, - 485, 484, 483, 482, 480, 479, 478, 477, 476, 475, - 1015, 1015, 1015, 466, 464, 463, 462, 461, 459, 455, - 454, 453, 452, 451, 450, 1015, 1015, 1015, 1015, 449, - 448, 446, 1015, 444, 443, 1015, 442, 441, 1015, 440, - 1015, 1029, 1029, 1029, 433, 431, 430, 429, 428, 427, - 426, 1029, 425, 1029, 1029, 1029, 1029, 424, 423, 422, - 421, 420, 419, 418, 417, 1029, 416, 415, 413, 412, - - 411, 410, 409, 408, 407, 406, 405, 403, 401, 1029, - 1031, 1031, 1031, 400, 399, 398, 396, 392, 385, 384, - 1031, 383, 1031, 1031, 1031, 1031, 382, 381, 380, 379, - 378, 377, 374, 373, 1031, 372, 370, 369, 368, 366, - 365, 364, 363, 362, 361, 359, 358, 357, 1031, 1050, - 1050, 1050, 356, 355, 354, 353, 352, 351, 350, 1050, - 348, 1050, 1050, 1050, 1050, 347, 346, 345, 344, 343, - 342, 341, 340, 1050, 339, 330, 329, 327, 326, 325, - 324, 323, 322, 321, 320, 319, 317, 1050, 1052, 1052, - 1052, 316, 313, 312, 311, 310, 308, 307, 1052, 306, - - 1052, 1052, 1052, 1052, 305, 303, 302, 301, 300, 299, - 297, 296, 1052, 295, 294, 293, 292, 291, 290, 289, - 287, 286, 285, 284, 283, 282, 1052, 1058, 1058, 1058, - 280, 279, 278, 277, 276, 275, 274, 1058, 273, 1058, - 1058, 1058, 1058, 272, 271, 270, 268, 267, 266, 265, - 264, 1058, 263, 260, 259, 258, 257, 256, 254, 253, - 252, 250, 249, 248, 247, 1058, 246, 245, 244, 243, - 242, 240, 238, 237, 236, 235, 234, 233, 232, 231, - 1058, 1059, 1059, 1059, 230, 229, 228, 226, 225, 224, - 223, 1059, 221, 1059, 1059, 1059, 1059, 218, 215, 214, - - 213, 212, 210, 209, 208, 1059, 205, 204, 203, 202, - 200, 198, 197, 196, 195, 191, 190, 189, 188, 1059, - 187, 186, 185, 184, 183, 182, 181, 176, 174, 169, - 166, 165, 156, 153, 1059, 1064, 1064, 1064, 152, 149, - 147, 145, 143, 141, 127, 1064, 126, 1064, 1064, 1064, - 1064, 113, 95, 92, 85, 77, 67, 64, 63, 1064, - 61, 50, 43, 40, 39, 32, 31, 0, 0, 0, - 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1064, 1067, - 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, - - 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1069, 1069, 1069, 1069, 1069, 1069, 1069, - 1069, 1069, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072, - 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, - 1073, 1073, 1073, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1075, 1075, 1075, 1075, 1075, - 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076, 1076, 1076, - - 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1077, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, - 1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, - 1078, 1078, 1078, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1082, - 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, - 1082, 1083, 0, 0, 1083, 0, 1083, 1083, 1083, 1083, - 1083, 1084, 0, 0, 1084, 1084, 1084, 1084, 1084, 1084, - - 1084, 1085, 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085, - 1085, 1085, 1085, 1086, 0, 0, 0, 1086, 1087, 0, - 0, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 0, 1087, - 1088, 0, 1088, 1088, 1088, 1089, 1089, 1092, 0, 0, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 0, 1093, 1093, 1094, - 1094, 1094, 1094, 1094, 1094, 1094, 1094, 0, 1094, 1094, - 1094, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, - 1095, 1096, 0, 0, 0, 1096, 1097, 1097, 1098, 1098, - 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, - - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, - 0, 1113, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066 } ; static yy_state_type yy_last_accepting_state; @@ -1566,13 +1737,15 @@ int yy_flex_debug = 0; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "../../../texk/detex/detex-src/detex.l" +#line 1 "detex.l" -#line 95 "../../../texk/detex/detex-src/detex.l" +#line 89 "detex.l" #undef IGNORE #define LaBEGIN if (fLatex) BEGIN #define IGNORE if (fSpace && !fWord) putchar(' ') +#define NOUN if (fSpace && !fWord && !fReplace) putchar(' '); else {if (fReplace) printf("noun");} +#define VERBNOUN if (fReplace) printf(" verbs noun"); /* puts a verb and a noun to make grammar checking work */ #define SPACE if (!fWord) putchar(' ') #define NEWLINE if (!fWord) putchar('\n') #define LATEX fLatex=!fForcetex @@ -1580,15 +1753,18 @@ char *yytext; #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 #define CITE(x) if (fLatex && !fCite) KILLARGS(x) +#define NO_MALLOC_DECL + void AddInclude(char *sbFile); void ErrorExit(const char *sb1); +void UsageExit(void); void IncludeFile(char *sbFile); void InputFile(char *sbFile); void SetEnvIgnore(const char *sbEnvList); #ifndef KPATHSEA void SetInputPaths(void); #endif -void Warning(const char *sb1, const char *sb2); +void Warning(const char *sb1, const char *sb2); int BeginEnv(const char *sbEnv); int EndEnv(const char *sbEnv); int InList(char *sbFile); @@ -1609,7 +1785,7 @@ void OS2UsageExit(void); char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ +char sbCurrentIgnoredEnv[CCHMAXENV]; /* current environment being ignored */ char *sbProgName; /* name we were invoked with */ #ifndef NOFILE /* might be defined in <sys/param.h> */ #define NOFILE 256 @@ -1627,6 +1803,11 @@ int fFollow = 1; /* flag to follow input/include */ int fCite = 0; /* flag to echo \cite and \ref args */ int fSpace = 0; /* flag to replace \cs with space */ int fForcetex = 0; /* flag to inhibit latex mode */ +int fShowPictures = 0; /* flag to show picture names */ +int fReplace = 0; /* flag to replace envirnments with "noun" */ + +int currBracesLevel = 0; +int footnoteLevel = -100; #ifdef FLEX_SCANNER /* flex has contexts for buffers that need to be switched when file changes @@ -1641,7 +1822,7 @@ int csb = 0; /* depth of flex context stack */ -#line 1645 "../../../texk/detex/detex-src/detex.c" +#line 1825 "lex.yy.c" #define INITIAL 0 #define Define 1 @@ -1657,13 +1838,14 @@ int csb = 0; /* depth of flex context stack */ #define LaEnv 11 #define LaFormula 12 #define LaInclude 13 -#define LaMacro 14 -#define LaOptArg 15 -#define LaMacro2 16 -#define LaOptArg2 17 -#define LaVerbatim 18 -#define LaBreak 19 -#define LaPicture 20 +#define LaSubfile 14 +#define LaMacro 15 +#define LaOptArg 16 +#define LaMacro2 17 +#define LaOptArg2 18 +#define LaVerbatim 19 +#define LaBreak 20 +#define LaPicture 21 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1700,7 +1882,7 @@ FILE *yyget_out (void ); void yyset_out (FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng (void ); char *yyget_text (void ); @@ -1759,7 +1941,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -1783,7 +1965,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1879,9 +2061,9 @@ YY_DECL } { -#line 182 "../../../texk/detex/detex-src/detex.l" +#line 187 "detex.l" -#line 1885 "../../../texk/detex/detex-src/detex.c" +#line 2066 "lex.yy.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1908,13 +2090,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 >= 1067 ) + if ( yy_current_state >= 1362 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_current_state != 1066 ); + while ( yy_current_state != 1361 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1936,25 +2118,25 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 183 "../../../texk/detex/detex-src/detex.l" +#line 188 "detex.l" /* ignore comments */ ; YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 185 "../../../texk/detex/detex-src/detex.l" +#line 190 "detex.l" {LATEX; IGNORE;} YY_BREAK case 3: YY_RULE_SETUP -#line 187 "../../../texk/detex/detex-src/detex.l" +#line 192 "detex.l" /* environment start */ {LaBEGIN LaBegin; IGNORE;} YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 189 "../../../texk/detex/detex-src/detex.l" -{ if (BeginEnv("verbatim")) +#line 194 "detex.l" +{ if (BeginEnv("verbatim")) BEGIN LaEnv; else BEGIN LaVerbatim; @@ -1964,705 +2146,895 @@ YY_RULE_SETUP case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 196 "../../../texk/detex/detex-src/detex.l" +#line 201 "detex.l" /* verbatim mode */ {BEGIN Normal; IGNORE;} YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 197 "../../../texk/detex/detex-src/detex.l" +#line 202 "detex.l" ECHO; YY_BREAK case 7: YY_RULE_SETUP -#line 198 "../../../texk/detex/detex-src/detex.l" +#line 203 "detex.l" ECHO; YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 200 "../../../texk/detex/detex-src/detex.l" +#line 205 "detex.l" { KILLARGS(1); - if (BeginEnv("minpage")) + if (BeginEnv("minipage")) BEGIN LaEnv; else - BEGIN Normal; + BEGIN LaMacro; /* Normal; */ IGNORE; } YY_BREAK case 9: +/* rule 9 can match eol */ YY_RULE_SETUP -#line 208 "../../../texk/detex/detex-src/detex.l" -{ if (BeginEnv(yytext)) +#line 213 "detex.l" +{ + if (BeginEnv("table")) BEGIN LaEnv; - else + else BEGIN Normal; - IGNORE; + IGNORE; } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 214 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 221 "detex.l" +{ + if (BeginEnv("figure")) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } YY_BREAK case 11: YY_RULE_SETUP -#line 215 "../../../texk/detex/detex-src/detex.l" -; +#line 229 "detex.l" +{ if (BeginEnv(yytext)) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } YY_BREAK +/*<LaBegin>"\n" NEWLINE;*/ case 12: YY_RULE_SETUP -#line 217 "../../../texk/detex/detex-src/detex.l" -/* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} +#line 236 "detex.l" +; YY_BREAK case 13: -/* rule 13 can match eol */ YY_RULE_SETUP -#line 218 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 238 "detex.l" +/* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} YY_BREAK case 14: +/* rule 14 can match eol */ YY_RULE_SETUP -#line 219 "../../../texk/detex/detex-src/detex.l" -; +#line 239 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 15: YY_RULE_SETUP -#line 221 "../../../texk/detex/detex-src/detex.l" +#line 240 "detex.l" +; + YY_BREAK +case 16: +YY_RULE_SETUP +#line 242 "detex.l" /* end environment */ { if (EndEnv(yytext)) BEGIN Normal; IGNORE; } YY_BREAK -case 16: -YY_RULE_SETUP -#line 225 "../../../texk/detex/detex-src/detex.l" -{BEGIN LaEnv; IGNORE;} - YY_BREAK case 17: -/* rule 17 can match eol */ YY_RULE_SETUP -#line 226 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 246 "detex.l" +{BEGIN LaEnv; IGNORE;} YY_BREAK +/*<LaEnd>"\n" NEWLINE;*/ case 18: YY_RULE_SETUP -#line 227 "../../../texk/detex/detex-src/detex.l" +#line 248 "detex.l" ; YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 229 "../../../texk/detex/detex-src/detex.l" +#line 250 "detex.l" ; YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 230 "../../../texk/detex/detex-src/detex.l" +#line 251 "detex.l" ; YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 231 "../../../texk/detex/detex-src/detex.l" +#line 252 "detex.l" ; YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP -#line 232 "../../../texk/detex/detex-src/detex.l" +#line 253 "detex.l" ; YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 233 "../../../texk/detex/detex-src/detex.l" +#line 254 "detex.l" ; YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 234 "../../../texk/detex/detex-src/detex.l" +#line 255 "detex.l" ; YY_BREAK case 25: YY_RULE_SETUP -#line 236 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 256 "detex.l" +; /* hack to fix \begin{minipage}{300pt} */ YY_BREAK case 26: YY_RULE_SETUP -#line 237 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 258 "detex.l" +{ KILLARGS(1); } YY_BREAK case 27: YY_RULE_SETUP -#line 238 "../../../texk/detex/detex-src/detex.l" +#line 259 "detex.l" { KILLARGS(2); } YY_BREAK case 28: YY_RULE_SETUP -#line 239 "../../../texk/detex/detex-src/detex.l" +#line 260 "detex.l" { KILLARGS(2); } YY_BREAK case 29: YY_RULE_SETUP -#line 240 "../../../texk/detex/detex-src/detex.l" +#line 261 "detex.l" { KILLARGS(2); } YY_BREAK case 30: YY_RULE_SETUP -#line 241 "../../../texk/detex/detex-src/detex.l" +#line 262 "detex.l" { KILLARGS(2); } YY_BREAK case 31: YY_RULE_SETUP -#line 242 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 263 "detex.l" +{ KILLARGS(2); } YY_BREAK case 32: YY_RULE_SETUP -#line 243 "../../../texk/detex/detex-src/detex.l" +#line 264 "detex.l" { KILLARGS(1); } YY_BREAK case 33: YY_RULE_SETUP -#line 244 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 265 "detex.l" +{ KILLARGS(1); } YY_BREAK case 34: YY_RULE_SETUP -#line 245 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 266 "detex.l" +{ KILLARGS(2); } YY_BREAK case 35: YY_RULE_SETUP -#line 246 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(2); } +#line 267 "detex.l" +{ KILLARGS(1); } YY_BREAK case 36: YY_RULE_SETUP -#line 247 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 268 "detex.l" +{ STRIPARGS(2); } YY_BREAK case 37: YY_RULE_SETUP -#line 248 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(2); } +#line 269 "detex.l" +{ KILLARGS(1); } YY_BREAK case 38: YY_RULE_SETUP -#line 249 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 270 "detex.l" +{ STRIPARGS(2); } YY_BREAK case 39: YY_RULE_SETUP -#line 250 "../../../texk/detex/detex-src/detex.l" -; +#line 271 "detex.l" +{ KILLARGS(2); } YY_BREAK case 40: YY_RULE_SETUP -#line 251 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 272 "detex.l" +; YY_BREAK case 41: -/* rule 41 can match eol */ YY_RULE_SETUP -#line 252 "../../../texk/detex/detex-src/detex.l" -{ LaBEGIN LaPicture; } +#line 273 "detex.l" +{ KILLARGS(1); } YY_BREAK case 42: +/* rule 42 can match eol */ YY_RULE_SETUP -#line 254 "../../../texk/detex/detex-src/detex.l" -; +#line 274 "detex.l" +{ LaBEGIN LaPicture; } YY_BREAK case 43: -/* rule 43 can match eol */ YY_RULE_SETUP -#line 255 "../../../texk/detex/detex-src/detex.l" -{ printf("<Picture %s>", yytext); } +#line 276 "detex.l" +; YY_BREAK case 44: +/* rule 44 can match eol */ YY_RULE_SETUP -#line 256 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 277 "detex.l" +{ if(fShowPictures) { printf("<Picture %s>", yytext); } } YY_BREAK case 45: +/* rule 45 can match eol */ YY_RULE_SETUP -#line 258 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(3); } +#line 278 "detex.l" +BEGIN Normal; YY_BREAK case 46: YY_RULE_SETUP -#line 259 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 279 "detex.l" +BEGIN Normal; YY_BREAK case 47: YY_RULE_SETUP -#line 260 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 281 "detex.l" +{ KILLARGS(3); } YY_BREAK case 48: YY_RULE_SETUP -#line 261 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 282 "detex.l" +{ KILLARGS(1); } YY_BREAK case 49: YY_RULE_SETUP -#line 262 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(3); } +#line 283 "detex.l" +{ KILLARGS(2); } YY_BREAK case 50: YY_RULE_SETUP -#line 263 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 284 "detex.l" +{ KILLARGS(2); } YY_BREAK case 51: YY_RULE_SETUP -#line 264 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(1); } +#line 285 "detex.l" +{ KILLARGS(3); } YY_BREAK case 52: YY_RULE_SETUP -#line 266 "../../../texk/detex/detex-src/detex.l" -; +#line 286 "detex.l" +{ KILLARGS(1); } YY_BREAK case 53: YY_RULE_SETUP -#line 267 "../../../texk/detex/detex-src/detex.l" -; +#line 287 "detex.l" +{ STRIPARGS(1); } YY_BREAK case 54: YY_RULE_SETUP -#line 268 "../../../texk/detex/detex-src/detex.l" -; +#line 288 "detex.l" +{ KILLARGS(1); } YY_BREAK case 55: YY_RULE_SETUP -#line 269 "../../../texk/detex/detex-src/detex.l" -; +#line 289 "detex.l" +{ KILLARGS(1); } YY_BREAK case 56: YY_RULE_SETUP -#line 270 "../../../texk/detex/detex-src/detex.l" -; +#line 290 "detex.l" +{ KILLARGS(3); } YY_BREAK case 57: YY_RULE_SETUP -#line 271 "../../../texk/detex/detex-src/detex.l" -; +#line 292 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 58: YY_RULE_SETUP -#line 273 "../../../texk/detex/detex-src/detex.l" -/* ignore args */ {KILLARGS(1); IGNORE;} +#line 293 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 59: YY_RULE_SETUP -#line 274 "../../../texk/detex/detex-src/detex.l" -/* of these \cs */ {KILLARGS(1); IGNORE;} +#line 294 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 60: YY_RULE_SETUP -#line 275 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 295 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 61: YY_RULE_SETUP -#line 276 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 296 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 62: YY_RULE_SETUP -#line 277 "../../../texk/detex/detex-src/detex.l" -{LATEX; KILLARGS(1); IGNORE;} +#line 297 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 63: YY_RULE_SETUP -#line 278 "../../../texk/detex/detex-src/detex.l" -{LATEX; KILLARGS(1); IGNORE;} +#line 298 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 64: YY_RULE_SETUP -#line 279 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 300 "detex.l" +/* ignore args */ {KILLARGS(1); IGNORE;} YY_BREAK case 65: YY_RULE_SETUP -#line 280 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 301 "detex.l" +/* of these \cs */ {KILLARGS(1); IGNORE;} YY_BREAK case 66: YY_RULE_SETUP -#line 281 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); SPACE;} +#line 302 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 67: YY_RULE_SETUP -#line 282 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); SPACE;} +#line 303 "detex.l" +{KILLARGS(1);} /* kill space before */ YY_BREAK case 68: YY_RULE_SETUP -#line 283 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 304 "detex.l" +{LATEX; KILLARGS(1); IGNORE;} YY_BREAK case 69: YY_RULE_SETUP -#line 284 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 305 "detex.l" +{LATEX; KILLARGS(1); IGNORE;} YY_BREAK case 70: YY_RULE_SETUP -#line 285 "../../../texk/detex/detex-src/detex.l" +#line 306 "detex.l" {KILLARGS(1); IGNORE;} YY_BREAK case 71: YY_RULE_SETUP -#line 286 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 307 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 72: YY_RULE_SETUP -#line 287 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 308 "detex.l" +{KILLARGS(1);} YY_BREAK case 73: YY_RULE_SETUP -#line 288 "../../../texk/detex/detex-src/detex.l" -/* ignore \verb<ch>...<ch> */ { if (fLatex) { - char verbchar, c; - verbchar = input(); - while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; - } - IGNORE; - } +#line 309 "detex.l" +{KILLARGS(1);} YY_BREAK +/*<Normal>"\\footnote" {KILLARGS(1); SPACE;}*/ case 74: YY_RULE_SETUP -#line 298 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(2); } +#line 311 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 75: YY_RULE_SETUP -#line 299 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(2); } +#line 312 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 76: YY_RULE_SETUP -#line 300 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(3); } +#line 313 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 77: YY_RULE_SETUP -#line 302 "../../../texk/detex/detex-src/detex.l" -/* ignore def begin */ {BEGIN Define; IGNORE;} +#line 314 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 78: YY_RULE_SETUP -#line 303 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 315 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 79: -/* rule 79 can match eol */ YY_RULE_SETUP -#line 304 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 316 "detex.l" +{KILLARGS(2); IGNORE;} YY_BREAK case 80: YY_RULE_SETUP -#line 305 "../../../texk/detex/detex-src/detex.l" -; +#line 317 "detex.l" +{KILLARGS(2); IGNORE;} YY_BREAK case 81: YY_RULE_SETUP -#line 307 "../../../texk/detex/detex-src/detex.l" -/* formula mode */ {LaBEGIN LaFormula; IGNORE;} +#line 318 "detex.l" +{ KILLARGS(1); } YY_BREAK case 82: YY_RULE_SETUP -#line 308 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 319 "detex.l" +{ KILLARGS(2); } YY_BREAK case 83: -/* rule 83 can match eol */ YY_RULE_SETUP -#line 309 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 321 "detex.l" +{KILLARGS(1);} YY_BREAK case 84: +/* rule 84 can match eol */ YY_RULE_SETUP -#line 310 "../../../texk/detex/detex-src/detex.l" -; +#line 323 "detex.l" +{ + putchar('('); + footnoteLevel = currBracesLevel; + ++currBracesLevel; + } YY_BREAK case 85: YY_RULE_SETUP -#line 312 "../../../texk/detex/detex-src/detex.l" -/* display mode */ {LaBEGIN LaDisplay; IGNORE;} +#line 328 "detex.l" +/* ignore \verb<ch>...<ch> */ { if (fLatex) { + char verbchar, c; + verbchar = input(); + while ((c = input()) != verbchar) + /*if (c == '\n') + NEWLINE;*/ + putchar(c); + } + IGNORE; + } YY_BREAK case 86: YY_RULE_SETUP -#line 313 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 339 "detex.l" +{ LATEX; KILLARGS(2); } YY_BREAK case 87: -/* rule 87 can match eol */ YY_RULE_SETUP -#line 314 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 340 "detex.l" +{ LATEX; KILLARGS(2); } YY_BREAK case 88: YY_RULE_SETUP -#line 315 "../../../texk/detex/detex-src/detex.l" -; +#line 341 "detex.l" +{ LATEX; KILLARGS(3); } YY_BREAK case 89: YY_RULE_SETUP -#line 317 "../../../texk/detex/detex-src/detex.l" -/* display mode */ {BEGIN Display; IGNORE;} +#line 343 "detex.l" +/* ignore def begin */ {BEGIN Define; IGNORE;} YY_BREAK case 90: YY_RULE_SETUP -#line 318 "../../../texk/detex/detex-src/detex.l" +#line 344 "detex.l" BEGIN Normal; YY_BREAK case 91: /* rule 91 can match eol */ YY_RULE_SETUP -#line 319 "../../../texk/detex/detex-src/detex.l" +#line 345 "detex.l" NEWLINE; YY_BREAK case 92: YY_RULE_SETUP -#line 320 "../../../texk/detex/detex-src/detex.l" +#line 346 "detex.l" ; YY_BREAK case 93: YY_RULE_SETUP -#line 322 "../../../texk/detex/detex-src/detex.l" -/* math mode */ {BEGIN Math; IGNORE;} +#line 348 "detex.l" +/* formula mode */ {LaBEGIN LaFormula; NOUN;} YY_BREAK case 94: YY_RULE_SETUP -#line 323 "../../../texk/detex/detex-src/detex.l" +#line 349 "detex.l" BEGIN Normal; YY_BREAK case 95: /* rule 95 can match eol */ YY_RULE_SETUP -#line 324 "../../../texk/detex/detex-src/detex.l" +#line 350 "detex.l" NEWLINE; YY_BREAK case 96: YY_RULE_SETUP -#line 325 "../../../texk/detex/detex-src/detex.l" -; +#line 351 "detex.l" +VERBNOUN; YY_BREAK case 97: YY_RULE_SETUP -#line 326 "../../../texk/detex/detex-src/detex.l" +#line 352 "detex.l" ; YY_BREAK case 98: YY_RULE_SETUP -#line 328 "../../../texk/detex/detex-src/detex.l" -/* process files */ {LaBEGIN LaInclude; IGNORE;} +#line 354 "detex.l" +/* display mode */ {LaBEGIN LaDisplay; NOUN;} YY_BREAK case 99: YY_RULE_SETUP -#line 329 "../../../texk/detex/detex-src/detex.l" -{ IncludeFile(yytext); - BEGIN Normal; - } +#line 355 "detex.l" +BEGIN Normal; YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP -#line 332 "../../../texk/detex/detex-src/detex.l" +#line 356 "detex.l" NEWLINE; YY_BREAK case 101: YY_RULE_SETUP -#line 333 "../../../texk/detex/detex-src/detex.l" -; +#line 357 "detex.l" +VERBNOUN; YY_BREAK case 102: YY_RULE_SETUP -#line 335 "../../../texk/detex/detex-src/detex.l" -{BEGIN IncludeOnly; IGNORE;} +#line 358 "detex.l" +; YY_BREAK case 103: YY_RULE_SETUP -#line 336 "../../../texk/detex/detex-src/detex.l" -AddInclude(yytext); +#line 360 "detex.l" +/* display mode */ {BEGIN Display; NOUN;} YY_BREAK case 104: YY_RULE_SETUP -#line 337 "../../../texk/detex/detex-src/detex.l" -{ if (csbIncList == 0) - rgsbIncList[csbIncList++] = '\0'; - BEGIN Normal; - } +#line 361 "detex.l" +BEGIN Normal; YY_BREAK case 105: /* rule 105 can match eol */ YY_RULE_SETUP -#line 341 "../../../texk/detex/detex-src/detex.l" +#line 362 "detex.l" NEWLINE; YY_BREAK case 106: YY_RULE_SETUP -#line 342 "../../../texk/detex/detex-src/detex.l" -; +#line 363 "detex.l" +VERBNOUN; YY_BREAK case 107: YY_RULE_SETUP -#line 344 "../../../texk/detex/detex-src/detex.l" -{BEGIN Input; IGNORE;} +#line 364 "detex.l" +; YY_BREAK case 108: YY_RULE_SETUP -#line 345 "../../../texk/detex/detex-src/detex.l" -{ InputFile(yytext); - BEGIN Normal; - } +#line 366 "detex.l" +/* math mode */ {BEGIN Math; NOUN;} YY_BREAK case 109: -/* rule 109 can match eol */ YY_RULE_SETUP -#line 348 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 367 "detex.l" +BEGIN Normal; YY_BREAK case 110: +/* rule 110 can match eol */ YY_RULE_SETUP -#line 349 "../../../texk/detex/detex-src/detex.l" -; +#line 368 "detex.l" +NEWLINE; YY_BREAK case 111: -/* rule 111 can match eol */ YY_RULE_SETUP -#line 351 "../../../texk/detex/detex-src/detex.l" -/* handle ligatures */ {(void)printf("%.2s", yytext+1);} +#line 369 "detex.l" +; YY_BREAK case 112: -/* rule 112 can match eol */ YY_RULE_SETUP -#line 352 "../../../texk/detex/detex-src/detex.l" -{(void)printf("%.1s", yytext+1);} +#line 370 "detex.l" +VERBNOUN; YY_BREAK case 113: YY_RULE_SETUP -#line 353 "../../../texk/detex/detex-src/detex.l" -BEGIN LaBreak; +#line 371 "detex.l" +; YY_BREAK case 114: YY_RULE_SETUP -#line 355 "../../../texk/detex/detex-src/detex.l" -/* ignore other \cs */ {BEGIN Control; IGNORE;} +#line 373 "detex.l" +/* process files */ {LaBEGIN LaInclude; IGNORE;} YY_BREAK case 115: YY_RULE_SETUP -#line 356 "../../../texk/detex/detex-src/detex.l" -SPACE; +#line 374 "detex.l" +{ IncludeFile(yytext); + BEGIN Normal; + } YY_BREAK case 116: /* rule 116 can match eol */ YY_RULE_SETUP -#line 357 "../../../texk/detex/detex-src/detex.l" +#line 377 "detex.l" NEWLINE; YY_BREAK case 117: YY_RULE_SETUP -#line 358 "../../../texk/detex/detex-src/detex.l" -IGNORE; +#line 378 "detex.l" +; YY_BREAK case 118: YY_RULE_SETUP -#line 359 "../../../texk/detex/detex-src/detex.l" +#line 380 "detex.l" +{BEGIN IncludeOnly; IGNORE;} + YY_BREAK +case 119: +YY_RULE_SETUP +#line 381 "detex.l" +AddInclude(yytext); + YY_BREAK +case 120: +YY_RULE_SETUP +#line 382 "detex.l" +{ if (csbIncList == 0) + rgsbIncList[csbIncList++] = '\0'; + BEGIN Normal; + } + YY_BREAK +case 121: +/* rule 121 can match eol */ +YY_RULE_SETUP +#line 386 "detex.l" +NEWLINE; + YY_BREAK +case 122: +YY_RULE_SETUP +#line 387 "detex.l" +; + YY_BREAK +case 123: +YY_RULE_SETUP +#line 389 "detex.l" +/* process files */ {LaBEGIN LaSubfile; IGNORE;} + YY_BREAK +case 124: +YY_RULE_SETUP +#line 390 "detex.l" +{ IncludeFile(yytext); + BEGIN Normal; + } + YY_BREAK +case 125: +/* rule 125 can match eol */ +YY_RULE_SETUP +#line 393 "detex.l" +NEWLINE; + YY_BREAK +case 126: +YY_RULE_SETUP +#line 394 "detex.l" +; + YY_BREAK +case 127: +YY_RULE_SETUP +#line 396 "detex.l" +{BEGIN Input; IGNORE;} + YY_BREAK +case 128: +YY_RULE_SETUP +#line 397 "detex.l" +{ InputFile(yytext); + BEGIN Normal; + } + YY_BREAK +case 129: +/* rule 129 can match eol */ +YY_RULE_SETUP +#line 400 "detex.l" +NEWLINE; + YY_BREAK +case 130: +YY_RULE_SETUP +#line 401 "detex.l" +; + YY_BREAK +/* escaping commands */ +case 131: +YY_RULE_SETUP +#line 404 "detex.l" +putchar('/'); + YY_BREAK +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 406 "detex.l" +/* handle ligatures */ {(void)printf("%.2s", yytext+1);} + YY_BREAK +case 133: +/* rule 133 can match eol */ +YY_RULE_SETUP +#line 407 "detex.l" +{(void)printf("%.1s", yytext+1);} + YY_BREAK +case 134: +YY_RULE_SETUP +#line 408 "detex.l" +{NEWLINE;} /*BEGIN LaBreak;*/ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 410 "detex.l" +/* ignore other \cs */ {BEGIN Control; IGNORE;} + YY_BREAK +case 136: +YY_RULE_SETUP +#line 411 "detex.l" +SPACE; + YY_BREAK +case 137: +/* rule 137 can match eol */ +YY_RULE_SETUP +#line 412 "detex.l" +NEWLINE; + YY_BREAK +case 138: +YY_RULE_SETUP +#line 413 "detex.l" +IGNORE; + YY_BREAK +case 139: +YY_RULE_SETUP +#line 414 "detex.l" { if (yytext==NULL || strlen(yytext)==0 - || atoi(yytext)==4) + || atoi(yytext)>=0) NEWLINE; BEGIN Normal; } YY_BREAK -case 119: +case 140: YY_RULE_SETUP -#line 365 "../../../texk/detex/detex-src/detex.l" +#line 420 "detex.l" IGNORE; YY_BREAK -case 120: +case 141: YY_RULE_SETUP -#line 366 "../../../texk/detex/detex-src/detex.l" +#line 421 "detex.l" IGNORE; YY_BREAK -case 121: -/* rule 121 can match eol */ +case 142: +/* rule 142 can match eol */ YY_RULE_SETUP -#line 367 "../../../texk/detex/detex-src/detex.l" -{BEGIN Normal; NEWLINE;} +#line 422 "detex.l" +{BEGIN Normal; /*NEWLINE;*/} YY_BREAK -case 122: +case 143: +YY_RULE_SETUP +#line 423 "detex.l" +{++currBracesLevel;BEGIN Normal; IGNORE;} + YY_BREAK +case 144: YY_RULE_SETUP -#line 368 "../../../texk/detex/detex-src/detex.l" +#line 424 "detex.l" {BEGIN Normal; IGNORE;} YY_BREAK -case 123: +case 145: YY_RULE_SETUP -#line 369 "../../../texk/detex/detex-src/detex.l" +#line 425 "detex.l" {yyless(0);BEGIN Normal;} YY_BREAK -case 124: +case 146: YY_RULE_SETUP -#line 371 "../../../texk/detex/detex-src/detex.l" +#line 427 "detex.l" /* special characters */ IGNORE; YY_BREAK -case 125: +case 147: YY_RULE_SETUP -#line 372 "../../../texk/detex/detex-src/detex.l" +#line 428 "detex.l" IGNORE; YY_BREAK -case 126: +case 148: YY_RULE_SETUP -#line 373 "../../../texk/detex/detex-src/detex.l" +#line 429 "detex.l" SPACE; YY_BREAK -case 127: +case 149: +YY_RULE_SETUP +#line 430 "detex.l" +putchar('-'); + YY_BREAK +case 150: +YY_RULE_SETUP +#line 431 "detex.l" +putchar('"'); + YY_BREAK +case 151: +YY_RULE_SETUP +#line 432 "detex.l" +putchar('\''); + YY_BREAK +case 152: YY_RULE_SETUP -#line 375 "../../../texk/detex/detex-src/detex.l" +#line 433 "detex.l" +putchar('"'); + YY_BREAK +case 153: +YY_RULE_SETUP +#line 434 "detex.l" +putchar('"'); + YY_BREAK +/* braces */ +case 154: +YY_RULE_SETUP +#line 437 "detex.l" +{ ++currBracesLevel; + } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 439 "detex.l" +{ + --currBracesLevel; + if (currBracesLevel == footnoteLevel) { + putchar(')'); + footnoteLevel = -100; + } + SPACE;} + YY_BREAK +case 156: +YY_RULE_SETUP +#line 446 "detex.l" { if (fWord) (void)printf("%s\n", yytext); else ECHO; } YY_BREAK -case 128: +case 157: YY_RULE_SETUP -#line 380 "../../../texk/detex/detex-src/detex.l" +#line 451 "detex.l" if (!fWord) ECHO; YY_BREAK -case 129: -/* rule 129 can match eol */ +case 158: YY_RULE_SETUP -#line 381 "../../../texk/detex/detex-src/detex.l" +#line 452 "detex.l" if (!fWord) ECHO; YY_BREAK -case 130: +case 159: +/* rule 159 can match eol */ YY_RULE_SETUP -#line 383 "../../../texk/detex/detex-src/detex.l" +#line 453 "detex.l" +if (!fWord) NEWLINE; + YY_BREAK +case 160: +YY_RULE_SETUP +#line 454 "detex.l" +if (!fWord) putchar('\t'); + YY_BREAK +case 161: +YY_RULE_SETUP +#line 456 "detex.l" { BEGIN LaOptArg; } YY_BREAK -case 131: +case 162: YY_RULE_SETUP -#line 384 "../../../texk/detex/detex-src/detex.l" +#line 457 "detex.l" { cOpenBrace++; } YY_BREAK -case 132: +case 163: +/* rule 163 can match eol */ YY_RULE_SETUP -#line 385 "../../../texk/detex/detex-src/detex.l" +#line 458 "detex.l" { cOpenBrace--; if (cOpenBrace == 0) { @@ -2671,30 +3043,30 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 164: YY_RULE_SETUP -#line 392 "../../../texk/detex/detex-src/detex.l" +#line 465 "detex.l" ; YY_BREAK -case 134: +case 165: YY_RULE_SETUP -#line 393 "../../../texk/detex/detex-src/detex.l" +#line 466 "detex.l" BEGIN LaMacro; YY_BREAK -case 135: -/* rule 135 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 394 "../../../texk/detex/detex-src/detex.l" +#line 467 "detex.l" ; YY_BREAK -case 136: +case 167: YY_RULE_SETUP -#line 396 "../../../texk/detex/detex-src/detex.l" +#line 469 "detex.l" { BEGIN LaOptArg2; } YY_BREAK -case 137: +case 168: YY_RULE_SETUP -#line 397 "../../../texk/detex/detex-src/detex.l" +#line 470 "detex.l" { if (cOpenBrace == 0) { if (--cArgs==0) @@ -2706,32 +3078,32 @@ YY_RULE_SETUP cOpenBrace++; } YY_BREAK -case 138: +case 169: YY_RULE_SETUP -#line 407 "../../../texk/detex/detex-src/detex.l" +#line 480 "detex.l" { cOpenBrace--; } YY_BREAK -case 139: +case 170: YY_RULE_SETUP -#line 408 "../../../texk/detex/detex-src/detex.l" +#line 481 "detex.l" ; YY_BREAK -case 140: +case 171: YY_RULE_SETUP -#line 409 "../../../texk/detex/detex-src/detex.l" +#line 482 "detex.l" BEGIN LaMacro2; YY_BREAK -case 141: +case 172: YY_RULE_SETUP -#line 410 "../../../texk/detex/detex-src/detex.l" +#line 483 "detex.l" ; YY_BREAK -case 142: +case 173: YY_RULE_SETUP -#line 411 "../../../texk/detex/detex-src/detex.l" +#line 484 "detex.l" ECHO; YY_BREAK -#line 2735 "../../../texk/detex/detex-src/detex.c" +#line 3106 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(Define): case YY_STATE_EOF(Display): @@ -2746,6 +3118,7 @@ case YY_STATE_EOF(LaEnd): case YY_STATE_EOF(LaEnv): case YY_STATE_EOF(LaFormula): case YY_STATE_EOF(LaInclude): +case YY_STATE_EOF(LaSubfile): case YY_STATE_EOF(LaMacro): case YY_STATE_EOF(LaOptArg): case YY_STATE_EOF(LaMacro2): @@ -2897,7 +3270,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -2926,7 +3299,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -2939,7 +3312,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2953,7 +3326,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2966,7 +3339,7 @@ static int yy_get_next_buffer (void) } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -3008,9 +3381,9 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); @@ -3045,10 +3418,10 @@ 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 >= 1067 ) + if ( yy_current_state >= 1362 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -3073,11 +3446,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 >= 1067 ) + if ( yy_current_state >= 1362 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1066); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 1361); return yy_is_jam ? 0 : yy_current_state; } @@ -3096,7 +3469,7 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - yy_size_t number_to_move = (yy_n_chars) + 2; + int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = @@ -3108,7 +3481,7 @@ static int yy_get_next_buffer (void) yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -3147,7 +3520,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3171,7 +3544,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) - return EOF; + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -3419,7 +3792,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -3427,15 +3800,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; // After all that talk, this was set to 1 anyways... + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -3464,7 +3837,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -3474,7 +3847,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) @@ -3483,7 +3856,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -3506,7 +3879,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes(yystr,(int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -3516,15 +3889,15 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; + n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -3550,7 +3923,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -3580,7 +3953,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -3603,7 +3976,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -3659,10 +4032,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -3671,8 +4044,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -3730,7 +4103,7 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) @@ -3743,7 +4116,7 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) @@ -3753,7 +4126,8 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 411 "../../../texk/detex/detex-src/detex.l" +#line 484 "detex.l" + /****** @@ -3835,14 +4209,14 @@ main(int cArgs, char *rgsbArgs[]) case CHWORDOPT: fWord = 1; break; + case CHREPLACE: + fReplace = 1; + break; default: -#ifdef OS2 - OS2UsageExit(); -#else sbBadOpt[0] = *pch; sbBadOpt[1] = '\0'; Warning("unknown option ignored -", sbBadOpt); -#endif + UsageExit(); } iArgs++; } @@ -3934,9 +4308,10 @@ void SetEnvIgnore(const char *sbEnvList) { char *sb; - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); (void) strcpy(sb, sbEnvList); + + csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); if (csbEnvIgnore == my_ERROR) ErrorExit("The environment list contains too many environments"); @@ -3944,7 +4319,7 @@ SetEnvIgnore(const char *sbEnvList) /****** ** BeginEnv -- checks to see if sbEnv is in the list rgsbEnvIgnore. If it -** is, sbCurrentEnv is set to sbEnv. +** is, sbCurrentIgnoredEnv is set to sbEnv. ******/ int @@ -3953,10 +4328,10 @@ BeginEnv(const char *sbEnv) int i; if (!fLatex) return(0); - for (i = 0; i < csbEnvIgnore; i++) + for (i = 0; i < csbEnvIgnore; ++i) if (strcmp(sbEnv, rgsbEnvIgnore[i]) == 0) { - (void)strcpy(sbCurrentEnv, sbEnv); - return(1); + (void)strcpy(sbCurrentIgnoredEnv, sbEnv); + return(1); } return(0); } @@ -3969,7 +4344,7 @@ int EndEnv(const char *sbEnv) { if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) + if (strcmp(sbEnv, sbCurrentIgnoredEnv) == 0) return(1); return(0); } @@ -3982,6 +4357,8 @@ EndEnv(const char *sbEnv) void InputFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; rgfp[cfp++] = yyin; @@ -4004,6 +4381,8 @@ InputFile(char *sbFile) void IncludeFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; if (!InList(sbFile)) @@ -4119,8 +4498,9 @@ SeparateList(char *sbList, char *rgsbList[], char chSep, int csbMax) while (sbList && *sbList && csbList < csbMax) { rgsbList[csbList++] = sbList; - if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; + if ((sbList = strchr(sbList, chSep))) { + *sbList++ = '\0'; + } } return(sbList && *sbList ? my_ERROR : csbList); } @@ -4178,19 +4558,23 @@ TexOpen(char *sbFile) /* character and it does not follow a '.' or a '/' */ if (pch != NULL && pch > &(sbFullPath[0]) && *(pch - 1) != '.' && *(pch - 1) != '/' - && (fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + && (fp = fopen(sbFullPath, "r")) != NULL) { + return(fp); + } /* just base name, add .tex to the name */ sbNew = SafeMalloc(strlen(sbFullPath) + 5, "malloc for TexOpen failed"); (void)strcpy(sbNew, sbFullPath); (void)strcat(sbNew, ".tex"); - if ((fp = fopen(sbNew, "r")) != NULL) - return(fp); + if ((fp = fopen(sbNew, "r")) != NULL) { + free(sbNew); + return(fp); + } + free(sbNew); /* try sbFile regardless */ if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + return(fp); } return NULL; #else @@ -4239,25 +4623,24 @@ ErrorExit(const char *sb1) (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); exit(1); } -#ifdef OS2 /****** -** OS2UsageExit -- print OS/2 usage message and exit. +** UsageExit -- print OS/2 usage message and exit. ******/ void -OS2UsageExit(void) +UsageExit(void) { - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", + (void)printf("\n%s [ -clnrstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", sbProgName); puts(" -c echo LaTeX \\cite, \\ref, and \\pageref values\n \ -e <env-list> list of LaTeX environments to ignore\n \ -l force latex mode\n \ --n do not follow \\input and \\include\n \ +-n do not follow \\input, \\include and \\subfile\n \ +-r replace math with \"noun\" and \"noun verbs noun\" to preserve grammar\n \ -s replace control sequences with space\n \ -t force tex mode\n \ -w word only output"); exit(0); } -#endif diff --git a/Build/source/texk/detex/detex-src/detex.h b/Build/source/texk/detex/detex-src/detex.h index ef0e65840a0..1067f9520ce 100644 --- a/Build/source/texk/detex/detex-src/detex.h +++ b/Build/source/texk/detex/detex-src/detex.h @@ -63,9 +63,9 @@ #define MAXINPUTPATHS 10 -#define DEFAULTENV "array,eqnarray,equation,figure,mathmatica,picture,table,verbatim" +#define DEFAULTENV "algorithm,align,array,bmatrix,displaymath,eqnarray,equation,floatfig,floating,longtable,picture,pmatrix,psfrags,pspicture,smallmatrix,smallpmatrix,tabular,tikzpicture,verbatim,vmatrix,wrapfigure" #define CHENVSEP ',' -#define MAXENVS 10 +#define MAXENVS 25 #define CCHMAXENV 100 /****** @@ -80,5 +80,6 @@ #define CHSPACEOPT 's' #define CHTEXOPT 't' #define CHWORDOPT 'w' +#define CHREPLACE 'r' #define my_ERROR -1 diff --git a/Build/source/texk/detex/detex-src/detex.l b/Build/source/texk/detex/detex-src/detex.l index 059a9cfd929..f869455277a 100644 --- a/Build/source/texk/detex/detex-src/detex.l +++ b/Build/source/texk/detex/detex-src/detex.l @@ -1,10 +1,6 @@ %option never-interactive %top{ -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; -#endif - /* * Copyright (c) 1986-2007 Purdue University * All rights reserved. @@ -72,7 +68,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #include <string.h> #else #include <strings.h> -#define strchr index #define strrchr rindex #endif #ifndef MAXPATHLEN @@ -96,6 +91,8 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define LaBEGIN if (fLatex) BEGIN #define IGNORE if (fSpace && !fWord) putchar(' ') +#define NOUN if (fSpace && !fWord && !fReplace) putchar(' '); else {if (fReplace) printf("noun");} +#define VERBNOUN if (fReplace) printf(" verbs noun"); /* puts a verb and a noun to make grammar checking work */ #define SPACE if (!fWord) putchar(' ') #define NEWLINE if (!fWord) putchar('\n') #define LATEX fLatex=!fForcetex @@ -103,15 +100,18 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 #define CITE(x) if (fLatex && !fCite) KILLARGS(x) +#define NO_MALLOC_DECL + void AddInclude(char *sbFile); void ErrorExit(const char *sb1); +void UsageExit(void); void IncludeFile(char *sbFile); void InputFile(char *sbFile); void SetEnvIgnore(const char *sbEnvList); #ifndef KPATHSEA void SetInputPaths(void); #endif -void Warning(const char *sb1, const char *sb2); +void Warning(const char *sb1, const char *sb2); int BeginEnv(const char *sbEnv); int EndEnv(const char *sbEnv); int InList(char *sbFile); @@ -132,7 +132,7 @@ void OS2UsageExit(void); char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ +char sbCurrentIgnoredEnv[CCHMAXENV]; /* current environment being ignored */ char *sbProgName; /* name we were invoked with */ #ifndef NOFILE /* might be defined in <sys/param.h> */ #define NOFILE 256 @@ -150,6 +150,11 @@ int fFollow = 1; /* flag to follow input/include */ int fCite = 0; /* flag to echo \cite and \ref args */ int fSpace = 0; /* flag to replace \cs with space */ int fForcetex = 0; /* flag to inhibit latex mode */ +int fShowPictures = 0; /* flag to show picture names */ +int fReplace = 0; /* flag to replace envirnments with "noun" */ + +int currBracesLevel = 0; +int footnoteLevel = -100; #ifdef FLEX_SCANNER /* flex has contexts for buffers that need to be switched when file changes @@ -173,20 +178,21 @@ VU {U}|ex VD {S}(({N}{S}{VU})|(\\{W})){S} VG {VD}(plus{VD})?(minus{VD})? Z \*? +VERBSYMBOL =|\\leq|\\geq|\\in|>|<|\\subseteq|\subseteq|\\subset|\\supset|\\sim|\\neq|\\mapsto %Start Define Display IncludeOnly Input Math Normal Control -%Start LaBegin LaDisplay LaEnd LaEnv LaFormula LaInclude +%Start LaBegin LaDisplay LaEnd LaEnv LaFormula LaInclude LaSubfile %Start LaMacro LaOptArg LaMacro2 LaOptArg2 LaVerbatim %start LaBreak LaPicture %% <Normal>"%".* /* ignore comments */ ; -<Normal>"\\begin"{S}"{"{S}"document"{S}"}" {LATEX; IGNORE;} +<Normal>"\\begin"{S}"{"{S}"document"{S}"}""\n"* {LATEX; IGNORE;} <Normal>"\\begin" /* environment start */ {LaBEGIN LaBegin; IGNORE;} -<LaBegin>{S}"{"{S}"verbatim"{S}"}" { if (BeginEnv("verbatim")) +<LaBegin>{S}"{"{S}"verbatim"{S}"}" { if (BeginEnv("verbatim")) BEGIN LaEnv; else BEGIN LaVerbatim; @@ -198,24 +204,40 @@ Z \*? <LaVerbatim>. ECHO; <LaBegin>{S}"{"{S}"minipage"{S}"}" { KILLARGS(1); - if (BeginEnv("minpage")) + if (BeginEnv("minipage")) + BEGIN LaEnv; + else + BEGIN LaMacro; /* Normal; */ + IGNORE; + } + +<LaBegin>{S}"{"{S}"table"{S}"}"{S}"["{W}"]" { + if (BeginEnv("table")) BEGIN LaEnv; else BEGIN Normal; IGNORE; } -<LaBegin>{W} { if (BeginEnv(yytext)) +<LaBegin>{S}"{"{S}"figure"{S}"}"{S}"["{W}"]" { + if (BeginEnv("figure")) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } + +<LaBegin>{W} { if (BeginEnv(yytext)) BEGIN LaEnv; else BEGIN Normal; IGNORE; } -<LaBegin>"\n" NEWLINE; + /*<LaBegin>"\n" NEWLINE;*/ <LaBegin>. ; <LaEnv>"\\end" /* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} -<LaEnv>"\n" NEWLINE; +<LaEnv>"\n"+ ;/*NEWLINE;*/ <LaEnv>. ; <LaEnd>{W} /* end environment */ { if (EndEnv(yytext)) @@ -223,7 +245,7 @@ Z \*? IGNORE; } <LaEnd>"}" {BEGIN LaEnv; IGNORE;} -<LaEnd>"\n" NEWLINE; + /*<LaEnd>"\n" NEWLINE;*/ <LaEnd>. ; <Normal>"\\kern"{HD} ; @@ -232,6 +254,7 @@ Z \*? <Normal>"\\hskip"{HG} ; <Normal>"\\hspace"{Z}{S}"{"{HG}"}" ; <Normal>"\\addvspace"{S}"{"{VG}"}" ; +<Normal>"{"{N}"pt}" ; /* hack to fix \begin{minipage}{300pt} */ <Normal>"\\newlength" { KILLARGS(1); } <Normal>"\\setlength" { KILLARGS(2); } @@ -252,7 +275,8 @@ Z \*? <Normal>"\\includegraphics"[^{]* { LaBEGIN LaPicture; } <LaPicture>"{" ; -<LaPicture>[^{}]+ { printf("<Picture %s>", yytext); } +<LaPicture>[^{}]+ { if(fShowPictures) { printf("<Picture %s>", yytext); } } +<LaPicture>"\}"{S}"\n"+ BEGIN Normal; <LaPicture>"\}" BEGIN Normal; <Normal>"\\definecolor" { KILLARGS(3); } @@ -262,35 +286,53 @@ Z \*? <Normal>"\\fcolorbox" { KILLARGS(3); } <Normal>"\\pagecolor" { KILLARGS(1); } <Normal>"\\foilhead" { STRIPARGS(1); } - -<Normal>"\\part"{Z} ; -<Normal>"\\section"{Z} ; -<Normal>"\\subsection"{Z} ; -<Normal>"\\subsubsection"{Z} ; -<Normal>"\\paragraph"{Z} ; -<Normal>"\\sunparagraph"{Z} ; +<Normal>"\\addfontfeature" { KILLARGS(1); } +<Normal>"\\thispagestyle" { KILLARGS(1); } +<Normal>"\\addcontentsline" { KILLARGS(3); } + +<Normal>"\\part"{Z} ;/*NEWLINE;*/ +<Normal>"\\chapter"{Z} ;/*NEWLINE;*/ +<Normal>"\\section"{Z} ;/*NEWLINE;*/ +<Normal>"\\subsection"{Z} ;/*NEWLINE;*/ +<Normal>"\\subsubsection"{Z} ;/*NEWLINE;*/ +<Normal>"\\paragraph"{Z} ;/*NEWLINE;*/ +<Normal>"\\subparagraph"{Z} ;/*NEWLINE;*/ <Normal>"\\bibitem" /* ignore args */ {KILLARGS(1); IGNORE;} <Normal>"\\bibliography" /* of these \cs */ {KILLARGS(1); IGNORE;} <Normal>"\\bibstyle" {KILLARGS(1); IGNORE;} -<Normal>"\\cite" {CITE(1); IGNORE;} +<Normal>" "?"\\cite" {KILLARGS(1);} /* kill space before */ <Normal>"\\documentstyle" {LATEX; KILLARGS(1); IGNORE;} <Normal>"\\documentclass" {LATEX; KILLARGS(1); IGNORE;} <Normal>"\\usepackage" {KILLARGS(1); IGNORE;} <Normal>"\\end" {KILLARGS(1); IGNORE;} -<Normal>"\\index" {KILLARGS(1); SPACE;} -<Normal>"\\footnote" {KILLARGS(1); SPACE;} +<Normal>"\\hypersetup" {KILLARGS(1);} +<Normal>"\\index" {KILLARGS(1);} + /*<Normal>"\\footnote" {KILLARGS(1); SPACE;}*/ <Normal>"\\label" {KILLARGS(1); IGNORE;} +<Normal>"\\nameref" {CITE(1); IGNORE;} <Normal>"\\pageref" {CITE(1); IGNORE;} <Normal>"\\pagestyle" {KILLARGS(1); IGNORE;} <Normal>"\\ref" {CITE(1); IGNORE;} -<Normal>"\\setcounter" {KILLARGS(1); IGNORE;} +<Normal>"\\setcounter" {KILLARGS(2); IGNORE;} +<Normal>"\\addtocounter" {KILLARGS(2); IGNORE;} +<Normal>"\\newcounter" { KILLARGS(1); } +<Normal>"\\stepcounter" { KILLARGS(2); } + +<Normal>"\\fontspec" {KILLARGS(1);} + +<Normal>"\\footnote"(\[([^\]])+\])?"{" { + putchar('('); + footnoteLevel = currBracesLevel; + ++currBracesLevel; + } <Normal>"\\verb" /* ignore \verb<ch>...<ch> */ { if (fLatex) { char verbchar, c; verbchar = input(); while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; + /*if (c == '\n') + NEWLINE;*/ + putchar(c); } IGNORE; } @@ -304,32 +346,36 @@ Z \*? <Define>"\n" NEWLINE; <Define>. ; -<Normal>"\\(" /* formula mode */ {LaBEGIN LaFormula; IGNORE;} +<Normal>"\\(" /* formula mode */ {LaBEGIN LaFormula; NOUN;} <LaFormula>"\\)" BEGIN Normal; <LaFormula>"\n" NEWLINE; +<LaFormula>{VERBSYMBOL} VERBNOUN; <LaFormula>. ; -<Normal>"\\[" /* display mode */ {LaBEGIN LaDisplay; IGNORE;} +<Normal>"\\[" /* display mode */ {LaBEGIN LaDisplay; NOUN;} <LaDisplay>"\\]" BEGIN Normal; <LaDisplay>"\n" NEWLINE; +<LaDisplay>{VERBSYMBOL} VERBNOUN; <LaDisplay>. ; -<Normal>"$$" /* display mode */ {BEGIN Display; IGNORE;} +<Normal>"$$" /* display mode */ {BEGIN Display; NOUN;} <Display>"$$" BEGIN Normal; <Display>"\n" NEWLINE; +<Display>{VERBSYMBOL} VERBNOUN; <Display>. ; -<Normal>"$" /* math mode */ {BEGIN Math; IGNORE;} +<Normal>"$" /* math mode */ {BEGIN Math; NOUN;} <Math>"$" BEGIN Normal; <Math>"\n" NEWLINE; <Math>"\\$" ; +<Math>{VERBSYMBOL} VERBNOUN; <Math>. ; <Normal>"\\include" /* process files */ {LaBEGIN LaInclude; IGNORE;} <LaInclude>[^{ \t\n}]+ { IncludeFile(yytext); BEGIN Normal; } -<LaInclude>"\n" NEWLINE; +<LaInclude>"\n"+ NEWLINE; <LaInclude>. ; <Normal>"\\includeonly" {BEGIN IncludeOnly; IGNORE;} @@ -338,51 +384,79 @@ Z \*? rgsbIncList[csbIncList++] = '\0'; BEGIN Normal; } -<IncludeOnly>"\n" NEWLINE; +<IncludeOnly>"\n"+ NEWLINE; <IncludeOnly>. ; +<Normal>"\\subfile" /* process files */ {LaBEGIN LaSubfile; IGNORE;} +<LaSubfile>[^{ \t\n}]+ { IncludeFile(yytext); + BEGIN Normal; + } +<LaSubfile>"\n"+ NEWLINE; +<LaSubfile>. ; + <Normal>"\\input" {BEGIN Input; IGNORE;} <Input>[^{ \t\n}]+ { InputFile(yytext); BEGIN Normal; } -<Input>"\n" NEWLINE; +<Input>"\n"+ NEWLINE; <Input>. ; + /* escaping commands */ +<Normal>"\\slash" putchar('/'); + <Normal>\\(aa|AA|ae|AE|oe|OE|ss)[ \t]*[ \t\n}] /* handle ligatures */ {(void)printf("%.2s", yytext+1);} <Normal>\\[OoijLl][ \t]*[ \t\n}] {(void)printf("%.1s", yytext+1);} -<Normal>"\\linebreak" BEGIN LaBreak; +<Normal>"\\linebreak"(\[[0-4]\])? {NEWLINE;} /*BEGIN LaBreak;*/ <Normal>\\[a-zA-Z@]+ /* ignore other \cs */ {BEGIN Control; IGNORE;} <Normal>"\\ " SPACE; <Normal>"\\\\"{Z}(\[[^\]]*\])? NEWLINE; <Normal>\\. IGNORE; <LaBreak>[0-4]? { if (yytext==NULL || strlen(yytext)==0 - || atoi(yytext)==4) + || atoi(yytext)>=0) NEWLINE; BEGIN Normal; } <Control>\\[a-zA-Z@]+ IGNORE; <Control>[a-zA-Z@0-9]*[-'=`][^ \t\n{]* IGNORE; -<Control>"\n" {BEGIN Normal; NEWLINE;} -<Control>[ \t]*[{]* {BEGIN Normal; IGNORE;} +<Control>"\n"+ {BEGIN Normal; /*NEWLINE;*/} +<Control>[ \t]*[{]+ {++currBracesLevel;BEGIN Normal; IGNORE;} +<Control>[ \t]* {BEGIN Normal; IGNORE;} <Control>. {yyless(0);BEGIN Normal;} -<Normal>[{}\\|] /* special characters */ IGNORE; -<Normal>[!?]"`" IGNORE; +<Normal>[\\|] /* special characters */ IGNORE; +<Normal>[!?]"`" IGNORE; <Normal>~ SPACE; - +<Normal>-{2,3} putchar('-'); +<Normal>`` putchar('"'); +<Normal>` putchar('\''); +<Normal>'' putchar('"'); +<Normal>,, putchar('"'); + + /* braces */ +<Normal>"{" { ++currBracesLevel; + } +<Normal>"}" { + --currBracesLevel; + if (currBracesLevel == footnoteLevel) { + putchar(')'); + footnoteLevel = -100; + } + SPACE;} <Normal>{W}[']*{W} { if (fWord) (void)printf("%s\n", yytext); else ECHO; } <Normal>[0-9]+ if (!fWord) ECHO; -<Normal>(.|\n) if (!fWord) ECHO; +<Normal>. if (!fWord) ECHO; +<Normal>"\n" if (!fWord) NEWLINE; +<Normal>("\t")+ if (!fWord) putchar('\t'); <LaMacro>"\[" { BEGIN LaOptArg; } <LaMacro>"{" { cOpenBrace++; } -<LaMacro>"}" { cOpenBrace--; +<LaMacro>"}""\n"{0,1} { cOpenBrace--; if (cOpenBrace == 0) { if (--cArgs==0) @@ -409,6 +483,7 @@ Z \*? <LaOptArg2>"\]" BEGIN LaMacro2; <LaOptArg2>. ; %% + /****** ** main -- ** Set sbProgName to the base of arg 0. @@ -488,14 +563,14 @@ main(int cArgs, char *rgsbArgs[]) case CHWORDOPT: fWord = 1; break; + case CHREPLACE: + fReplace = 1; + break; default: -#ifdef OS2 - OS2UsageExit(); -#else sbBadOpt[0] = *pch; sbBadOpt[1] = '\0'; Warning("unknown option ignored -", sbBadOpt); -#endif + UsageExit(); } iArgs++; } @@ -587,9 +662,10 @@ void SetEnvIgnore(const char *sbEnvList) { char *sb; - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); (void) strcpy(sb, sbEnvList); + + csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); if (csbEnvIgnore == my_ERROR) ErrorExit("The environment list contains too many environments"); @@ -597,7 +673,7 @@ SetEnvIgnore(const char *sbEnvList) /****** ** BeginEnv -- checks to see if sbEnv is in the list rgsbEnvIgnore. If it -** is, sbCurrentEnv is set to sbEnv. +** is, sbCurrentIgnoredEnv is set to sbEnv. ******/ int @@ -606,10 +682,10 @@ BeginEnv(const char *sbEnv) int i; if (!fLatex) return(0); - for (i = 0; i < csbEnvIgnore; i++) + for (i = 0; i < csbEnvIgnore; ++i) if (strcmp(sbEnv, rgsbEnvIgnore[i]) == 0) { - (void)strcpy(sbCurrentEnv, sbEnv); - return(1); + (void)strcpy(sbCurrentIgnoredEnv, sbEnv); + return(1); } return(0); } @@ -622,7 +698,7 @@ int EndEnv(const char *sbEnv) { if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) + if (strcmp(sbEnv, sbCurrentIgnoredEnv) == 0) return(1); return(0); } @@ -635,6 +711,8 @@ EndEnv(const char *sbEnv) void InputFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; rgfp[cfp++] = yyin; @@ -657,6 +735,8 @@ InputFile(char *sbFile) void IncludeFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; if (!InList(sbFile)) @@ -772,8 +852,9 @@ SeparateList(char *sbList, char *rgsbList[], char chSep, int csbMax) while (sbList && *sbList && csbList < csbMax) { rgsbList[csbList++] = sbList; - if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; + if ((sbList = strchr(sbList, chSep))) { + *sbList++ = '\0'; + } } return(sbList && *sbList ? my_ERROR : csbList); } @@ -831,19 +912,23 @@ TexOpen(char *sbFile) /* character and it does not follow a '.' or a '/' */ if (pch != NULL && pch > &(sbFullPath[0]) && *(pch - 1) != '.' && *(pch - 1) != '/' - && (fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + && (fp = fopen(sbFullPath, "r")) != NULL) { + return(fp); + } /* just base name, add .tex to the name */ sbNew = SafeMalloc(strlen(sbFullPath) + 5, "malloc for TexOpen failed"); (void)strcpy(sbNew, sbFullPath); (void)strcat(sbNew, ".tex"); - if ((fp = fopen(sbNew, "r")) != NULL) - return(fp); + if ((fp = fopen(sbNew, "r")) != NULL) { + free(sbNew); + return(fp); + } + free(sbNew); /* try sbFile regardless */ if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + return(fp); } return NULL; #else @@ -892,24 +977,23 @@ ErrorExit(const char *sb1) (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); exit(1); } -#ifdef OS2 /****** -** OS2UsageExit -- print OS/2 usage message and exit. +** UsageExit -- print OS/2 usage message and exit. ******/ void -OS2UsageExit(void) +UsageExit(void) { - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", + (void)printf("\n%s [ -clnrstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", sbProgName); puts(" -c echo LaTeX \\cite, \\ref, and \\pageref values\n \ -e <env-list> list of LaTeX environments to ignore\n \ -l force latex mode\n \ --n do not follow \\input and \\include\n \ +-n do not follow \\input, \\include and \\subfile\n \ +-r replace math with \"noun\" and \"noun verbs noun\" to preserve grammar\n \ -s replace control sequences with space\n \ -t force tex mode\n \ -w word only output"); exit(0); } -#endif diff --git a/Build/source/texk/detex/detex-src/detex.man b/Build/source/texk/detex/detex-src/detex.man index 8093d154b29..2b79521a208 100644 --- a/Build/source/texk/detex/detex-src/detex.man +++ b/Build/source/texk/detex/detex-src/detex.man @@ -1,4 +1,4 @@ -.TH DETEX 1 "12 August 1993" "Purdue University" +.TH DETEX 1L "12 August 1993" "Purdue University" .SH NAME detex \- a filter to strip \fITeX\fP commands from a .tex file. .SH SYNOPSIS @@ -6,7 +6,7 @@ detex \- a filter to strip \fITeX\fP commands from a .tex file. [ \fB\-clnstw\fR ] [ \fB\-e\fI environment-list\fR ] [ \fIfilename\fR[.tex] ... ] .SH DESCRIPTION .I Detex -(Version 2.6) +(Version 2.8.3) reads each file in sequence, removes all comments and .I TeX control sequences @@ -46,8 +46,8 @@ mode regardless of input content. .PP Text in various environment modes of .I LaTeX -is ignored. The default modes are array, eqnarray, equation, figure, -mathmatica, picture, table and verbatim. The +is ignored. The default modes are array, eqnarray, equation, longtable, +picture, tabular and verbatim. The .B \-e option can be used to specify a comma separated .I environment-list @@ -71,6 +71,12 @@ and magic characters like `{' when recognizing things like .I LaTeX environments. .PP +The +.B \-r +option tries to naively replace $..$, $$..$$, \(..\) and \[..\] +with nouns and verbs (in particular, "noun" and "verbs") +in a way that keeps sentences readable. +.PP If the .B \-w flag is given, the output is a word list, one `word' (string of two or more @@ -110,7 +116,9 @@ exceed the system's limit on the number of simultaneously opened files. .I Detex ignores unrecognized option characters after printing a warning message. .SH AUTHOR -Daniel Trinkle, Computer Science Department, Purdue University +Originally written by Daniel Trinkle, Computer Science Department, Purdue University +.PP +Maintained by Piotr Kubowicz <https://github.com/pkubowicz/opendetex>. .SH BUGS .I Detex is not a complete diff --git a/Build/source/texk/detex/detex-src/lexout.c b/Build/source/texk/detex/detex-src/lexout.c deleted file mode 100644 index cf56bdc0ba3..00000000000 --- a/Build/source/texk/detex/detex-src/lexout.c +++ /dev/null @@ -1,6234 +0,0 @@ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ - */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 - -#include <stdio.h> - - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include <stdlib.h> -#include <unistd.h> - -/* Use prototypes in function declarations. */ -#define YY_USE_PROTOS - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -#if __STDC__ - -#define YY_USE_PROTOS -#define YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - -#ifdef __TURBOC__ - #pragma warn -rch - #pragma warn -use -#include <io.h> -#include <stdlib.h> -#define YY_USE_CONST -#define YY_USE_PROTOS -#endif - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - - -#ifdef YY_USE_PROTOS -#define YY_PROTO(proto) proto -#else -#define YY_PROTO(proto) () -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN yy_start = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START ((yy_start - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart( yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#define YY_BUF_SIZE 16384 - -typedef struct yy_buffer_state *YY_BUFFER_STATE; - -extern int yyleng; -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - *yy_cp = yy_hold_char; \ - YY_RESTORE_YY_MORE_OFFSET \ - yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, yytext_ptr ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ -typedef unsigned int yy_size_t; - - -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - }; - -static YY_BUFFER_STATE yy_current_buffer = 0; - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - */ -#define YY_CURRENT_BUFFER yy_current_buffer - - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; - -static int yy_n_chars; /* number of characters read into yy_ch_buf */ - - -int yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 1; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart YY_PROTO(( FILE *input_file )); - -void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); -void yy_load_buffer_state YY_PROTO(( void )); -YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); -void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); -void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); -void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); -#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) - -YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); -YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); -YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); - -static void *yy_flex_alloc YY_PROTO(( yy_size_t )); -static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); -static void yy_flex_free YY_PROTO(( void * )); - -#define yy_new_buffer yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ - yy_current_buffer->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) - -typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; -typedef int yy_state_type; -extern char *yytext; -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state YY_PROTO(( void )); -static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); -static int yy_get_next_buffer YY_PROTO(( void )); -static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yy_hold_char = *yy_cp; \ - *yy_cp = '\0'; \ - yy_c_buf_p = yy_cp; - -#define YY_NUM_RULES 141 -#define YY_END_OF_BUFFER 142 -static yyconst short int yy_accept[708] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 134, 134, 0, 0, 0, 0, 0, 0, 117, 117, - 0, 0, 142, 141, 79, 78, 77, 91, 90, 91, - 102, 105, 104, 103, 107, 109, 108, 96, 94, 93, - 96, 128, 128, 92, 1, 127, 128, 123, 123, 125, - 122, 121, 120, 119, 122, 122, 121, 11, 11, 10, - 9, 11, 87, 86, 87, 18, 17, 15, 16, 14, - 13, 14, 83, 82, 83, 98, 100, 99, 132, 129, - - 130, 131, 134, 133, 138, 135, 136, 137, 140, 139, - 6, 6, 7, 117, 42, 41, 43, 89, 102, 107, - 95, 124, 88, 1, 127, 0, 126, 116, 114, 80, - 113, 113, 113, 113, 84, 115, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 121, 121, 119, 119, 0, 118, 0, - 0, 9, 0, 0, 0, 85, 15, 0, 81, 98, - 134, 6, 0, 42, 126, 113, 113, 111, 111, 115, - 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - - 113, 113, 113, 113, 113, 113, 113, 113, 113, 0, - 0, 0, 0, 110, 110, 0, 115, 113, 113, 113, - 113, 113, 76, 113, 64, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 70, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 0, 0, 12, 0, 113, - 113, 113, 113, 113, 113, 60, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 51, 113, 113, 113, - 113, 113, 113, 31, 113, 113, 113, 113, 113, 113, - - 113, 113, 113, 113, 72, 113, 113, 0, 0, 0, - 0, 113, 113, 3, 113, 113, 113, 45, 113, 113, - 113, 113, 113, 113, 113, 113, 65, 106, 67, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 51, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 0, - 0, 0, 0, 113, 113, 0, 0, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 0, 0, 0, 0, - 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 35, 113, 113, 113, 113, 113, 113, 113, - - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 33, 113, 0, 0, 0, 0, 0, 113, 0, 0, - 0, 113, 113, 0, 0, 57, 113, 113, 113, 113, - 113, 113, 113, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 0, 97, 113, - 113, 113, 113, 113, 113, 68, 113, 113, 113, 113, - 113, 113, 113, 32, 113, 52, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 113, 113, 0, 113, 59, 47, 113, - - 113, 113, 50, 66, 0, 21, 21, 0, 0, 0, - 0, 0, 113, 113, 113, 113, 113, 113, 113, 113, - 113, 113, 34, 113, 113, 113, 113, 36, 52, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 0, - 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 113, 113, 0, 113, 113, 113, 113, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, - 113, 112, 113, 113, 24, 113, 49, 69, 55, 113, - 113, 37, 39, 113, 25, 113, 113, 113, 113, 113, - 113, 46, 113, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 8, 0, 4, 0, 113, - 0, 0, 0, 113, 113, 113, 113, 0, 0, 0, - 22, 113, 113, 73, 113, 30, 55, 38, 113, 37, - 71, 29, 113, 27, 53, 113, 113, 63, 0, 0, - 0, 20, 0, 26, 0, 0, 0, 0, 0, 0, - 113, 44, 113, 113, 113, 101, 113, 113, 28, 53, - 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 58, 113, 113, 113, 113, - 74, 113, 56, 0, 0, 0, 0, 23, 0, 62, - 61, 113, 113, 54, 56, 0, 5, 0, 113, 75, - - 54, 0, 2, 40, 40, 40, 0 - } ; - -static yyconst short int yy_base[767] = - { 0, - 0, 0, 0, 1, 2, 3, 5, 8, 11, 14, - 6, 9, 107, 201, 319, 434, 549, 664, 12, 15, - 778, 894, 16, 17, 18, 19, 22, 25, 26, 75, - 1972, 1971, 78, 287, 20, 23, 34, 37, 10, 15, - 2, 29, 2062,13692,13692,13692,13692,13692,13692, 2025, - 0,13692,13692,13692, 0,13692,13692,13692,13692,13692, - 2023,13692, 1962, 2020, 0, 20, 2012, 988,13692,13692, - 13692, 227,13692, 0, 39, 0, 1927,13692, 230, 233, - 0, 345,13692,13692, 1951,13692,13692, 0,13692,13692, - 13692, 1942,13692,13692, 2001, 0,13692,13692,13692,13692, - - 13692,13692, 0,13692,13692,13692,13692,13692,13692,13692, - 0, 0, 1940,13692, 0,13692,13692,13692, 0, 0, - 13692,13692,13692, 0, 282, 1998, 1997,13692,13692,13692, - 0, 14, 110, 460,13692, 6, 2, 13, 1, 4, - 1925, 42, 1919, 350, 578, 1932, 580, 1933, 246, 264, - 1928, 1912, 31, 439, 1903, 0, 0, 547, 0, 440, - 567, 0, 569, 1919, 1922,13692, 0, 1911,13692, 0, - 0, 0, 1910, 0, 0, 0, 436, 442,13692, 1928, - 1924, 1916, 1912, 1916, 1894, 1901, 1906, 1888, 1886, 1874, - 60, 134, 148, 1886, 1873, 1863, 238, 1876, 458, 1862, - - 1859, 1865, 1878, 22, 349, 1854, 1872, 1857, 233, 1850, - 1842, 1855, 1854, 446,13692, 1860,13692, 145, 1847, 467, - 1850, 1836, 1841, 1816, 0, 1824, 1822, 1813, 1822, 1829, - 1813, 1819, 1799, 1814, 1813, 492, 1802, 360, 1781, 1787, - 1792, 1787, 1794, 1788, 1767, 1774, 1764, 495, 1764, 1765, - 1732, 355, 1749, 1741, 1748, 1739, 1745,13692, 574, 1720, - 1715, 1704, 1696, 1706, 1692, 0, 1692, 1690, 1690, 1687, - 1692, 1683, 1677, 1688, 1669, 1664, 1665, 1670, 1662, 1648, - 1648, 1654, 1657, 366, 1650, 1628, 1696, 1636, 1635, 1616, - 1608, 1611, 1627, 0, 1622, 1616, 1609, 1618, 1607, 360, - - 1616, 1613, 1598, 1610, 0, 1593, 1596, 1582, 1596, 670, - 679, 1584, 1574, 681, 1584, 1572, 1560, 1582, 1578, 1577, - 1563, 1575, 1564, 780, 1563, 1563, 0, 0, 0, 1546, - 1527, 1515, 1522, 1512, 1518, 1527, 1509, 1510, 1502,13692, - 1523, 1520, 1519, 1506, 1505, 1491, 1486, 1471, 1464, 1469, - 582, 1479, 1479, 1461, 1462, 1452, 1469, 896, 1464, 1467, - 1447, 683, 1449, 1448, 1439, 685, 807, 1426, 1431, 1425, - 1421, 1432, 1420, 1431, 1419, 1382, 1102, 670, 860, 1114, - 0, 1008, 1392, 1391, 1382, 1382, 1379, 1368, 1336, 1313, - 1293, 1314, 0, 1299, 1292, 1290, 1302, 1301, 1277, 1281, - - 1281, 1280, 1286, 1287, 1286, 1278, 1265, 1265, 1280, 1267, - 0, 1262, 1129, 881, 981, 1186, 0, 1183, 1265, 1259, - 1249, 1252, 1242, 1013, 1227, 0, 1221, 1233, 1212, 1218, - 1212, 1214, 1224, 1221, 1218, 1017, 1149, 1208, 465, 1211, - 1200, 1198, 250, 1188, 782, 1110, 1179, 1294, 493, 1197, - 1191, 1167, 1164, 1181, 1167, 0, 1155, 1150, 1141, 1151, - 1139, 1136, 1135, 0, 1125, 1202, 1115, 1108, 1110, 1115, - 1117, 1111, 1109, 1106, 1080, 1093, 1304, 1267, 1203, 1075, - 471, 1076, 1063, 1040, 695, 1032, 786, 1198, 1255, 1375, - 1042, 1032, 1039, 1033, 1034, 1034, 1033, 0, 0, 1020, - - 498, 1007, 0, 0, 1385, 789, 810, 1456, 1397, 1407, - 1471, 0, 1011, 1011, 1011, 1004, 973, 979, 971, 967, - 950, 944, 0, 935, 935, 923, 922, 0,13692, 940, - 935, 905, 887, 873, 876, 887, 871, 844, 854, 1505, - 892, 911, 1542, 1422, 1490, 1591, 0, 1015, 1273, 859, - 839, 1283, 837, 828, 815, 817, 807, 0, 1617, 1599, - 1602, 810, 496, 819, 808, 765, 706, 761, 1280, 774, - 762, 0, 769, 731, 0, 720, 0, 0, 796, 695, - 716, 767, 0, 692, 0, 699, 698, 696, 650, 643, - 661, 0, 656, 1692, 1652, 1720, 644, 599, 655, 618, - - 605, 708, 600, 1287, 1361,13692, 1364,13692, 594, 603, - 1299, 1770, 597, 600, 586, 587, 556, 1785, 1486, 1557, - 13692, 533, 523, 0, 533, 0,13692, 0, 531,13692, - 0, 0, 524, 0, 567, 497, 486, 0, 1819, 1603, - 1606,13692, 464, 0, 1856, 1804, 1887, 1913, 0, 465, - 444, 0, 413, 419, 421, 0, 396, 396, 0,13692, - 383, 389, 355, 1940, 1948, 1950, 350, 600, 314, 303, - 239, 711, 234, 1678, 234, 0, 227, 195, 190, 184, - 0, 182, 203, 1724, 2022, 1753, 1756,13692, 128, 0, - 0, 103, 52, 125,13692, 1773,13692, 1800, 7, 0, - - 13692, 1854,13692, 2074, 0, 2133,13692, 2255, 2510, 2765, - 3020, 3275, 3530, 3785, 4040, 4295, 4550, 4805, 5060, 5315, - 5570, 5825, 6080, 6335, 6590, 6845, 7100, 7355, 7610, 7865, - 8120, 8337, 8459, 8714, 8931, 8990, 9048, 9106, 9228, 9483, - 9738, 9993,10248,10503,10758,10975,11059,11118,11240,11457, - 11516,11574,11632,11754,12009,12264,12519,12710,12769,12891, - 13082,13140,13198,13256,13314,13436 - } ; - -static yyconst short int yy_def[767] = - { 0, - 708, 708, 709, 709, 710, 710, 711, 711, 712, 712, - 713, 713, 714, 714, 715, 715, 716, 716, 717, 717, - 718, 718, 719, 719, 720, 720, 721, 721, 722, 722, - 723, 723, 724, 724, 725, 725, 726, 726, 727, 727, - 728, 728, 707, 707, 707, 707, 707, 707, 707, 707, - 729, 707, 707, 707, 730, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 731, 707, 732, 733, 707, 707, - 707, 707, 707, 734, 735, 736, 707, 707, 707, 707, - 737, 707, 707, 707, 707, 707, 707, 738, 707, 707, - 707, 707, 707, 707, 707, 739, 707, 707, 707, 707, - - 707, 707, 740, 707, 707, 707, 707, 707, 707, 707, - 741, 741, 707, 707, 742, 707, 707, 707, 743, 744, - 707, 707, 707, 745, 707, 746, 747, 707, 707, 707, - 748, 748, 748, 748, 707, 707, 748, 748, 748, 748, - 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, - 748, 748, 748, 707, 707, 749, 749, 750, 751, 707, - 707, 752, 707, 707, 707, 707, 753, 707, 707, 754, - 755, 756, 707, 757, 758, 759, 759, 707, 707, 707, - 760, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - - 759, 759, 759, 759, 759, 759, 759, 759, 759, 707, - 707, 707, 707, 707, 707, 760, 707, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 707, 707, 707, 707, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - - 759, 759, 759, 759, 759, 759, 759, 707, 707, 707, - 707, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 707, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 707, - 707, 707, 707, 759, 759, 707, 707, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 707, 707, 707, 707, - 761, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 707, 707, 707, 707, 762, 759, 707, 707, - 707, 759, 759, 707, 707, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 761, 707, 707, 707, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 762, 707, 707, 707, - 707, 707, 707, 759, 759, 707, 759, 759, 759, 759, - - 759, 759, 759, 759, 707, 707, 707, 707, 707, 707, - 707, 763, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 707, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 707, - 707, 707, 707, 707, 707, 707, 764, 707, 707, 707, - 759, 759, 707, 759, 759, 759, 759, 759, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 763, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 764, 707, 707, 707, 707, 707, 759, - 707, 707, 707, 759, 759, 759, 759, 707, 707, 707, - 707, 759, 759, 759, 759, 759, 707, 759, 759, 707, - 759, 759, 759, 759, 759, 759, 759, 759, 707, 707, - 707, 707, 707, 759, 707, 707, 707, 707, 765, 707, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 707, - 759, 759, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 765, 707, 759, 759, 759, 759, 759, - 759, 759, 759, 707, 707, 707, 707, 707, 707, 759, - 759, 759, 759, 759, 707, 707, 707, 707, 759, 759, - - 707, 707, 707, 766, 766, 766, 0, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707 - } ; - -static yyconst short int yy_nxt[13949] = - { 0, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 46, - 46, 49, 49, 52, 53, 59, 52, 53, 59, 56, - 57, 84, 56, 57, 84, 91, 91, 94, 94, 44, - 97, 98, 44, 97, 98, 44, 52, 50, 50, 52, - 707, 60, 56, 112, 60, 56, 112, 180, 52, 707, - 707, 52, 707, 97, 707, 707, 97, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 125, 157, 177, 707, - 707, 707, 177, 157, 44, 707, 707, 44, 707, 707, - 707, 707, 707, 707, 707, 707, 181, 61, 177, 157, - - 61, 182, 177, 85, 187, 185, 85, 92, 92, 95, - 95, 186, 110, 183, 188, 110, 100, 184, 178, 179, - 247, 704, 47, 47, 116, 113, 117, 52, 113, 54, - 52, 208, 54, 56, 157, 56, 56, 248, 56, 63, - 190, 178, 64, 65, 97, 209, 97, 97, 101, 97, - 102, 116, 191, 117, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 227, 100, 701, 700, 106, 63, - 228, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 101, 68, 102, - - 107, 699, 108, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 69, - 69, 69, 70, 63, 179, 154, 64, 65, 160, 160, - 229, 160, 160, 698, 695, 230, 231, 232, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 154, 233, - 260, 160, 261, 63, 160, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 694, 68, 693, 692, 691, 44, 67, 67, 67, - - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 69, 69, 69, 70, 72, 73, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 125, 254, - 237, 690, 198, 689, 255, 686, 199, 686, 506, 155, - 72, 238, 161, 163, 163, 161, 200, 74, 178, 179, - 201, 202, 203, 74, 204, 506, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 163, 106, 177, 74, - 205, 178, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - - 75, 75, 75, 75, 75, 75, 75, 75, 75, 107, - 76, 108, 686, 686, 74, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 77, 72, 73, 214, 215, 249, 154, 160, 160, - 178, 179, 303, 164, 214, 215, 285, 286, 250, 193, - 352, 686, 165, 684, 335, 72, 304, 214, 178, 179, - 154, 160, 74, 178, 179, 287, 353, 214, 74, 336, - 337, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 178, 683, 682, 74, 681, 680, 75, 75, 75, - - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 679, 76, 678, 677, 177, 74, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 77, 79, 80, 240, - 215, 155, 161, 506, 676, 675, 179, 241, 663, 541, - 215, 263, 242, 506, 264, 163, 163, 163, 163, 541, - 79, 265, 310, 310, 179, 157, 178, 179, 178, 179, - 280, 157, 281, 297, 619, 513, 556, 662, 163, 282, - - 163, 661, 298, 514, 619, 310, 283, 157, 660, 178, - 299, 178, 557, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 659, - 658, 657, 157, 656, 655, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 82, 79, 80, 194, 164, 654, 164, 310, 310, - 177, 404, 195, 653, 165, 405, 165, 362, 362, 366, - 366, 362, 362, 366, 366, 79, 311, 640, 686, 652, - - 406, 310, 179, 651, 179, 650, 644, 640, 686, 643, - 362, 640, 366, 640, 362, 379, 366, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 640, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 640, 640, 638, 637, 636, 635, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 82, 87, 377, 377, - 507, 507, 311, 541, 542, 542, 363, 507, 507, 634, - - 363, 633, 632, 367, 619, 631, 640, 367, 630, 686, - 541, 377, 629, 507, 628, 424, 424, 542, 507, 507, - 507, 619, 378, 640, 378, 379, 686, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 627, 424, 626, - 625, 507, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 624, 623, - 622, 381, 619, 619, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - - 542, 542, 89, 87, 413, 413, 425, 435, 435, 435, - 435, 435, 435, 435, 435, 435, 435, 619, 619, 542, - 542, 619, 617, 542, 616, 615, 415, 413, 416, 416, - 416, 416, 416, 416, 416, 416, 416, 416, 414, 614, - 414, 415, 542, 416, 416, 416, 416, 416, 416, 416, - 416, 416, 416, 613, 610, 609, 593, 592, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 591, 590, 589, 417, 588, 587, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 446, 446, 89, 129, - 586, 424, 424, 605, 605, 436, 436, 130, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 585, 446, - 584, 583, 582, 581, 424, 580, 605, 579, 436, 447, - 578, 131, 132, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 133, 131, 131, 134, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, 135, 136, - 577, 576, 575, 574, 137, 138, 139, 140, 141, 142, - 131, 143, 144, 133, 131, 145, 131, 146, 147, 148, - - 131, 149, 150, 151, 152, 153, 131, 131, 131, 131, - 377, 377, 425, 573, 438, 439, 440, 572, 446, 446, - 571, 441, 436, 436, 570, 442, 558, 555, 443, 554, - 448, 444, 553, 377, 552, 551, 550, 413, 413, 606, - 549, 446, 548, 541, 378, 436, 378, 379, 541, 380, - 380, 380, 380, 380, 380, 380, 380, 380, 380, 437, - 413, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 414, 541, 414, 415, 541, 416, 416, 416, 416, - 416, 416, 416, 416, 416, 416, 541, 446, 446, 539, - 538, 488, 488, 381, 478, 478, 505, 505, 505, 505, - - 505, 505, 505, 505, 505, 505, 488, 488, 537, 536, - 446, 438, 439, 440, 488, 535, 534, 478, 441, 533, - 417, 532, 442, 531, 489, 443, 436, 436, 444, 488, - 530, 479, 448, 416, 416, 416, 416, 416, 416, 416, - 416, 416, 416, 529, 528, 527, 526, 525, 524, 436, - 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, - 523, 522, 521, 488, 488, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 478, 478, 520, 519, 518, - 517, 607, 607, 480, 481, 482, 488, 516, 620, 620, - 483, 611, 611, 515, 484, 641, 641, 485, 478, 506, - - 486, 448, 508, 508, 607, 490, 506, 611, 611, 506, - 506, 620, 478, 478, 611, 438, 439, 440, 641, 506, - 490, 504, 441, 503, 502, 508, 442, 501, 500, 443, - 611, 499, 444, 498, 497, 478, 509, 496, 509, 510, - 495, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 494, 493, 492, 480, 481, 482, 491, 476, 605, - 605, 483, 607, 607, 475, 484, 474, 490, 485, 473, - 472, 486, 471, 543, 543, 512, 470, 469, 468, 467, - 466, 465, 605, 436, 436, 607, 464, 608, 463, 462, - - 461, 480, 481, 482, 621, 612, 543, 460, 483, 459, - 458, 642, 484, 457, 456, 485, 436, 544, 486, 544, - 545, 612, 546, 546, 546, 546, 546, 546, 546, 546, - 546, 546, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 510, 455, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 508, 508, 547, 545, 454, 546, - 546, 546, 546, 546, 546, 546, 546, 546, 546, 560, - 560, 453, 438, 439, 440, 606, 452, 508, 608, 441, - 451, 450, 449, 442, 620, 620, 443, 434, 509, 444, - - 509, 510, 560, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 478, 478, 433, 561, 620, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 432, 431, - 430, 429, 428, 427, 426, 423, 478, 594, 594, 594, - 594, 594, 594, 594, 594, 594, 594, 512, 422, 421, - 543, 543, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 420, 419, 418, 620, 620, 412, 562, 563, - 564, 411, 410, 543, 409, 565, 408, 407, 403, 566, - 402, 401, 567, 400, 544, 568, 544, 545, 620, 546, - 546, 546, 546, 546, 546, 546, 546, 546, 546, 595, - - 595, 399, 480, 481, 482, 398, 397, 560, 560, 483, - 621, 641, 641, 484, 641, 641, 485, 396, 395, 486, - 394, 393, 595, 392, 391, 560, 560, 390, 389, 388, - 560, 387, 386, 547, 641, 385, 596, 641, 546, 546, - 546, 546, 546, 546, 546, 546, 546, 546, 560, 618, - 618, 618, 618, 618, 618, 618, 618, 618, 618, 384, - 595, 595, 383, 382, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 376, 375, 374, 373, 372, 371, - 370, 621, 369, 595, 368, 365, 687, 687, 597, 598, - 599, 364, 361, 360, 359, 600, 562, 563, 564, 601, - - 595, 595, 602, 565, 358, 603, 357, 566, 356, 687, - 567, 355, 354, 568, 562, 563, 564, 351, 350, 349, - 348, 565, 347, 595, 346, 566, 345, 642, 567, 344, - 642, 568, 696, 696, 343, 342, 341, 340, 339, 594, - 594, 594, 594, 594, 594, 594, 594, 594, 594, 597, - 598, 599, 338, 334, 333, 696, 600, 332, 331, 330, - 601, 687, 687, 602, 687, 687, 603, 639, 639, 639, - 639, 639, 639, 639, 639, 639, 639, 329, 645, 645, - 328, 696, 696, 327, 687, 326, 325, 687, 324, 597, - 598, 599, 323, 560, 560, 322, 600, 321, 320, 319, - - 601, 645, 688, 602, 696, 318, 603, 317, 702, 702, - 316, 315, 646, 314, 646, 647, 560, 648, 648, 648, - 648, 648, 648, 648, 648, 648, 648, 595, 595, 313, - 312, 702, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 309, 308, 307, 306, 305, 302, 697, 647, - 595, 648, 648, 648, 648, 648, 648, 648, 648, 648, - 648, 649, 702, 702, 645, 645, 639, 639, 639, 639, - 639, 639, 639, 639, 639, 639, 301, 688, 300, 296, - 688, 295, 562, 563, 564, 702, 294, 645, 293, 565, - 292, 291, 290, 566, 289, 288, 567, 697, 646, 568, - - 646, 647, 284, 648, 648, 648, 648, 648, 648, 648, - 648, 648, 648, 279, 278, 277, 597, 598, 599, 276, - 275, 665, 665, 600, 703, 274, 273, 601, 272, 271, - 602, 270, 269, 603, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 665, 268, 267, 649, 665, 665, - 266, 262, 217, 259, 258, 257, 665, 665, 666, 256, - 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, - 253, 665, 252, 251, 246, 245, 244, 243, 703, 665, - 239, 236, 235, 234, 226, 225, 224, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 685, 685, 685, - - 685, 685, 685, 685, 685, 685, 685, 223, 222, 221, - 667, 668, 669, 220, 219, 218, 217, 670, 181, 213, - 212, 671, 211, 210, 672, 155, 207, 673, 206, 197, - 665, 665, 196, 192, 189, 126, 126, 667, 668, 669, - 173, 169, 168, 166, 670, 667, 668, 669, 671, 155, - 126, 672, 670, 665, 673, 123, 671, 122, 121, 672, - 118, 707, 673, 104, 104, 707, 707, 707, 707, 685, - 685, 685, 685, 685, 685, 685, 685, 685, 685, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 667, - 668, 669, 707, 707, 707, 707, 670, 707, 707, 707, - 671, 707, 707, 672, 707, 707, 673, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 707, 707, 707, 707, 707, 707, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 707, 707, 707, 707, 707, 707, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 78, 78, 78, 78, 78, - - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, - - 83, 83, 83, 83, 83, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 119, 119, 119, 119, 119, 119, 119, 119, 707, 707, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 707, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 707, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 707, 119, 707, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, - 120, 120, 120, 707, 707, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 707, 120, 120, 120, - - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 707, 120, 707, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 707, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 127, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 707, 707, 707, - 707, 707, 707, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 707, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 156, 156, 156, 156, 156, 156, - 156, 156, 707, 707, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 707, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 707, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 158, - 707, 707, 707, 707, 707, 158, 707, 707, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 707, 707, - 707, 158, 707, 707, 158, 158, 158, 158, 158, 158, - - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 707, 707, 707, 707, 707, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 707, 707, 707, 707, 707, 707, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 707, 707, - 707, 707, 707, 707, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 707, 707, 707, 707, - - 707, 707, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 170, 170, - 170, 170, 170, 170, 170, 170, 707, 707, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 707, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 707, 170, 707, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 707, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 707, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 174, 174, 174, 174, 174, 174, 174, - - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 707, 174, 707, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 119, 119, - 119, 119, 119, 119, 119, 119, 707, 707, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 707, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 707, 119, 119, 119, 119, 119, 119, 119, 119, - - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 707, 119, 707, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - - 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, - 120, 707, 707, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 707, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 707, 120, 707, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 707, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - - 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 175, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 707, 707, 707, 707, 707, - 707, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 127, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 707, - 707, 707, 707, 707, 707, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - - 176, 176, 176, 176, 176, 176, 176, 176, 707, 707, - 707, 707, 707, 707, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 156, 156, 156, 156, 156, 156, 156, 156, 707, 707, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 707, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 707, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 158, 707, 707, 707, 707, - - 707, 158, 707, 707, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 707, 707, 707, 158, 707, 707, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 707, 707, 707, - 707, 707, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - - 159, 159, 159, 159, 159, 159, 707, 707, 707, 707, - 707, 707, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 707, 707, 707, 707, 707, 707, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 167, 167, 167, 167, - - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 707, 707, 707, 707, 707, 707, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 170, 170, 170, 170, 170, 170, - 170, 170, 707, 707, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 707, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 707, 170, 707, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - - 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 707, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 707, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 707, 174, 707, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - - 707, 707, 707, 707, 707, 707, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 707, - 707, 707, 707, 707, 707, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 176, 216, 216, 216, 216, 216, 216, 216, 216, 216, - - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 445, 445, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 445, 707, 707, 707, 707, 707, 707, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, - - 445, 445, 445, 445, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 707, 707, 707, 707, 707, 707, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, - 487, 487, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 707, 707, - 707, 707, 707, 707, 569, 569, 569, 569, 569, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 707, 707, 707, 707, - 707, 707, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - - 674, 674, 674, 674, 707, 707, 707, 707, 707, 707, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 674, 674, 674, 674, 674, 674, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 707, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 43, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707 - } ; - -static yyconst short int yy_chk[13949] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, - 4, 5, 6, 7, 7, 11, 8, 8, 12, 9, - 9, 19, 10, 10, 20, 23, 24, 25, 26, 35, - 27, 27, 36, 28, 28, 29, 7, 5, 6, 8, - 0, 11, 9, 37, 12, 10, 38, 136, 7, 0, - 0, 8, 0, 27, 0, 0, 28, 39, 39, 39, - 39, 39, 40, 40, 40, 40, 40, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 75, 132, 0, - 0, 0, 132, 75, 30, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 11, 137, 75, - - 12, 137, 137, 19, 140, 139, 20, 23, 24, 25, - 26, 139, 35, 138, 140, 36, 29, 138, 133, 133, - 204, 699, 3, 4, 41, 37, 41, 7, 38, 7, - 8, 153, 8, 9, 75, 9, 10, 204, 10, 13, - 142, 133, 13, 13, 27, 153, 27, 28, 29, 28, - 29, 42, 142, 42, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 191, 30, 694, 693, 33, 13, - 191, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 30, 13, 30, - - 33, 692, 33, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 14, 133, 72, 14, 14, 79, 79, - 192, 80, 80, 689, 683, 192, 193, 193, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 72, 193, - 218, 79, 218, 14, 80, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 682, 14, 680, 679, 678, 34, 14, 14, 14, - - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 15, 15, 125, - 125, 125, 125, 125, 125, 125, 125, 125, 125, 209, - 197, 677, 149, 675, 209, 673, 149, 671, 443, 72, - 15, 197, 79, 82, 82, 80, 149, 15, 144, 144, - 150, 150, 150, 15, 150, 443, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 82, 34, 150, 15, - 150, 144, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - - 15, 15, 15, 15, 15, 15, 15, 15, 15, 34, - 15, 34, 670, 669, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 16, 16, 177, 177, 205, 154, 160, 160, - 178, 178, 252, 82, 214, 214, 238, 238, 205, 144, - 300, 667, 82, 663, 284, 16, 252, 177, 134, 134, - 154, 160, 16, 178, 144, 238, 300, 214, 16, 284, - 284, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 134, 662, 661, 16, 658, 657, 16, 16, 16, - - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 655, 16, 654, 653, 134, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 17, 17, 199, - 177, 154, 160, 439, 651, 650, 178, 199, 643, 481, - 214, 220, 199, 439, 220, 161, 161, 163, 163, 481, - 17, 220, 259, 259, 134, 158, 145, 145, 147, 147, - 236, 158, 236, 248, 563, 449, 501, 637, 161, 236, - - 163, 636, 248, 449, 563, 259, 236, 158, 635, 145, - 248, 147, 501, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 633, - 629, 625, 158, 623, 622, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 18, 18, 145, 161, 617, 163, 310, 310, - 147, 351, 145, 616, 161, 351, 163, 311, 311, 314, - 314, 362, 362, 366, 366, 18, 259, 598, 668, 615, - - 351, 310, 145, 614, 147, 613, 610, 598, 668, 609, - 311, 603, 314, 601, 362, 378, 366, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 600, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 599, 597, 593, 591, 590, 589, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 21, 324, 324, - 445, 445, 310, 485, 487, 487, 311, 506, 506, 588, - - 362, 587, 586, 314, 567, 584, 602, 366, 582, 672, - 485, 324, 581, 445, 580, 367, 367, 487, 507, 507, - 506, 567, 324, 602, 324, 324, 672, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 579, 367, 576, - 574, 507, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 573, 571, - 570, 324, 568, 566, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - - 541, 541, 21, 22, 358, 358, 367, 379, 379, 379, - 379, 379, 379, 379, 379, 379, 379, 565, 564, 542, - 542, 562, 557, 541, 556, 555, 414, 358, 414, 414, - 414, 414, 414, 414, 414, 414, 414, 414, 358, 554, - 358, 358, 542, 358, 358, 358, 358, 358, 358, 358, - 358, 358, 358, 553, 551, 550, 539, 538, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 537, 536, 535, 358, 534, 533, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 382, 382, 22, 68, - 532, 424, 424, 548, 548, 436, 436, 68, 415, 415, - 415, 415, 415, 415, 415, 415, 415, 415, 531, 382, - 530, 527, 526, 525, 424, 524, 548, 522, 436, 382, - 521, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 520, 519, 518, 517, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 377, 377, 424, 516, 436, 436, 436, 515, 446, 446, - 514, 436, 380, 380, 513, 436, 502, 500, 436, 497, - 382, 436, 496, 377, 495, 494, 493, 413, 413, 548, - 492, 446, 491, 486, 377, 380, 377, 377, 484, 377, - 377, 377, 377, 377, 377, 377, 377, 377, 377, 380, - 413, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 413, 483, 413, 413, 482, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 480, 447, 447, 476, - 475, 418, 418, 377, 416, 416, 437, 437, 437, 437, - - 437, 437, 437, 437, 437, 437, 488, 488, 474, 473, - 447, 380, 380, 380, 418, 472, 471, 416, 380, 470, - 413, 469, 380, 468, 418, 380, 435, 435, 380, 488, - 467, 416, 446, 416, 416, 416, 416, 416, 416, 416, - 416, 416, 416, 466, 465, 463, 462, 461, 460, 435, - 479, 479, 479, 479, 479, 479, 479, 479, 479, 479, - 459, 458, 457, 489, 489, 435, 435, 435, 435, 435, - 435, 435, 435, 435, 435, 478, 478, 455, 454, 453, - 452, 549, 549, 416, 416, 416, 489, 451, 569, 569, - 416, 552, 552, 450, 416, 604, 604, 416, 478, 444, - - 416, 447, 448, 448, 549, 418, 442, 611, 611, 441, - 440, 569, 477, 477, 552, 435, 435, 435, 604, 438, - 488, 434, 435, 433, 432, 448, 435, 431, 430, 435, - 611, 429, 435, 428, 427, 477, 448, 425, 448, 448, - 423, 448, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 422, 421, 420, 478, 478, 478, 419, 412, 605, - 605, 478, 607, 607, 410, 478, 409, 489, 478, 408, - 407, 478, 406, 490, 490, 448, 405, 404, 403, 402, - 401, 400, 605, 505, 505, 607, 399, 549, 398, 397, - - 396, 477, 477, 477, 569, 552, 490, 395, 477, 394, - 392, 604, 477, 391, 390, 477, 505, 490, 477, 490, - 490, 611, 490, 490, 490, 490, 490, 490, 490, 490, - 490, 490, 505, 505, 505, 505, 505, 505, 505, 505, - 505, 505, 509, 389, 509, 509, 509, 509, 509, 509, - 509, 509, 509, 509, 510, 510, 510, 510, 510, 510, - 510, 510, 510, 510, 508, 508, 490, 544, 388, 544, - 544, 544, 544, 544, 544, 544, 544, 544, 544, 511, - 511, 387, 505, 505, 505, 605, 386, 508, 607, 505, - 385, 384, 383, 505, 619, 619, 505, 376, 508, 505, - - 508, 508, 511, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 540, 540, 375, 511, 619, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 374, 373, - 372, 371, 370, 369, 368, 365, 540, 545, 545, 545, - 545, 545, 545, 545, 545, 545, 545, 508, 364, 363, - 543, 543, 540, 540, 540, 540, 540, 540, 540, 540, - 540, 540, 361, 360, 359, 620, 620, 357, 511, 511, - 511, 356, 355, 543, 354, 511, 353, 352, 350, 511, - 349, 348, 511, 347, 543, 511, 543, 543, 620, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 546, - - 546, 346, 540, 540, 540, 345, 344, 560, 560, 540, - 619, 640, 640, 540, 641, 641, 540, 343, 342, 540, - 341, 339, 546, 338, 337, 559, 559, 336, 335, 334, - 560, 333, 332, 543, 640, 331, 546, 641, 546, 546, - 546, 546, 546, 546, 546, 546, 546, 546, 559, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 330, - 595, 595, 326, 325, 559, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 323, 322, 321, 320, 319, 318, - 317, 620, 316, 595, 315, 313, 674, 674, 546, 546, - 546, 312, 309, 308, 307, 546, 560, 560, 560, 546, - - 594, 594, 546, 560, 306, 546, 304, 560, 303, 674, - 560, 302, 301, 560, 559, 559, 559, 299, 298, 297, - 296, 559, 295, 594, 293, 559, 292, 640, 559, 291, - 641, 559, 684, 684, 290, 289, 288, 287, 286, 594, - 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, - 595, 595, 285, 283, 282, 684, 595, 281, 280, 279, - 595, 686, 686, 595, 687, 687, 595, 596, 596, 596, - 596, 596, 596, 596, 596, 596, 596, 278, 612, 612, - 277, 696, 696, 276, 686, 275, 274, 687, 273, 594, - 594, 594, 272, 618, 618, 271, 594, 270, 269, 268, - - 594, 612, 674, 594, 696, 267, 594, 265, 698, 698, - 264, 263, 612, 262, 612, 612, 618, 612, 612, 612, - 612, 612, 612, 612, 612, 612, 612, 639, 639, 261, - 260, 698, 618, 618, 618, 618, 618, 618, 618, 618, - 618, 618, 257, 256, 255, 254, 253, 251, 684, 646, - 639, 646, 646, 646, 646, 646, 646, 646, 646, 646, - 646, 612, 702, 702, 645, 645, 639, 639, 639, 639, - 639, 639, 639, 639, 639, 639, 250, 686, 249, 247, - 687, 246, 618, 618, 618, 702, 245, 645, 244, 618, - 243, 242, 241, 618, 240, 239, 618, 696, 645, 618, - - 645, 645, 237, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 235, 234, 233, 639, 639, 639, 232, - 231, 648, 648, 639, 698, 230, 229, 639, 228, 227, - 639, 226, 224, 639, 647, 647, 647, 647, 647, 647, - 647, 647, 647, 647, 648, 223, 222, 645, 664, 664, - 221, 219, 216, 213, 212, 211, 665, 665, 648, 210, - 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, - 208, 664, 207, 206, 203, 202, 201, 200, 702, 665, - 198, 196, 195, 194, 190, 189, 188, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 666, 666, 666, - - 666, 666, 666, 666, 666, 666, 666, 187, 186, 185, - 648, 648, 648, 184, 183, 182, 181, 648, 180, 173, - 168, 648, 165, 164, 648, 155, 152, 648, 151, 148, - 685, 685, 146, 143, 141, 127, 126, 664, 664, 664, - 113, 95, 92, 85, 664, 665, 665, 665, 664, 77, - 67, 664, 665, 685, 664, 64, 665, 63, 61, 665, - 50, 43, 665, 32, 31, 0, 0, 0, 0, 685, - 685, 685, 685, 685, 685, 685, 685, 685, 685, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 685, - 685, 685, 0, 0, 0, 0, 685, 0, 0, 0, - 685, 0, 0, 685, 0, 0, 685, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 0, 0, 0, 0, 0, 0, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, - 704, 704, 704, 704, 704, 704, 706, 706, 706, 706, - - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 0, 0, 0, 0, 0, 0, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, - 706, 706, 706, 706, 706, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 709, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 713, 713, 713, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 715, 715, 715, 715, 715, - 715, 715, 715, 715, 715, 716, 716, 716, 716, 716, - - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, - - 717, 717, 717, 717, 717, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 718, 718, 718, 718, 718, 718, 718, 718, 718, 718, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 721, 721, 721, 721, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, - 723, 723, 723, 723, 723, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, - 727, 727, 727, 727, 727, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 729, 729, 729, 729, 729, 729, 729, 729, 0, 0, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 0, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 0, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 0, 729, 0, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, - 729, 729, 729, 729, 729, 730, 730, 730, 730, 730, - 730, 730, 730, 0, 0, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 0, 730, 730, 730, - - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 0, 730, 0, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 0, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, - 731, 731, 731, 731, 731, 732, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 0, 0, 0, - 0, 0, 0, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 732, 732, 732, 732, 732, 732, 732, 732, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 0, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - - 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, - 733, 733, 733, 733, 734, 734, 734, 734, 734, 734, - 734, 734, 0, 0, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 0, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 0, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 735, - 0, 0, 0, 0, 0, 735, 0, 0, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 0, 0, - 0, 735, 0, 0, 735, 735, 735, 735, 735, 735, - - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 0, 0, 0, 0, 0, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 0, 0, 0, 0, 0, 0, 736, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - - 736, 736, 736, 736, 736, 736, 736, 736, 736, 736, - 736, 736, 737, 737, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 0, 0, - 0, 0, 0, 0, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, - 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 0, 0, 0, 0, - - 0, 0, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, - 738, 738, 738, 738, 738, 738, 738, 738, 739, 739, - 739, 739, 739, 739, 739, 739, 0, 0, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 0, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 0, 739, 0, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 739, 739, 739, 739, 739, 739, 739, - 739, 739, 739, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 0, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, - 740, 740, 740, 740, 740, 740, 740, 740, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 0, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 742, 742, 742, 742, 742, 742, 742, - - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 0, 742, 0, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 742, 742, 742, 743, 743, - 743, 743, 743, 743, 743, 743, 0, 0, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 0, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 0, 743, 743, 743, 743, 743, 743, 743, 743, - - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 0, 743, 0, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, - - 743, 743, 743, 744, 744, 744, 744, 744, 744, 744, - 744, 0, 0, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 0, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 0, 744, 0, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 0, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 746, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, - 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 0, 0, 0, 0, 0, - 0, 746, 746, 746, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 746, 747, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 747, 747, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 0, - 0, 0, 0, 0, 0, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 748, 748, 748, 748, 748, 748, 748, 748, 748, - 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, - - 748, 748, 748, 748, 748, 748, 748, 748, 0, 0, - 0, 0, 0, 0, 748, 748, 748, 748, 748, 748, - 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, - 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, - 749, 749, 749, 749, 749, 749, 749, 749, 0, 0, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 0, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 0, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 750, 0, 0, 0, 0, - - 0, 750, 0, 0, 750, 750, 750, 750, 750, 750, - 750, 750, 750, 750, 0, 0, 0, 750, 0, 0, - 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, - 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, - 750, 750, 750, 750, 750, 750, 750, 0, 0, 0, - 0, 0, 750, 750, 750, 750, 750, 750, 750, 750, - 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, - 750, 750, 750, 750, 750, 750, 750, 750, 750, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, - - 751, 751, 751, 751, 751, 751, 0, 0, 0, 0, - 0, 0, 751, 751, 751, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 752, 752, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 0, 0, 0, 0, 0, 0, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 752, - 752, 752, 752, 752, 752, 752, 753, 753, 753, 753, - - 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 753, 0, 0, 0, 0, 0, 0, 753, 753, - 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, - 753, 753, 753, 753, 754, 754, 754, 754, 754, 754, - 754, 754, 0, 0, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 0, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 0, 754, 0, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, - - 754, 754, 754, 754, 754, 754, 754, 754, 754, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - - 755, 0, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, - 755, 755, 755, 755, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 0, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - - 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 756, 756, 756, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 0, 757, 0, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 757, 757, 758, 758, 758, 758, 758, 758, - 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, - 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, - - 0, 0, 0, 0, 0, 0, 758, 758, 758, 758, - 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, - 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, - 758, 758, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 0, - 0, 0, 0, 0, 0, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, - 759, 760, 760, 760, 760, 760, 760, 760, 760, 760, - - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, - 760, 760, 760, 760, 760, 760, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 0, 0, 0, 0, 0, 0, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, - - 761, 761, 761, 761, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 0, 0, 0, 0, 0, 0, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, - 762, 762, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 0, 0, - 0, 0, 0, 0, 763, 763, 763, 763, 763, 763, - - 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, - 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 0, 0, 0, 0, - 0, 0, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - - 765, 765, 765, 765, 0, 0, 0, 0, 0, 0, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 0, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, - 766, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707, 707, 707, - 707, 707, 707, 707, 707, 707, 707, 707 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -static yyconst yy_state_type yy_NUL_trans[707] = - { 0, - 44, 44, 45, 45, 48, 48, 51, 51, 55, 55, - 58, 58, 62, 62, 71, 71, 78, 78, 83, 83, - 86, 86, 90, 90, 93, 93, 96, 96, 99, 99, - 103, 103, 105, 105, 109, 109, 111, 111, 44, 44, - 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, - 119, 0, 0, 0, 120, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 0, 0, 128, 0, 0, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, - - 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, - 172, 172, 0, 0, 174, 0, 0, 0, 119, 120, - 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 171, 172, 0, 174, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 705, 705, 705 - } ; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "xxx.l" -#define INITIAL 0 -#line 2 "xxx.l" -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; -#endif - -/* - * Copyright (c) 1986-2007 Purdue University - * All rights reserved. - * - * Developed by: Daniel Trinkle - * Department of Computer Science, Purdue University - * http://www.cs.purdue.edu/ - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal with the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * o Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimers. - * - * o Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimers in the - * documentation and/or other materials provided with the distribution. - * - * o Neither the names of Daniel Trinkle, Purdue University, nor the - * names of its contributors may be used to endorse or promote products - * derived from this Software without specific prior written - * permission. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. - */ - - -/* - * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex] ] - * - * This program is used to remove TeX or LaTeX constructs from a text - * file. - */ - -#include "detex.h" -#ifdef HAVE_STRING_H -#include <string.h> -#define index strchr -#define rindex strrchr -#else -#include <strings.h> -#endif -#ifndef MAXPATHLEN -#include <sys/param.h> -#endif -#ifdef OS2 -#include <stdlib.h> -#endif - -#define LaBEGIN if (fLatex) BEGIN -#define IGNORE if (fSpace && !fWord) putchar(' ') -#define SPACE if (!fWord) putchar(' ') -#define NEWLINE if (!fWord) putchar('\n') -#define LATEX fLatex=!fForcetex -#define KILLARGS(x) cArgs=x; LaBEGIN SH -#define STRIPARGS(x) cArgs=x; LaBEGIN SG -#define CITE(x) if (fLatex && !fCite) KILLARGS(x) - -char *SafeMalloc(); -#ifndef NO_MALLOC_DECL -char *malloc(); -#endif -#ifdef OS2 -void yyless(int); -#endif - -char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ -char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ -char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ -char *sbProgName; /* name we were invoked with */ -FILE *rgfp[NOFILE+1]; /* stack of input/include files */ -int cfp = 0; /* count of files in stack */ -int cOpenBrace = 0; /* count of `{' in <SH> and <SG> */ -int cArgs = 0; /* argument connt in <LaArgs> */ -int csbEnvIgnore; /* count of environments ignored */ -int csbIncList = 0; /* count of includeonly files */ -int csbInputPaths; /* count of input paths */ -int fLatex = 0; /* flag to indicated delatex */ -int fWord = 0; /* flag for -w option */ -int fFollow = 1; /* flag to follow input/include */ -int fCite = 0; /* flag to echo \cite and \ref args */ -int fSpace = 0; /* flag to replace \cs with space */ -int fForcetex = 0; /* flag to inhibit latex mode */ - -#ifdef FLEX_SCANNER -/* flex has contexts for buffers that need to be switched when file changes - * otherwise output contains imported files in reverse order. Weird, but - * true. - */ -YY_BUFFER_STATE rgsb[NOFILE + 1]; /* flex context stack */ -int csb = 0; /* depth of flex context stack */ -#endif /* FLEX_SCANNER */ - -#define SJ 1 -#define SK 2 -#define SL 3 -#define SM 4 -#define SN 5 -#define SO 6 -#define SP 7 - -#define SA 8 -#define SB 9 -#define SC 10 -#define SD 11 -#define SE 12 -#define SF 13 - -#define SH 14 -#define ST 15 -#define SG 16 -#define SS 17 -#define SI 18 - -#define SR 19 -#define SQ 20 - -#line 3851 "lex.yy.c" - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap YY_PROTO(( void )); -#else -extern int yywrap YY_PROTO(( void )); -#endif -#endif - -#ifndef YY_NO_UNPUT -static void yyunput YY_PROTO(( int c, char *buf_ptr )); -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen YY_PROTO(( yyconst char * )); -#endif - -#ifndef YY_NO_INPUT -#ifdef __cplusplus -static int yyinput YY_PROTO(( void )); -#else -static int input YY_PROTO(( void )); -#endif -#endif - -#if YY_STACK_USED -static int yy_start_stack_ptr = 0; -static int yy_start_stack_depth = 0; -static int *yy_start_stack = 0; -#ifndef YY_NO_PUSH_STATE -static void yy_push_state YY_PROTO(( int new_state )); -#endif -#ifndef YY_NO_POP_STATE -static void yy_pop_state YY_PROTO(( void )); -#endif -#ifndef YY_NO_TOP_STATE -static int yy_top_state YY_PROTO(( void )); -#endif - -#else -#define YY_NO_PUSH_STATE 1 -#define YY_NO_POP_STATE 1 -#define YY_NO_TOP_STATE 1 -#endif - -#ifdef YY_MALLOC_DECL -YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#include <stdlib.h> -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ - -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( yy_current_buffer->yy_is_interactive ) \ - { \ - int c = '*', n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ - && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL int yylex YY_PROTO(( void )) -#endif - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -YY_DECL - { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 125 "xxx.l" - -#line 4004 "lex.yy.c" - - if ( yy_init ) - { - yy_init = 0; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! yy_start ) - yy_start = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! yy_current_buffer ) - yy_current_buffer = - yy_create_buffer( yyin, YY_BUF_SIZE ); - - yy_load_buffer_state(); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = yy_c_buf_p; - - /* Support of yytext. */ - *yy_cp = yy_hold_char; - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = yy_start; -yy_match: - do - { - register YY_CHAR yy_c = YY_SC_TO_UI(*yy_cp); - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 13692 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - - -do_action: /* This label is used only to access EOF actions. */ - - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = yy_hold_char; - yy_cp = yy_last_accepting_cpos; - yy_current_state = yy_last_accepting_state; - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 126 "xxx.l" -/* ignore comments */ ; - YY_BREAK -case 2: -YY_RULE_SETUP -#line 128 "xxx.l" -{LATEX; IGNORE;} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 130 "xxx.l" -/* environment start */ {LaBEGIN SA; IGNORE;} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 132 "xxx.l" -{ if (BeginEnv("verbatim")) - BEGIN SD; - else - BEGIN SI; - IGNORE; - } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 139 "xxx.l" -/* verbatim mode */ {BEGIN SO; IGNORE;} - YY_BREAK -case 6: -YY_RULE_SETUP -#line 140 "xxx.l" -ECHO; - YY_BREAK -case 7: -YY_RULE_SETUP -#line 141 "xxx.l" -ECHO; - YY_BREAK -case 8: -YY_RULE_SETUP -#line 143 "xxx.l" -{ KILLARGS(1); - if (BeginEnv("minpage")) - BEGIN SD; - else - BEGIN SO; - IGNORE; - } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 151 "xxx.l" -{ if (BeginEnv(yytext)) - BEGIN SD; - else - BEGIN SO; - IGNORE; - } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 157 "xxx.l" -NEWLINE; - YY_BREAK -case 11: -YY_RULE_SETUP -#line 158 "xxx.l" -; - YY_BREAK -case 12: -YY_RULE_SETUP -#line 160 "xxx.l" -/* absorb some environments */ {LaBEGIN SC; IGNORE;} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 161 "xxx.l" -NEWLINE; - YY_BREAK -case 14: -YY_RULE_SETUP -#line 162 "xxx.l" -; - YY_BREAK -case 15: -YY_RULE_SETUP -#line 164 "xxx.l" -/* end environment */ { if (EndEnv(yytext)) - BEGIN SO; - IGNORE; - } - YY_BREAK -case 16: -YY_RULE_SETUP -#line 168 "xxx.l" -{BEGIN SD; IGNORE;} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 169 "xxx.l" -NEWLINE; - YY_BREAK -case 18: -YY_RULE_SETUP -#line 170 "xxx.l" -; - YY_BREAK -case 19: -YY_RULE_SETUP -#line 172 "xxx.l" -; - YY_BREAK -case 20: -YY_RULE_SETUP -#line 173 "xxx.l" -; - YY_BREAK -case 21: -YY_RULE_SETUP -#line 174 "xxx.l" -; - YY_BREAK -case 22: -YY_RULE_SETUP -#line 175 "xxx.l" -; - YY_BREAK -case 23: -YY_RULE_SETUP -#line 176 "xxx.l" -; - YY_BREAK -case 24: -YY_RULE_SETUP -#line 178 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 25: -YY_RULE_SETUP -#line 179 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 26: -YY_RULE_SETUP -#line 180 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 27: -YY_RULE_SETUP -#line 181 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 28: -YY_RULE_SETUP -#line 182 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 29: -YY_RULE_SETUP -#line 183 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 184 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 185 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 186 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 33: -YY_RULE_SETUP -#line 187 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 34: -YY_RULE_SETUP -#line 188 "xxx.l" -{ STRIPARGS(2); } - YY_BREAK -case 35: -YY_RULE_SETUP -#line 189 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 36: -YY_RULE_SETUP -#line 190 "xxx.l" -{ STRIPARGS(2); } - YY_BREAK -case 37: -YY_RULE_SETUP -#line 191 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 38: -YY_RULE_SETUP -#line 192 "xxx.l" -; - YY_BREAK -case 39: -YY_RULE_SETUP -#line 193 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 40: -YY_RULE_SETUP -#line 194 "xxx.l" -{ LaBEGIN SQ; } - YY_BREAK -case 41: -YY_RULE_SETUP -#line 196 "xxx.l" -; - YY_BREAK -case 42: -YY_RULE_SETUP -#line 197 "xxx.l" -{ printf("<Picture %s>", yytext); } - YY_BREAK -case 43: -YY_RULE_SETUP -#line 198 "xxx.l" -BEGIN SO; - YY_BREAK -case 44: -YY_RULE_SETUP -#line 200 "xxx.l" -{ KILLARGS(3); } - YY_BREAK -case 45: -YY_RULE_SETUP -#line 201 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 46: -YY_RULE_SETUP -#line 202 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 47: -YY_RULE_SETUP -#line 203 "xxx.l" -{ KILLARGS(2); } - YY_BREAK -case 48: -YY_RULE_SETUP -#line 204 "xxx.l" -{ KILLARGS(3); } - YY_BREAK -case 49: -YY_RULE_SETUP -#line 205 "xxx.l" -{ KILLARGS(1); } - YY_BREAK -case 50: -YY_RULE_SETUP -#line 206 "xxx.l" -{ STRIPARGS(1); } - YY_BREAK -case 51: -YY_RULE_SETUP -#line 208 "xxx.l" -; - YY_BREAK -case 52: -YY_RULE_SETUP -#line 209 "xxx.l" -; - YY_BREAK -case 53: -YY_RULE_SETUP -#line 210 "xxx.l" -; - YY_BREAK -case 54: -YY_RULE_SETUP -#line 211 "xxx.l" -; - YY_BREAK -case 55: -YY_RULE_SETUP -#line 212 "xxx.l" -; - YY_BREAK -case 56: -YY_RULE_SETUP -#line 213 "xxx.l" -; - YY_BREAK -case 57: -YY_RULE_SETUP -#line 215 "xxx.l" -/* ignore args */ {KILLARGS(1); IGNORE;} - YY_BREAK -case 58: -YY_RULE_SETUP -#line 216 "xxx.l" -/* of these \cs */ {KILLARGS(1); IGNORE;} - YY_BREAK -case 59: -YY_RULE_SETUP -#line 217 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 60: -YY_RULE_SETUP -#line 218 "xxx.l" -{CITE(1); IGNORE;} - YY_BREAK -case 61: -YY_RULE_SETUP -#line 219 "xxx.l" -{LATEX; KILLARGS(1); IGNORE;} - YY_BREAK -case 62: -YY_RULE_SETUP -#line 220 "xxx.l" -{LATEX; KILLARGS(1); IGNORE;} - YY_BREAK -case 63: -YY_RULE_SETUP -#line 221 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 64: -YY_RULE_SETUP -#line 222 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 65: -YY_RULE_SETUP -#line 223 "xxx.l" -{KILLARGS(1); SPACE;} - YY_BREAK -case 66: -YY_RULE_SETUP -#line 224 "xxx.l" -{KILLARGS(1); SPACE;} - YY_BREAK -case 67: -YY_RULE_SETUP -#line 225 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 68: -YY_RULE_SETUP -#line 226 "xxx.l" -{CITE(1); IGNORE;} - YY_BREAK -case 69: -YY_RULE_SETUP -#line 227 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 70: -YY_RULE_SETUP -#line 228 "xxx.l" -{CITE(1); IGNORE;} - YY_BREAK -case 71: -YY_RULE_SETUP -#line 229 "xxx.l" -{KILLARGS(1); IGNORE;} - YY_BREAK -case 72: -YY_RULE_SETUP -#line 230 "xxx.l" -/* ignore \verb<ch>...<ch> */ { if (fLatex) { - char verbchar, c; - verbchar = input(); - while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; - } - IGNORE; - } - YY_BREAK -case 73: -YY_RULE_SETUP -#line 240 "xxx.l" -{ LATEX; KILLARGS(2); } - YY_BREAK -case 74: -YY_RULE_SETUP -#line 241 "xxx.l" -{ LATEX; KILLARGS(2); } - YY_BREAK -case 75: -YY_RULE_SETUP -#line 242 "xxx.l" -{ LATEX; KILLARGS(3); } - YY_BREAK -case 76: -YY_RULE_SETUP -#line 244 "xxx.l" -/* ignore def begin */ {BEGIN SJ; IGNORE;} - YY_BREAK -case 77: -YY_RULE_SETUP -#line 245 "xxx.l" -BEGIN SO; - YY_BREAK -case 78: -YY_RULE_SETUP -#line 246 "xxx.l" -NEWLINE; - YY_BREAK -case 79: -YY_RULE_SETUP -#line 247 "xxx.l" -; - YY_BREAK -case 80: -YY_RULE_SETUP -#line 249 "xxx.l" -/* formula mode */ {LaBEGIN SE; IGNORE;} - YY_BREAK -case 81: -YY_RULE_SETUP -#line 250 "xxx.l" -BEGIN SO; - YY_BREAK -case 82: -YY_RULE_SETUP -#line 251 "xxx.l" -NEWLINE; - YY_BREAK -case 83: -YY_RULE_SETUP -#line 252 "xxx.l" -; - YY_BREAK -case 84: -YY_RULE_SETUP -#line 254 "xxx.l" -/* display mode */ {LaBEGIN SB; IGNORE;} - YY_BREAK -case 85: -YY_RULE_SETUP -#line 255 "xxx.l" -BEGIN SO; - YY_BREAK -case 86: -YY_RULE_SETUP -#line 256 "xxx.l" -NEWLINE; - YY_BREAK -case 87: -YY_RULE_SETUP -#line 257 "xxx.l" -; - YY_BREAK -case 88: -YY_RULE_SETUP -#line 259 "xxx.l" -/* display mode */ {BEGIN SK; IGNORE;} - YY_BREAK -case 89: -YY_RULE_SETUP -#line 260 "xxx.l" -BEGIN SO; - YY_BREAK -case 90: -YY_RULE_SETUP -#line 261 "xxx.l" -NEWLINE; - YY_BREAK -case 91: -YY_RULE_SETUP -#line 262 "xxx.l" -; - YY_BREAK -case 92: -YY_RULE_SETUP -#line 264 "xxx.l" -/* math mode */ {BEGIN SN; IGNORE;} - YY_BREAK -case 93: -YY_RULE_SETUP -#line 265 "xxx.l" -BEGIN SO; - YY_BREAK -case 94: -YY_RULE_SETUP -#line 266 "xxx.l" -NEWLINE; - YY_BREAK -case 95: -YY_RULE_SETUP -#line 267 "xxx.l" -; - YY_BREAK -case 96: -YY_RULE_SETUP -#line 268 "xxx.l" -; - YY_BREAK -case 97: -YY_RULE_SETUP -#line 270 "xxx.l" -/* process files */ {LaBEGIN SF; IGNORE;} - YY_BREAK -case 98: -YY_RULE_SETUP -#line 271 "xxx.l" -{ IncludeFile(yytext); - BEGIN SO; - } - YY_BREAK -case 99: -YY_RULE_SETUP -#line 274 "xxx.l" -NEWLINE; - YY_BREAK -case 100: -YY_RULE_SETUP -#line 275 "xxx.l" -; - YY_BREAK -case 101: -YY_RULE_SETUP -#line 277 "xxx.l" -{BEGIN SL; IGNORE;} - YY_BREAK -case 102: -YY_RULE_SETUP -#line 278 "xxx.l" -AddInclude(yytext); - YY_BREAK -case 103: -YY_RULE_SETUP -#line 279 "xxx.l" -{ if (csbIncList == 0) - rgsbIncList[csbIncList++] = '\0'; - BEGIN SO; - } - YY_BREAK -case 104: -YY_RULE_SETUP -#line 283 "xxx.l" -NEWLINE; - YY_BREAK -case 105: -YY_RULE_SETUP -#line 284 "xxx.l" -; - YY_BREAK -case 106: -YY_RULE_SETUP -#line 286 "xxx.l" -{BEGIN SM; IGNORE;} - YY_BREAK -case 107: -YY_RULE_SETUP -#line 287 "xxx.l" -{ InputFile(yytext); - BEGIN SO; - } - YY_BREAK -case 108: -YY_RULE_SETUP -#line 290 "xxx.l" -NEWLINE; - YY_BREAK -case 109: -YY_RULE_SETUP -#line 291 "xxx.l" -; - YY_BREAK -case 110: -YY_RULE_SETUP -#line 293 "xxx.l" -/* handle ligatures */ {(void)printf("%.2s", yytext+1);} - YY_BREAK -case 111: -YY_RULE_SETUP -#line 294 "xxx.l" -{(void)printf("%.1s", yytext+1);} - YY_BREAK -case 112: -YY_RULE_SETUP -#line 295 "xxx.l" -BEGIN SR; - YY_BREAK -case 113: -YY_RULE_SETUP -#line 297 "xxx.l" -/* ignore other \cs */ {BEGIN SP; IGNORE;} - YY_BREAK -case 114: -YY_RULE_SETUP -#line 298 "xxx.l" -SPACE; - YY_BREAK -case 115: -YY_RULE_SETUP -#line 299 "xxx.l" -NEWLINE; - YY_BREAK -case 116: -YY_RULE_SETUP -#line 300 "xxx.l" -IGNORE; - YY_BREAK -case 117: -YY_RULE_SETUP -#line 301 "xxx.l" -{ if (yytext==NULL || strlen(yytext)==0 - || atoi(yytext)==4) - NEWLINE; - BEGIN SO; - } - YY_BREAK -case 118: -YY_RULE_SETUP -#line 307 "xxx.l" -IGNORE; - YY_BREAK -case 119: -YY_RULE_SETUP -#line 308 "xxx.l" -IGNORE; - YY_BREAK -case 120: -YY_RULE_SETUP -#line 309 "xxx.l" -{BEGIN SO; NEWLINE;} - YY_BREAK -case 121: -YY_RULE_SETUP -#line 310 "xxx.l" -{BEGIN SO; IGNORE;} - YY_BREAK -case 122: -YY_RULE_SETUP -#line 311 "xxx.l" -{yyless(0);BEGIN SO;} - YY_BREAK -case 123: -YY_RULE_SETUP -#line 313 "xxx.l" -/* special characters */ IGNORE; - YY_BREAK -case 124: -YY_RULE_SETUP -#line 314 "xxx.l" -IGNORE; - YY_BREAK -case 125: -YY_RULE_SETUP -#line 315 "xxx.l" -SPACE; - YY_BREAK -case 126: -YY_RULE_SETUP -#line 317 "xxx.l" -{ if (fWord) - (void)printf("%s\n", yytext); - else - ECHO; - } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 322 "xxx.l" -if (!fWord) ECHO; - YY_BREAK -case 128: -YY_RULE_SETUP -#line 323 "xxx.l" -if (!fWord) ECHO; - YY_BREAK -case 129: -YY_RULE_SETUP -#line 325 "xxx.l" -{ BEGIN ST; } - YY_BREAK -case 130: -YY_RULE_SETUP -#line 326 "xxx.l" -{ cOpenBrace++; } - YY_BREAK -case 131: -YY_RULE_SETUP -#line 327 "xxx.l" -{ cOpenBrace--; - if (cOpenBrace == 0) - { - if (--cArgs==0) - BEGIN SO; - } - } - YY_BREAK -case 132: -YY_RULE_SETUP -#line 334 "xxx.l" -; - YY_BREAK -case 133: -YY_RULE_SETUP -#line 335 "xxx.l" -BEGIN SH; - YY_BREAK -case 134: -YY_RULE_SETUP -#line 336 "xxx.l" -; - YY_BREAK -case 135: -YY_RULE_SETUP -#line 338 "xxx.l" -{ BEGIN SS; } - YY_BREAK -case 136: -YY_RULE_SETUP -#line 339 "xxx.l" -{ if (cOpenBrace == 0) - { - if (--cArgs==0) - { - BEGIN SO; - cOpenBrace--; - } - } - cOpenBrace++; - } - YY_BREAK -case 137: -YY_RULE_SETUP -#line 349 "xxx.l" -{ cOpenBrace--; } - YY_BREAK -case 138: -YY_RULE_SETUP -#line 350 "xxx.l" -; - YY_BREAK -case 139: -YY_RULE_SETUP -#line 351 "xxx.l" -BEGIN SG; - YY_BREAK -case 140: -YY_RULE_SETUP -#line 352 "xxx.l" -; - YY_BREAK -case 141: -YY_RULE_SETUP -#line 353 "xxx.l" -ECHO; - YY_BREAK -#line 4847 "lex.yy.c" -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(SJ): -case YY_STATE_EOF(SK): -case YY_STATE_EOF(SL): -case YY_STATE_EOF(SM): -case YY_STATE_EOF(SN): -case YY_STATE_EOF(SO): -case YY_STATE_EOF(SP): -case YY_STATE_EOF(SA): -case YY_STATE_EOF(SB): -case YY_STATE_EOF(SC): -case YY_STATE_EOF(SD): -case YY_STATE_EOF(SE): -case YY_STATE_EOF(SF): -case YY_STATE_EOF(SH): -case YY_STATE_EOF(ST): -case YY_STATE_EOF(SG): -case YY_STATE_EOF(SS): -case YY_STATE_EOF(SI): -case YY_STATE_EOF(SR): -case YY_STATE_EOF(SQ): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = yy_hold_char; - YY_RESTORE_YY_MORE_OFFSET - - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between yy_current_buffer and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - yy_n_chars = yy_current_buffer->yy_n_chars; - yy_current_buffer->yy_input_file = yyin; - yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = yytext_ptr + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++yy_c_buf_p; - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = yy_c_buf_p; - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer() ) - { - case EOB_ACT_END_OF_FILE: - { - yy_did_buffer_switch_on_eof = 0; - - if ( yywrap() ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = - yytext_ptr + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - yy_c_buf_p = - &yy_current_buffer->yy_ch_buf[yy_n_chars]; - - yy_current_state = yy_get_previous_state(); - - yy_cp = yy_c_buf_p; - yy_bp = yytext_ptr + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of yylex */ - - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ - -static int yy_get_next_buffer() - { - register char *dest = yy_current_buffer->yy_ch_buf; - register char *source = yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( yy_current_buffer->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - yy_current_buffer->yy_n_chars = yy_n_chars = 0; - - else - { - int num_to_read = - yy_current_buffer->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ -#ifdef YY_USES_REJECT - YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = yy_current_buffer; - - int yy_c_buf_p_offset = - (int) (yy_c_buf_p - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yy_flex_realloc( (void *) b->yy_ch_buf, - b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = yy_current_buffer->yy_buf_size - - number_to_move - 1; -#endif - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), - yy_n_chars, num_to_read ); - - yy_current_buffer->yy_n_chars = yy_n_chars; - } - - if ( yy_n_chars == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart( yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - yy_current_buffer->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - yy_n_chars += number_to_move; - yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; - yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; - - yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; - - return ret_val; - } - - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - -static yy_state_type yy_get_previous_state() - { - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = yy_start; - - for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) - { - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - if ( *yy_cp ) - { - register YY_CHAR yy_c = YY_SC_TO_UI(*yy_cp); - if ( yy_accept[yy_current_state] ) - { - yy_last_accepting_state = yy_current_state; - yy_last_accepting_cpos = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - else - yy_current_state = yy_NUL_trans[yy_current_state]; - } - - return yy_current_state; - } - - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - -#ifdef YY_USE_PROTOS -static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) -#else -static yy_state_type yy_try_NUL_trans( yy_current_state ) -yy_state_type yy_current_state; -#endif - { - register int yy_is_jam; - - yy_current_state = yy_NUL_trans[yy_current_state]; - yy_is_jam = (yy_current_state == 0); - - return yy_is_jam ? 0 : yy_current_state; - } - - -#ifndef YY_NO_UNPUT -#ifdef YY_USE_PROTOS -static void yyunput( int c, register char *yy_bp ) -#else -static void yyunput( c, yy_bp ) -int c; -register char *yy_bp; -#endif - { - register char *yy_cp = yy_c_buf_p; - - /* undo effects of setting up yytext */ - *yy_cp = yy_hold_char; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = yy_n_chars + 2; - register char *dest = &yy_current_buffer->yy_ch_buf[ - yy_current_buffer->yy_buf_size + 2]; - register char *source = - &yy_current_buffer->yy_ch_buf[number_to_move]; - - while ( source > yy_current_buffer->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - yy_current_buffer->yy_n_chars = - yy_n_chars = yy_current_buffer->yy_buf_size; - - if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - - yytext_ptr = yy_bp; - yy_hold_char = *yy_cp; - yy_c_buf_p = yy_cp; - } -#endif /* ifndef YY_NO_UNPUT */ - - -#ifdef __cplusplus -static int yyinput() -#else -static int input() -#endif - { - int c; - - *yy_c_buf_p = yy_hold_char; - - if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) - /* This was really a NUL. */ - *yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = yy_c_buf_p - yytext_ptr; - ++yy_c_buf_p; - - switch ( yy_get_next_buffer() ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart( yyin ); - - /* fall through */ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap() ) - return EOF; - - if ( ! yy_did_buffer_switch_on_eof ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - yy_c_buf_p = yytext_ptr + offset; - break; - } - } - } - - c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ - *yy_c_buf_p = '\0'; /* preserve yytext */ - yy_hold_char = *++yy_c_buf_p; - - - return c; - } - - -#ifdef YY_USE_PROTOS -void yyrestart( FILE *input_file ) -#else -void yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! yy_current_buffer ) - yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); - - yy_init_buffer( yy_current_buffer, input_file ); - yy_load_buffer_state(); - } - - -#ifdef YY_USE_PROTOS -void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) -#else -void yy_switch_to_buffer( new_buffer ) -YY_BUFFER_STATE new_buffer; -#endif - { - if ( yy_current_buffer == new_buffer ) - return; - - if ( yy_current_buffer ) - { - /* Flush out information for old buffer. */ - *yy_c_buf_p = yy_hold_char; - yy_current_buffer->yy_buf_pos = yy_c_buf_p; - yy_current_buffer->yy_n_chars = yy_n_chars; - } - - yy_current_buffer = new_buffer; - yy_load_buffer_state(); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef YY_USE_PROTOS -void yy_load_buffer_state( void ) -#else -void yy_load_buffer_state() -#endif - { - yy_n_chars = yy_current_buffer->yy_n_chars; - yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; - yyin = yy_current_buffer->yy_input_file; - yy_hold_char = *yy_c_buf_p; - } - - -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) -#else -YY_BUFFER_STATE yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer( b, file ); - - return b; - } - - -#ifdef YY_USE_PROTOS -void yy_delete_buffer( YY_BUFFER_STATE b ) -#else -void yy_delete_buffer( b ) -YY_BUFFER_STATE b; -#endif - { - if ( ! b ) - return; - - if ( b == yy_current_buffer ) - yy_current_buffer = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yy_flex_free( (void *) b->yy_ch_buf ); - - yy_flex_free( (void *) b ); - } - - -#ifndef YY_ALWAYS_INTERACTIVE -#ifndef YY_NEVER_INTERACTIVE -extern int isatty YY_PROTO(( int )); -#endif -#endif - -#ifdef YY_USE_PROTOS -void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) -#else -void yy_init_buffer( b, file ) -YY_BUFFER_STATE b; -FILE *file; -#endif - - - { - yy_flush_buffer( b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - -#if YY_ALWAYS_INTERACTIVE - b->yy_is_interactive = 1; -#else -#if YY_NEVER_INTERACTIVE - b->yy_is_interactive = 0; -#else - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; -#endif -#endif - } - - -#ifdef YY_USE_PROTOS -void yy_flush_buffer( YY_BUFFER_STATE b ) -#else -void yy_flush_buffer( b ) -YY_BUFFER_STATE b; -#endif - - { - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == yy_current_buffer ) - yy_load_buffer_state(); - } - - -#ifndef YY_NO_SCAN_BUFFER -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) -#else -YY_BUFFER_STATE yy_scan_buffer( base, size ) -char *base; -yy_size_t size; -#endif - { - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer( b ); - - return b; - } -#endif - - -#ifndef YY_NO_SCAN_STRING -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) -#else -YY_BUFFER_STATE yy_scan_string( yy_str ) -yyconst char *yy_str; -#endif - { - int len; - for ( len = 0; yy_str[len]; ++len ) - ; - - return yy_scan_bytes( yy_str, len ); - } -#endif - - -#ifndef YY_NO_SCAN_BYTES -#ifdef YY_USE_PROTOS -YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) -#else -YY_BUFFER_STATE yy_scan_bytes( bytes, len ) -yyconst char *bytes; -int len; -#endif - { - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *) yy_flex_alloc( n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; - - buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer( buf, n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; - } -#endif - - -#ifndef YY_NO_PUSH_STATE -#ifdef YY_USE_PROTOS -static void yy_push_state( int new_state ) -#else -static void yy_push_state( new_state ) -int new_state; -#endif - { - if ( yy_start_stack_ptr >= yy_start_stack_depth ) - { - yy_size_t new_size; - - yy_start_stack_depth += YY_START_STACK_INCR; - new_size = yy_start_stack_depth * sizeof( int ); - - if ( ! yy_start_stack ) - yy_start_stack = (int *) yy_flex_alloc( new_size ); - - else - yy_start_stack = (int *) yy_flex_realloc( - (void *) yy_start_stack, new_size ); - - if ( ! yy_start_stack ) - YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - yy_start_stack[yy_start_stack_ptr++] = YY_START; - - BEGIN(new_state); - } -#endif - - -#ifndef YY_NO_POP_STATE -static void yy_pop_state() - { - if ( --yy_start_stack_ptr < 0 ) - YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN(yy_start_stack[yy_start_stack_ptr]); - } -#endif - - -#ifndef YY_NO_TOP_STATE -static int yy_top_state() - { - return yy_start_stack[yy_start_stack_ptr - 1]; - } -#endif - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -#ifdef YY_USE_PROTOS -static void yy_fatal_error( yyconst char msg[] ) -#else -static void yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); - } - - - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - yytext[yyleng] = yy_hold_char; \ - yy_c_buf_p = yytext + n; \ - yy_hold_char = *yy_c_buf_p; \ - *yy_c_buf_p = '\0'; \ - yyleng = n; \ - } \ - while ( 0 ) - - -/* Internal utility routines. */ - -#ifndef yytext_ptr -#ifdef YY_USE_PROTOS -static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) -#else -static void yy_flex_strncpy( s1, s2, n ) -char *s1; -yyconst char *s2; -int n; -#endif - { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; - } -#endif - -#ifdef YY_NEED_STRLEN -#ifdef YY_USE_PROTOS -static int yy_flex_strlen( yyconst char *s ) -#else -static int yy_flex_strlen( s ) -yyconst char *s; -#endif - { - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; - } -#endif - - -#ifdef YY_USE_PROTOS -static void *yy_flex_alloc( yy_size_t size ) -#else -static void *yy_flex_alloc( size ) -yy_size_t size; -#endif - { - return (void *) malloc( size ); - } - -#ifdef YY_USE_PROTOS -static void *yy_flex_realloc( void *ptr, yy_size_t size ) -#else -static void *yy_flex_realloc( ptr, size ) -void *ptr; -yy_size_t size; -#endif - { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); - } - -#ifdef YY_USE_PROTOS -static void yy_flex_free( void *ptr ) -#else -static void yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ptr ); - } - -#if YY_MAIN -int main() - { - yylex(); - return 0; - } -#endif -#line 353 "xxx.l" - -/****** -** main -- -** Set sbProgName to the base of arg 0. -** Set the input paths. -** Check for options -** -c echo LaTeX \cite, \ref, and \pageref values -** -e <env-list> list of LaTeX environments to ignore -** -l force latex mode -** -n do not follow \input and \include -** -s replace control sequences with space -** -t force tex mode -** -w word only output -** Set the list of LaTeX environments to ignore. -** Process each input file. -** If no input files are specified on the command line, process stdin. -******/ - -main(cArgs,rgsbArgs) -int cArgs; -char *rgsbArgs[]; -{ - char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2]; - FILE *TexOpen(); - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -#ifdef OS2 - char drive[_MAX_DRIVE], dir[_MAX_DIR]; - char fname[_MAX_FNAME], ext[_MAX_EXT]; -#ifdef __EMX__ - _wildcard(&cArgs, &rgsbArgs); - _response(&cArgs, &rgsbArgs); -#endif - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); -#else - if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else - sbProgName = rgsbArgs[0]; -#endif - if (strcmp("delatex",sbProgName) == 0) - fLatex = 1; - - /* set rgsbInputPaths for use with TexOpen() */ - SetInputPaths(); - - /* process command line options */ - while (iArgs < cArgs && *(pch = rgsbArgs[iArgs]) == CHOPT) { - while (*++pch) - switch (*pch) { - case CHCITEOPT: - fCite = 1; - break; - case CHENVOPT: - if (++iArgs >= cArgs) { - ErrorExit("-e option requires and argument"); - } - sbEnvList = rgsbArgs[iArgs]; - break; - case CHLATEXOPT: - fLatex = 1; - break; - case CHNOFOLLOWOPT: - fFollow = 0; - break; - case CHSPACEOPT: - fSpace = 1; - break; - case CHTEXOPT: - fForcetex = 1; - break; - case CHWORDOPT: - fWord = 1; - break; - default: -#ifdef OS2 - OS2UsageExit(); -#else - sbBadOpt[0] = *pch; - sbBadOpt[1] = '\0'; - Warning("unknown option ignored -", sbBadOpt); -#endif - } - iArgs++; - } - SetEnvIgnore(sbEnvList); - - /* process input files */ - for (; iArgs < cArgs; iArgs++) { - fSawFile++; - if ((yyin = TexOpen(rgsbArgs[iArgs])) == NULL) { - Warning("can't open file", rgsbArgs[iArgs]); - continue;; - } - BEGIN SO; - (void)yylex(); - } - - /* if there were no input files, assume stdin */ - if (!fSawFile) { - yyin = stdin; -#ifdef OS2 - if (isatty(fileno(stdin))) - OS2UsageExit(); -#endif - BEGIN SO; - (void)yylex(); - } -#ifndef FLEX_SCANNER - if (YYSTATE != SO) - ErrorExit("input contains an unterminated mode or environment"); -#endif - return(0); -} - -#ifdef FLEX_SCANNER -#undef yywrap -#endif - -/****** -** yywrap -- handles EOF for lex. Check to see if the stack of open files -** has anything on it. If it does, set yyin to the to value. If not -** return the termination signal for lex. -******/ - -yywrap() -{ - (void)fclose(yyin); -#ifdef FLEX_SCANNER - /* Pop context state */ - if (csb > 0) { - yy_delete_buffer( YY_CURRENT_BUFFER ); - yy_switch_to_buffer( rgsb[--csb] ); - } -#endif /* FLEX_SCANNER */ - if (cfp > 0) { - yyin = rgfp[--cfp]; - return(0); - } - return(1); -} - -#ifdef OS2 - -/****** -** yyless -- return characters to the input stream. Some systems don't have -** a yyless routine -******/ - -void yyless(n) -int n; -{ - int i = strlen(yytext); - - while (i > n) unput(yytext[--i]); - yytext[yyleng = n] = '\0'; -} -#endif - -/****** -** SetEnvIgnore -- sets rgsbEnvIgnore to the values indicated by the -** sbEnvList. -******/ - -SetEnvIgnore(sbEnvList) -char *sbEnvList; -{ - char *sb; - - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); - if (csbEnvIgnore == ERROR) - ErrorExit("The environtment list contains too many environments"); -} - -/****** -** BeginEnv -- checks to see if sbEnv is in the list rgsbEnvIgnore. If it -** is, sbCurrentEnv is set to sbEnv. -******/ - -BeginEnv(sbEnv) -char *sbEnv; -{ - int i; - - if (!fLatex) return(0); - for (i = 0; i < csbEnvIgnore; i++) - if (strcmp(sbEnv, rgsbEnvIgnore[i]) == 0) { - (void)strcpy(sbCurrentEnv, sbEnv); - return(1); - } - return(0); -} - -/****** -** EndEnv -- checks to see if sbEnv is the current environment being ignored. -******/ - -EndEnv(sbEnv) -char *sbEnv; -{ - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) - return(1); - return(0); -} - -/****** -** InputFile -- push the current yyin and open sbFile. If the open fails, -** the sbFile is ignored. -******/ - -InputFile(sbFile) -char *sbFile; -{ - FILE *TexOpen(); - - if (!fFollow) - return; - rgfp[cfp++] = yyin; - if ((yyin = TexOpen(sbFile)) == NULL) { - Warning("can't open \\input file", sbFile); - yyin = rgfp[--cfp]; - return; - } -#ifdef FLEX_SCANNER - rgsb[csb++] = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE ) ); -#endif /* FLEX_SCANNER */ -} - -/****** -** IncludeFile -- if sbFile is not in the rgsbIncList, push current yyin -** and open sbFile. If the open fails, the sbFile is ignored. -******/ - -IncludeFile(sbFile) -char *sbFile; -{ - FILE *TexOpen(); - - if (!fFollow) - return; - if (!InList(sbFile)) - return; - rgfp[cfp++] = yyin; - if ((yyin = TexOpen(sbFile)) == NULL) { - Warning("can't open \\include file", sbFile); - yyin = rgfp[--cfp]; - return; - } -#ifdef FLEX_SCANNER - rgsb[csb++] = YY_CURRENT_BUFFER; - yy_switch_to_buffer(yy_create_buffer( yyin, YY_BUF_SIZE ) ); -#endif /* FLEX_SCANNER */ -} - -/****** -** AddInclude -- adds sbFile to the rgsbIncList and increments csbIncList. -** If the include list is too long, sbFile is ignored. -******/ - -AddInclude(sbFile) -char *sbFile; -{ - if (!fFollow) - return; - if (csbIncList >= MAXINCLIST) - Warning("\\includeonly list is too long, ignoring", sbFile); - rgsbIncList[csbIncList] = SafeMalloc(strlen(sbFile) + 1, "malloc for AddInclude failed"); - (void)strcpy(rgsbIncList[csbIncList++], sbFile); -} - -/****** -** InList -- checks to see if sbFile is in the rgsbIncList. If there is -** no list, all files are assumed to be "in the list". -******/ - -InList(sbFile) -char *sbFile; -{ - char *pch, sbBase[MAXPATHLEN]; - int i; - - if (csbIncList == 0) /* no list */ - return(1); - (void)strcpy(sbBase, sbFile); - if ((pch = rindex(sbBase, '.')) != NULL) - *pch = '\0'; - i = 0; - while ((i < csbIncList) && rgsbIncList[i]) - if (strcmp(rgsbIncList[i++], sbBase) == 0) - return(1); - return(0); -} - -/****** -** SetInputPaths -- sets rgsbInputPaths to the values indicated by the -** TEXINPUTS environment variable if set or else DEFAULTINPUTS. If -** the user's TEXINPUTS has a leading ':' prepend the DEFAULTINPUTS -** to the path, if there is a trailing ':' append the DEFAULTINPUTS. -** This is consistent with the most recent TeX. However, this -** routine does not honor the '//' construct (expand subdirs). -******/ - -SetInputPaths() -{ - char *sb, *sbPaths, *getenv(); - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -#ifdef OS2 - if ((sb = getenv("TEXINPUT")) == NULL) -#endif - if ((sb = getenv("TEXINPUTS")) == NULL) - sb = DEFAULTINPUTS; - cchPaths = strlen(sb); - if (sb[0] == CHPATHSEP) - cchPaths += cchDefaults; - if (sb[strlen(sb) - 1] == CHPATHSEP) - cchPaths += cchDefaults; - sbPaths = SafeMalloc(cchPaths + 1, "malloc for SetInputPaths failed"); - sbPaths[0] = '\0'; - if (sb[0] == CHPATHSEP) - (void)strcat(sbPaths, DEFAULTINPUTS); - (void)strcat(sbPaths, sb); - if (sb[strlen(sb) - 1] == CHPATHSEP) - (void)strcat(sbPaths, DEFAULTINPUTS); - - csbInputPaths = SeparateList(sbPaths, rgsbInputPaths, CHPATHSEP, MAXINPUTPATHS); - if (csbInputPaths == ERROR) -#ifdef OS2 - ErrorExit("TEXINPUT(S) environment variable has too many paths"); -#else - ErrorExit("TEXINPUTS environment variable has too many paths"); -#endif -} - -/****** -** SeparateList -- takes a chSep separated list sbList, replaces the -** chSep's with NULLs and sets rgsbList[i] to the beginning of -** the ith word in sbList. The number of words is returned. A -** ERROR is returned if there are more than csbMax words. -******/ - -SeparateList(sbList, rgsbList, chSep, csbMax) -char *sbList, *rgsbList[], chSep; -int csbMax; -{ - int csbList = 0; - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; - if (sbList = index(sbList, chSep)) - *sbList++ = '\0'; - } - return(sbList && *sbList ? ERROR : csbList); -} - -/****** -** TexOpen -- tries to open sbFile in each of the rgsbInputPaths in turn. -** For each input path the following order is used: -** file.tex - must be as named, if not there go to the next path -** file.ext - random extension, try it -** file - base name, add .tex and try it -** file - try it as is -** Notice that if file exists in the first path and file.tex exists in -** one of the other paths, file in the first path is what is opened. -** If the sbFile begins with a '/', no paths are searched. -******/ - -FILE * -TexOpen(sbFile) -char *sbFile; -{ - char *pch, *sbNew; - FILE *fp; - int iPath; - static char sbFullPath[MAXPATHLEN]; - - for (iPath = 0; iPath < csbInputPaths; iPath++) { -#ifdef OS2 - if (*sbFile == '/' || *sbFile == '\\' || strchr(sbFile, ':')) { /* absolute path */ -#else - if (*sbFile == '/') { /* absolute path */ -#endif - (void)sprintf(sbFullPath, "%s", sbFile); - iPath = csbInputPaths; /* only check once */ - } else - (void)sprintf(sbFullPath, "%s/%s", rgsbInputPaths[iPath], sbFile); -#ifdef OS2 - pch = sbFullPath; - while (pch = strchr(pch, '\\')) - *pch = '/'; -#endif - - /* If sbFile ends in .tex then it must be there */ - if ((pch = rindex(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - else - continue; - - /* if .<ext> then try to open it. the '.' represents */ - /* the beginning of an extension if it is not the first */ - /* character and it does not follow a '.' or a '/' */ - if (pch != NULL && pch > &(sbFullPath[0]) - && *(pch - 1) != '.' && *(pch - 1) != '/' - && (fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - - /* just base name, add .tex to the name */ - sbNew = SafeMalloc(strlen(sbFullPath) + 5, "malloc for TexOpen failed"); - (void)strcpy(sbNew, sbFullPath); - (void)strcat(sbNew, ".tex"); - if ((fp = fopen(sbNew, "r")) != NULL) - return(fp); - - /* try sbFile regardless */ - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - } - return((FILE *)NULL); -} - -/****** -** SafeMalloc -- wrapper around malloc() to check for failure. -******/ - -char * -SafeMalloc(cch, sbMessage) -int cch; -char *sbMessage; -{ - char *sb; - - if ((sb = (char *)malloc((unsigned)cch)) == NULL) - ErrorExit(sbMessage); - return(sb); -} - -/****** -** Warning -- print a warning message preceded by the program name. -******/ - -Warning(sb1, sb2) -char *sb1, *sb2; -{ - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); -} - -/****** -** ErrorExit -- print an error message preceded by the program name. -** Stdout is flushed and detex exits. -******/ - -ErrorExit(sb1) -char *sb1; -{ - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); - exit(1); -} -#ifdef OS2 - -/****** -** OS2UsageExit -- print OS/2 usage message and exit. -******/ - -OS2UsageExit() -{ - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", - sbProgName); - puts(" -c echo LaTeX \\cite, \\ref, and \\pageref values\n \ --e <env-list> list of LaTeX environments to ignore\n \ --l force latex mode\n \ --n do not follow \\input and \\include\n \ --s replace control sequences with space\n \ --t force tex mode\n \ --w word only output"); - exit(0); -} -#endif diff --git a/Build/source/texk/detex/detex-src/os2/README b/Build/source/texk/detex/detex-src/os2/README deleted file mode 100644 index 7b0c562dd10..00000000000 --- a/Build/source/texk/detex/detex-src/os2/README +++ /dev/null @@ -1,7 +0,0 @@ -This directory contains file contributed by hankedr@mail.auburn.edu -(Darrel R Hankerson) to facilitate compilation on OS/2 and DOS -systems. Use the lexout.c provided in the top level directory. - - detex.def linker definition file (16-bit versions) - detex-32.def linker definition file - Makefile.os2 makefile for MSC 6.00A or EMX/gcc (tested with dmake 3.8) diff --git a/Build/source/texk/detex/detex-src/os2/detex-32.def b/Build/source/texk/detex/detex-src/os2/detex-32.def deleted file mode 100644 index 88cc9457ef3..00000000000 --- a/Build/source/texk/detex/detex-src/os2/detex-32.def +++ /dev/null @@ -1,3 +0,0 @@ -NAME detex WINDOWCOMPAT NEWFILES -DESCRIPTION 'detex for OS/2 and MSDOS' -STACKSIZE 0x8000 diff --git a/Build/source/texk/detex/detex-src/os2/detex.def b/Build/source/texk/detex/detex-src/os2/detex.def deleted file mode 100644 index 616c3156923..00000000000 --- a/Build/source/texk/detex/detex-src/os2/detex.def +++ /dev/null @@ -1,2 +0,0 @@ -NAME detex WINDOWCOMPAT NEWFILES -DESCRIPTION 'detex for OS/2 and MSDOS' diff --git a/Build/source/texk/detex/detex-src/os2/makefile.os2 b/Build/source/texk/detex/detex-src/os2/makefile.os2 deleted file mode 100644 index daf50a0b7b5..00000000000 --- a/Build/source/texk/detex/detex-src/os2/makefile.os2 +++ /dev/null @@ -1,96 +0,0 @@ -# Makefile for "detex" (tested with dmake 3.8) 22 July 1993 -# -# - for GNU gcc (emx 0.8g kit) under OS/2 (32-bit) -# - for Microsoft C 6.00 under OS/2 or MSDOS (16-bit) - -# To use, enter "{d,n}make -f makefile.os2" (this makefile depends on its -# name being "makefile.os2"). - -default: - @echo Enter "$(MAKE) -f makefile.os2 emx" - @echo Enter "$(MAKE) -f makefile.os2 emxbnd" - @echo or "$(MAKE) -f makefile.os2 msc" - @echo or "$(MAKE) -f makefile.os2 mscbnd" - -# See the original Makefile for a complete list of options. -# -# Add -DMAXPATHLEN=<length> if it is not defined in /usr/include/sys/param.h -# -#MAXPATHLEN = -DMAXPATHLEN=1024 -# -# Add -DNO_MALLOC_DECL if your system does not like the malloc() declaration -# in detex.l (reported by pinard@iro.umontreal.ca) -# -NO_MALLOC_DECL = -DNO_MALLOC_DECL -# - -emx: - $(MAKE) -f makefile.os2 all \ - CC="gcc -Zomf -Zmtd" O=".obj" \ - CF="" \ - LDFLAGS="" \ - LDFLAGS2="" \ - DEF="detex-32.def" - -emxbnd: - $(MAKE) -f makefile.os2 all \ - CC="gcc" O=".o" \ - CF="" \ - LDFLAGS="" \ - LDFLAGS2="" \ - DEF="detex-32.def" - -msc: - $(MAKE) -f makefile.os2 all \ - CC="cl -AS " O=".obj" \ - CF="-D__STDC__ -DMAXPATHLEN=1024" \ - LDFLAGS="-Lp" \ - LDFLAGS2="setargv.obj -link /NOE" \ - DEF="detex.def" - -mscbnd: - $(MAKE) -f makefile.os2 all \ - CC="cl -AS " O=".obj" \ - CF="-D__STDC__ -DMAXPATHLEN=1024" \ - LDFLAGS="-Lp -Fb" \ - LDFLAGS2="setargv.obj -link /NOE" \ - DEF="detex.def" - - -CFLAGS = $(CF) -DOS2 -DHAVE_STRING_H $(NO_MALLOC_DECL) -DNOFILE=99 - -.c$O : - $(CC) $(CFLAGS) -c $< - -all : detex.exe - -detex.exe : detex$O $(DEF) - $(CC) $(LDFLAGS) -o $@ $< $(LDFLAGS2) - - -# Use your favorite lexical scanner -# -# flex buffered input causes problems--see flexdoc.man. -LEX = lex -LEX_YY = lex.yy -#LEX = flex -#LEX_YY = lexyy - -#LFLAGS = -8 -C - -CP = cp -FMT_CMD = groff -man - -# lexout.c obtained from lex output on sparc. - -#detex.c: -# sed -f states.sed detex.l | ${LEX} ${LFLAGS} -# mv $(LEX_YY).c detex.c - -detex.c : lexout.c - $(CP) $< $@ - -man-page: - $(FMT_CMD) detex.1l - -detex$O : detex.h diff --git a/Build/source/texk/detex/detex-src/states.sed b/Build/source/texk/detex/detex-src/states.sed deleted file mode 100644 index 110f5fa6f7c..00000000000 --- a/Build/source/texk/detex/detex-src/states.sed +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright (c) 1986-2007 Purdue University -# All rights reserved. -# -# Developed by: Daniel Trinkle -# Department of Computer Science, Purdue University -# http://www.cs.purdue.edu/ -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal with the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# o Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimers. -# -# o Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimers in the -# documentation and/or other materials provided with the distribution. -# -# o Neither the names of Daniel Trinkle, Purdue University, nor the -# names of its contributors may be used to endorse or promote products -# derived from this Software without specific prior written -# permission. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR -# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. -# -# -# convert long labels to a shorter form so lex(1) won't overflow -s/LaBegin/SA/g -s/LaDisplay/SB/g -s/LaEnd/SC/g -s/LaEnv/SD/g -s/LaFormula/SE/g -s/LaInclude/SF/g -s/LaMacro2/SG/g -s/LaMacro/SH/g -s/LaVerbatim/SI/g -s/Define/SJ/g -s/Display/SK/g -s/IncludeOnly/SL/g -s/\([ <]\)Input\([ >;]\)/\1SM\2/g -s/Math/SN/g -s/Normal/SO/g -s/Control/SP/g -s/LaPicture/SQ/g -s/LaBreak/SR/g -s/LaOptArg2/SS/g -s/LaOptArg/ST/g diff --git a/Build/source/texk/detex/test.lout b/Build/source/texk/detex/test.lout index 276496573a0..ef238119ec9 100644 --- a/Build/source/texk/detex/test.lout +++ b/Build/source/texk/detex/test.lout @@ -1,22 +1,17 @@ - - - This is the first paragraph. -First Section +First Section Preamble of Sect. 1. -A Subsection +A Subsection Here some text, an inline formula , as well as a displayed equation - - - + and some more text. -Now some verbatim text . That's all, folks. +Now some verbatim text a b c. That's all, folks. diff --git a/Build/source/texk/detex/test.tout b/Build/source/texk/detex/test.tout index 1ea25c2242a..beff22c93ad 100644 --- a/Build/source/texk/detex/test.tout +++ b/Build/source/texk/detex/test.tout @@ -1,23 +1,21 @@ -article - - +article This is the first paragraph. -First Section +First Section Preamble of Sect. 1. -A Subsection +A Subsection Here some text, an inline formula , as well as a displayed equation -equation -e^ix=x i x, -equation +equation +e^ix =x i x, +equation and some more text. Now some verbatim text a b c. That's all, folks. -document
\ No newline at end of file +document
\ No newline at end of file |