diff --git a/build_common.xml b/build_common.xml
index 1d6aabca8..257b2f7de 100644
--- a/build_common.xml
+++ b/build_common.xml
@@ -656,5 +656,5 @@
-
+
\ No newline at end of file
diff --git a/libsrc/ffdec_lib/build.xml b/libsrc/ffdec_lib/build.xml
index 133e4195c..57057407c 100644
--- a/libsrc/ffdec_lib/build.xml
+++ b/libsrc/ffdec_lib/build.xml
@@ -37,6 +37,7 @@
+
diff --git a/libsrc/ffdec_lib/build_common.xml b/libsrc/ffdec_lib/build_common.xml
index 94500af79..954fd298e 100644
--- a/libsrc/ffdec_lib/build_common.xml
+++ b/libsrc/ffdec_lib/build_common.xml
@@ -41,8 +41,7 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libsrc/ffdec_lib/jflex-1.6.0.jar b/libsrc/ffdec_lib/jflex-1.6.0.jar
new file mode 100644
index 000000000..550e446cd
Binary files /dev/null and b/libsrc/ffdec_lib/jflex-1.6.0.jar differ
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex b/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex
similarity index 96%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex
rename to libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex
index f839de889..89567c12f 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex
+++ b/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex
@@ -82,7 +82,6 @@ FLit3 = [0-9]+
Exponent = [eE] [+-]? [0-9]+
HexDigit = [0-9a-fA-F]
-OctDigit = [0-7]
/* string and character literals */
StringCharacter = [^\r\n\"\\]
@@ -161,9 +160,9 @@ StringCharacter = [^\r\n\"\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex b/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex
similarity index 98%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex
rename to libsrc/ffdec_lib/lexers/actionscript3_pcode.flex
index f8e3027b7..5073d696a 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex
+++ b/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex
@@ -164,6 +164,7 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
{InstructionName} { yybegin(PARAMETERS);
return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
}
+ {Comment} {return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));}
}
{
@@ -284,9 +285,9 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex b/libsrc/ffdec_lib/lexers/actionscript3_script.flex
similarity index 98%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex
rename to libsrc/ffdec_lib/lexers/actionscript3_script.flex
index 6d99ab3ae..b91809b94 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex
+++ b/libsrc/ffdec_lib/lexers/actionscript3_script.flex
@@ -586,7 +586,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\ยง" { string.append('\u00A7'); }
"\\r" { string.append('\r'); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val); }
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -613,9 +615,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -642,9 +644,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex b/libsrc/ffdec_lib/lexers/actionscript_pcode.flex
similarity index 96%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex
rename to libsrc/ffdec_lib/lexers/actionscript_pcode.flex
index ee0456d7b..766db3bbe 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex
+++ b/libsrc/ffdec_lib/lexers/actionscript_pcode.flex
@@ -101,7 +101,6 @@ FLit3 = [0-9]+
Exponent = [eE] [+-]? [0-9]+
HexDigit = [0-9a-fA-F]
-OctDigit = [0-7]
/* string and character literals */
StringCharacter = [^\r\n\"\\]
@@ -175,9 +174,9 @@ Constant= constant{PositiveNumberLiteral}
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex b/libsrc/ffdec_lib/lexers/actionscript_script.flex
similarity index 97%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
rename to libsrc/ffdec_lib/lexers/actionscript_script.flex
index f5d3402bb..f89066e14 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
+++ b/libsrc/ffdec_lib/lexers/actionscript_script.flex
@@ -386,7 +386,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\u00A7" { string.append('\u00A7'); }
"\\r" { string.append('\r'); }
"\\\\" { string.append('\\'); }
- \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val); }
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -412,8 +414,10 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\r" { string.append('\r'); }
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
- "\\\\" { string.append('\\'); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ "\\\\" { string.append('\\'); }
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val); }
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -441,7 +445,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
- \\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
+ \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val); }
+ \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex b/libsrc/ffdec_lib/lexers/tag_conditions.flex
similarity index 100%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex
rename to libsrc/ffdec_lib/lexers/tag_conditions.flex
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex b/libsrc/ffdec_lib/lexers/text.flex
similarity index 100%
rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex
rename to libsrc/ffdec_lib/lexers/text.flex
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java
index 40d08ad58..5f1c4d215 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java
@@ -23,2751 +23,2583 @@ import com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException;
import java.util.Stack;
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex
*/
public final class Flasm3Lexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int STRING = 2;
- public static final int PARAMETERS = 4;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int STRING = 2;
+ public static final int PARAMETERS = 4;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1, 2, 2
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\11\12\1\4\1\2\1\113\1\114\1\1\16\12\4\0\1\55\1\0"
- + "\1\76\1\0\1\11\2\0\1\111\1\101\1\102\1\0\1\24\1\107"
- + "\1\20\1\21\1\0\1\17\3\112\4\27\1\110\1\7\1\16\1\3"
- + "\1\103\1\0\1\104\2\0\1\51\1\25\1\33\1\56\1\22\1\64"
- + "\1\60\1\74\1\41\1\11\1\72\1\66\1\5\1\45\1\43\1\35"
- + "\1\77\1\53\1\47\1\37\1\70\1\105\1\11\1\31\1\62\1\11"
- + "\1\6\1\30\1\10\1\0\1\15\1\0\1\52\1\26\1\34\1\57"
- + "\1\23\1\65\1\61\1\75\1\42\1\14\1\73\1\67\1\13\1\46"
- + "\1\44\1\36\1\100\1\54\1\50\1\40\1\71\1\106\1\14\1\32"
- + "\1\63\1\14\4\0\6\12\1\115\32\12\2\0\4\11\4\0\1\11"
- + "\2\0\1\12\7\0\1\11\4\0\1\11\5\0\27\11\1\0\37\11"
- + "\1\0\70\11\2\41\115\11\1\47\u0142\11\4\0\14\11\16\0\5\11"
- + "\7\0\1\11\1\0\1\11\21\0\160\12\5\11\1\0\2\11\2\0"
- + "\4\11\10\0\1\11\1\0\3\11\1\0\1\11\1\0\24\11\1\0"
- + "\123\11\1\0\213\11\1\0\5\12\2\0\236\11\11\0\46\11\2\0"
- + "\1\11\7\0\47\11\7\0\1\11\1\0\55\12\1\0\1\12\1\0"
- + "\2\12\1\0\2\12\1\0\1\12\10\0\33\11\5\0\3\11\15\0"
- + "\5\12\6\0\1\11\4\0\13\12\5\0\53\11\37\12\4\0\2\11"
- + "\1\12\143\11\1\0\1\11\10\12\1\0\6\12\2\11\2\12\1\0"
- + "\4\12\2\11\12\12\3\11\2\0\1\11\17\0\1\12\1\11\1\12"
- + "\36\11\33\12\2\0\131\11\13\12\1\11\16\0\12\12\41\11\11\12"
- + "\2\11\4\0\1\11\5\0\26\11\4\12\1\11\11\12\1\11\3\12"
- + "\1\11\5\12\22\0\31\11\3\12\104\0\1\11\1\0\13\11\67\0"
- + "\33\12\1\0\4\12\66\11\3\12\1\11\22\12\1\11\7\12\12\11"
- + "\2\12\2\0\12\12\1\0\7\11\1\0\7\11\1\0\3\12\1\0"
- + "\10\11\2\0\2\11\2\0\26\11\1\0\7\11\1\0\1\11\3\0"
- + "\4\11\2\0\1\12\1\11\7\12\2\0\2\12\2\0\3\12\1\11"
- + "\10\0\1\12\4\0\2\11\1\0\3\11\2\12\2\0\12\12\4\11"
- + "\7\0\1\11\5\0\3\12\1\0\6\11\4\0\2\11\2\0\26\11"
- + "\1\0\7\11\1\0\2\11\1\0\2\11\1\0\2\11\2\0\1\12"
- + "\1\0\5\12\4\0\2\12\2\0\3\12\3\0\1\12\7\0\4\11"
- + "\1\0\1\11\7\0\14\12\3\11\1\12\13\0\3\12\1\0\11\11"
- + "\1\0\3\11\1\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11"
- + "\2\0\1\12\1\11\10\12\1\0\3\12\1\0\3\12\2\0\1\11"
- + "\17\0\2\11\2\12\2\0\12\12\1\0\1\11\17\0\3\12\1\0"
- + "\10\11\2\0\2\11\2\0\26\11\1\0\7\11\1\0\2\11\1\0"
- + "\5\11\2\0\1\12\1\11\7\12\2\0\2\12\2\0\3\12\10\0"
- + "\2\12\4\0\2\11\1\0\3\11\2\12\2\0\12\12\1\0\1\11"
- + "\20\0\1\12\1\11\1\0\6\11\3\0\3\11\1\0\4\11\3\0"
- + "\2\11\1\0\1\11\1\0\2\11\3\0\2\11\3\0\3\11\3\0"
- + "\14\11\4\0\5\12\3\0\3\12\1\0\4\12\2\0\1\11\6\0"
- + "\1\12\16\0\12\12\11\0\1\11\7\0\3\12\1\0\10\11\1\0"
- + "\3\11\1\0\27\11\1\0\12\11\1\0\5\11\3\0\1\11\7\12"
- + "\1\0\3\12\1\0\4\12\7\0\2\12\1\0\2\11\6\0\2\11"
- + "\2\12\2\0\12\12\22\0\2\12\1\0\10\11\1\0\3\11\1\0"
- + "\27\11\1\0\12\11\1\0\5\11\2\0\1\12\1\11\7\12\1\0"
- + "\3\12\1\0\4\12\7\0\2\12\7\0\1\11\1\0\2\11\2\12"
- + "\2\0\12\12\1\0\2\11\17\0\2\12\1\0\10\11\1\0\3\11"
- + "\1\0\51\11\2\0\1\11\7\12\1\0\3\12\1\0\4\12\1\11"
- + "\10\0\1\12\10\0\2\11\2\12\2\0\12\12\12\0\6\11\2\0"
- + "\2\12\1\0\22\11\3\0\30\11\1\0\11\11\1\0\1\11\2\0"
- + "\7\11\3\0\1\12\4\0\6\12\1\0\1\12\1\0\10\12\22\0"
- + "\2\12\15\0\60\11\1\12\2\11\7\12\4\0\10\11\10\12\1\0"
- + "\12\12\47\0\2\11\1\0\1\11\2\0\2\11\1\0\1\11\2\0"
- + "\1\11\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0"
- + "\1\11\2\0\2\11\1\0\4\11\1\12\2\11\6\12\1\0\2\12"
- + "\1\11\2\0\5\11\1\0\1\11\1\0\6\12\2\0\12\12\2\0"
- + "\4\11\40\0\1\11\27\0\2\12\6\0\12\12\13\0\1\12\1\0"
- + "\1\12\1\0\1\12\4\0\2\12\10\11\1\0\44\11\4\0\24\12"
- + "\1\0\2\12\5\11\13\12\1\0\44\12\11\0\1\12\71\0\53\11"
- + "\24\12\1\11\12\12\6\0\6\11\4\12\4\11\3\12\1\11\3\12"
- + "\2\11\7\12\3\11\4\12\15\11\14\12\1\11\17\12\2\0\46\11"
- + "\1\0\1\11\5\0\1\11\2\0\53\11\1\0\u014d\11\1\0\4\11"
- + "\2\0\7\11\1\0\1\11\1\0\4\11\2\0\51\11\1\0\4\11"
- + "\2\0\41\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11"
- + "\2\0\17\11\1\0\71\11\1\0\4\11\2\0\103\11\2\0\3\12"
- + "\40\0\20\11\20\0\125\11\14\0\u026c\11\2\0\21\11\1\0\32\11"
- + "\5\0\113\11\3\0\3\11\17\0\15\11\1\0\4\11\3\12\13\0"
- + "\22\11\3\12\13\0\22\11\2\12\14\0\15\11\1\0\3\11\1\0"
- + "\2\12\14\0\64\11\40\12\3\0\1\11\3\0\2\11\1\12\2\0"
- + "\12\12\41\0\3\12\2\0\12\12\6\0\130\11\10\0\51\11\1\12"
- + "\1\11\5\0\106\11\12\0\35\11\3\0\14\12\4\0\14\12\12\0"
- + "\12\12\36\11\2\0\5\11\13\0\54\11\4\0\21\12\7\11\2\12"
- + "\6\0\12\12\46\0\27\11\5\12\4\0\65\11\12\12\1\0\35\12"
- + "\2\0\13\12\6\0\12\12\15\0\1\11\130\0\5\12\57\11\21\12"
- + "\7\11\4\0\12\12\21\0\11\12\14\0\3\12\36\11\15\12\2\11"
- + "\12\12\54\11\16\12\14\0\44\11\24\12\10\0\12\12\3\0\3\11"
- + "\12\12\44\11\122\0\3\12\1\0\25\12\4\11\1\12\4\11\3\12"
- + "\2\11\11\0\300\11\47\12\25\0\4\12\u0116\11\2\0\6\11\2\0"
- + "\46\11\2\0\6\11\2\0\10\11\1\0\1\11\1\0\1\11\1\0"
- + "\1\11\1\0\37\11\2\0\65\11\1\0\7\11\1\0\1\11\3\0"
- + "\3\11\1\0\7\11\3\0\4\11\2\0\6\11\4\0\15\11\5\0"
- + "\3\11\1\0\7\11\16\0\5\12\30\0\1\113\1\113\5\12\20\0"
- + "\2\11\23\0\1\11\13\0\5\12\5\0\6\12\1\0\1\11\15\0"
- + "\1\11\20\0\15\11\3\0\33\11\25\0\15\12\4\0\1\12\3\0"
- + "\14\12\21\0\1\11\4\0\1\11\2\0\12\11\1\0\1\11\3\0"
- + "\5\11\6\0\1\11\1\0\1\11\1\0\1\11\1\0\1\72\3\11"
- + "\1\0\13\11\2\0\4\11\5\0\5\11\4\0\1\11\21\0\51\11"
- + "\u0a77\0\57\11\1\0\57\11\1\0\205\11\6\0\4\11\3\12\2\11"
- + "\14\0\46\11\1\0\1\11\5\0\1\11\2\0\70\11\7\0\1\11"
- + "\17\0\1\12\27\11\11\0\7\11\1\0\7\11\1\0\7\11\1\0"
- + "\7\11\1\0\7\11\1\0\7\11\1\0\7\11\1\0\7\11\1\0"
- + "\40\12\57\0\1\11\u01d5\0\3\11\31\0\11\11\6\12\1\0\5\11"
- + "\2\0\5\11\4\0\126\11\2\0\2\12\2\0\3\11\1\0\132\11"
- + "\1\0\4\11\5\0\51\11\3\0\136\11\21\0\33\11\65\0\20\11"
- + "\u0200\0\u19b6\11\112\0\u51cd\11\63\0\u048d\11\103\0\56\11\2\0\u010d\11"
- + "\3\0\20\11\12\12\2\11\24\0\57\11\1\12\4\0\12\12\1\0"
- + "\31\11\7\0\1\12\120\11\2\12\45\0\11\11\2\0\147\11\2\0"
- + "\4\11\1\0\4\11\14\0\13\11\115\0\12\11\1\12\3\11\1\12"
- + "\4\11\1\12\27\11\5\12\20\0\1\11\7\0\64\11\14\0\2\12"
- + "\62\11\21\12\13\0\12\12\6\0\22\12\6\11\3\0\1\11\4\0"
- + "\12\12\34\11\10\12\2\0\27\11\15\12\14\0\35\11\3\0\4\12"
- + "\57\11\16\12\16\0\1\11\12\12\46\0\51\11\16\12\11\0\3\11"
- + "\1\12\10\11\2\12\2\0\12\12\6\0\27\11\3\0\1\11\1\12"
- + "\4\0\60\11\1\12\1\11\3\12\2\11\2\12\5\11\2\12\1\11"
- + "\1\12\1\11\30\0\3\11\2\0\13\11\5\12\2\0\3\11\2\12"
- + "\12\0\6\11\2\0\6\11\2\0\6\11\11\0\7\11\1\0\7\11"
- + "\221\0\43\11\10\12\1\0\2\12\2\0\12\12\6\0\u2ba4\11\14\0"
- + "\27\11\4\0\61\11\u2104\0\u016e\11\2\0\152\11\46\0\7\11\14\0"
- + "\5\11\5\0\1\11\1\12\12\11\1\0\15\11\1\0\5\11\1\0"
- + "\1\11\1\0\2\11\1\0\2\11\1\0\154\11\41\0\u016b\11\22\0"
- + "\100\11\2\0\66\11\50\0\15\11\3\0\20\12\20\0\7\12\14\0"
- + "\2\11\30\0\3\11\31\0\1\11\6\0\5\11\1\0\207\11\2\0"
- + "\1\12\4\0\1\11\13\0\12\12\7\0\32\11\4\0\1\11\1\0"
- + "\32\11\13\0\131\11\3\0\6\11\2\0\6\11\2\0\6\11\2\0"
- + "\3\11\3\0\2\11\3\0\2\11\22\0\3\12\4\0\14\11\1\0"
- + "\32\11\1\0\23\11\1\0\2\11\1\0\17\11\2\0\16\11\42\0"
- + "\173\11\105\0\65\11\210\0\1\12\202\0\35\11\3\0\61\11\57\0"
- + "\37\11\21\0\33\11\65\0\36\11\2\0\44\11\4\0\10\11\1\0"
- + "\5\11\52\0\236\11\2\0\12\12\u0356\0\6\11\2\0\1\11\1\0"
- + "\54\11\1\0\2\11\3\0\1\11\2\0\27\11\252\0\26\11\12\0"
- + "\32\11\106\0\70\11\6\0\2\11\100\0\1\11\3\12\1\0\2\12"
- + "\5\0\4\12\4\11\1\0\3\11\1\0\33\11\4\0\3\12\4\0"
- + "\1\12\40\0\35\11\203\0\66\11\12\0\26\11\12\0\23\11\215\0"
- + "\111\11\u03b7\0\3\12\65\11\17\12\37\0\12\12\20\0\3\12\55\11"
- + "\13\12\2\0\1\12\22\0\31\11\7\0\12\12\6\0\3\12\44\11"
- + "\16\12\1\0\12\12\100\0\3\12\60\11\16\12\4\11\13\0\12\12"
- + "\u04a6\0\53\11\15\12\10\0\12\12\u0936\0\u036f\11\221\0\143\11\u0b9d\0"
- + "\u042f\11\u33d1\0\u0239\11\u04c7\0\105\11\13\0\1\11\56\12\20\0\4\12"
- + "\15\11\u4060\0\2\11\u2163\0\5\12\3\0\26\12\2\0\7\12\36\0"
- + "\4\12\224\0\3\12\u01bb\0\125\11\1\0\107\11\1\0\2\11\2\0"
- + "\1\11\2\0\2\11\2\0\4\11\1\0\14\11\1\0\1\11\1\0"
- + "\7\11\1\0\101\11\1\0\4\11\2\0\10\11\1\0\7\11\1\0"
- + "\34\11\1\0\4\11\1\0\5\11\1\0\1\11\3\0\7\11\1\0"
- + "\u0154\11\2\0\31\11\1\0\31\11\1\0\37\11\1\0\31\11\1\0"
- + "\37\11\1\0\31\11\1\0\37\11\1\0\31\11\1\0\37\11\1\0"
- + "\31\11\1\0\10\11\2\0\62\12\u1600\0\4\11\1\0\33\11\1\0"
- + "\2\11\1\0\1\11\2\0\1\11\1\0\12\11\1\0\4\11\1\0"
- + "\1\11\1\0\1\11\6\0\1\11\4\0\1\11\1\0\1\11\1\0"
- + "\1\11\1\0\3\11\1\0\2\11\1\0\1\11\2\0\1\11\1\0"
- + "\1\11\1\0\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1\0"
- + "\1\11\2\0\4\11\1\0\7\11\1\0\4\11\1\0\4\11\1\0"
- + "\1\11\1\0\12\11\1\0\21\11\5\0\3\11\1\0\5\11\1\0"
- + "\21\11\u1144\0\ua6d7\11\51\0\u1035\11\13\0\336\11\u3fe2\0\u021e\11\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"
- + "\1\12\36\0\140\12\200\0\360\12\uffff\0\uffff\0\ufe12\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\12\1\4\1\2\1\111\1\112\1\1\16\12\4\0\1\54\1\0"+
+ "\1\75\1\0\1\11\2\0\1\110\1\100\1\101\1\0\1\24\1\106"+
+ "\1\20\1\21\1\0\1\17\7\7\1\107\1\7\1\16\1\3\1\102"+
+ "\1\0\1\103\2\0\1\50\1\25\1\32\1\55\1\22\1\63\1\57"+
+ "\1\73\1\40\1\11\1\71\1\65\1\5\1\44\1\42\1\34\1\76"+
+ "\1\52\1\46\1\36\1\67\1\104\1\11\1\30\1\61\1\11\1\6"+
+ "\1\27\1\10\1\0\1\15\1\0\1\51\1\26\1\33\1\56\1\23"+
+ "\1\64\1\60\1\74\1\41\1\14\1\72\1\66\1\13\1\45\1\43"+
+ "\1\35\1\77\1\53\1\47\1\37\1\70\1\105\1\14\1\31\1\62"+
+ "\1\14\4\0\6\12\1\113\32\12\2\0\4\11\4\0\1\11\2\0"+
+ "\1\12\7\0\1\11\4\0\1\11\5\0\27\11\1\0\37\11\1\0"+
+ "\70\11\2\40\115\11\1\46\u0142\11\4\0\14\11\16\0\5\11\7\0"+
+ "\1\11\1\0\1\11\21\0\160\12\5\11\1\0\2\11\2\0\4\11"+
+ "\10\0\1\11\1\0\3\11\1\0\1\11\1\0\24\11\1\0\123\11"+
+ "\1\0\213\11\1\0\5\12\2\0\236\11\11\0\46\11\2\0\1\11"+
+ "\7\0\47\11\7\0\1\11\1\0\55\12\1\0\1\12\1\0\2\12"+
+ "\1\0\2\12\1\0\1\12\10\0\33\11\5\0\3\11\15\0\5\12"+
+ "\6\0\1\11\4\0\13\12\5\0\53\11\37\12\4\0\2\11\1\12"+
+ "\143\11\1\0\1\11\10\12\1\0\6\12\2\11\2\12\1\0\4\12"+
+ "\2\11\12\12\3\11\2\0\1\11\17\0\1\12\1\11\1\12\36\11"+
+ "\33\12\2\0\131\11\13\12\1\11\16\0\12\12\41\11\11\12\2\11"+
+ "\4\0\1\11\5\0\26\11\4\12\1\11\11\12\1\11\3\12\1\11"+
+ "\5\12\22\0\31\11\3\12\104\0\1\11\1\0\13\11\67\0\33\12"+
+ "\1\0\4\12\66\11\3\12\1\11\22\12\1\11\7\12\12\11\2\12"+
+ "\2\0\12\12\1\0\7\11\1\0\7\11\1\0\3\12\1\0\10\11"+
+ "\2\0\2\11\2\0\26\11\1\0\7\11\1\0\1\11\3\0\4\11"+
+ "\2\0\1\12\1\11\7\12\2\0\2\12\2\0\3\12\1\11\10\0"+
+ "\1\12\4\0\2\11\1\0\3\11\2\12\2\0\12\12\4\11\7\0"+
+ "\1\11\5\0\3\12\1\0\6\11\4\0\2\11\2\0\26\11\1\0"+
+ "\7\11\1\0\2\11\1\0\2\11\1\0\2\11\2\0\1\12\1\0"+
+ "\5\12\4\0\2\12\2\0\3\12\3\0\1\12\7\0\4\11\1\0"+
+ "\1\11\7\0\14\12\3\11\1\12\13\0\3\12\1\0\11\11\1\0"+
+ "\3\11\1\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11\2\0"+
+ "\1\12\1\11\10\12\1\0\3\12\1\0\3\12\2\0\1\11\17\0"+
+ "\2\11\2\12\2\0\12\12\1\0\1\11\17\0\3\12\1\0\10\11"+
+ "\2\0\2\11\2\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11"+
+ "\2\0\1\12\1\11\7\12\2\0\2\12\2\0\3\12\10\0\2\12"+
+ "\4\0\2\11\1\0\3\11\2\12\2\0\12\12\1\0\1\11\20\0"+
+ "\1\12\1\11\1\0\6\11\3\0\3\11\1\0\4\11\3\0\2\11"+
+ "\1\0\1\11\1\0\2\11\3\0\2\11\3\0\3\11\3\0\14\11"+
+ "\4\0\5\12\3\0\3\12\1\0\4\12\2\0\1\11\6\0\1\12"+
+ "\16\0\12\12\11\0\1\11\7\0\3\12\1\0\10\11\1\0\3\11"+
+ "\1\0\27\11\1\0\12\11\1\0\5\11\3\0\1\11\7\12\1\0"+
+ "\3\12\1\0\4\12\7\0\2\12\1\0\2\11\6\0\2\11\2\12"+
+ "\2\0\12\12\22\0\2\12\1\0\10\11\1\0\3\11\1\0\27\11"+
+ "\1\0\12\11\1\0\5\11\2\0\1\12\1\11\7\12\1\0\3\12"+
+ "\1\0\4\12\7\0\2\12\7\0\1\11\1\0\2\11\2\12\2\0"+
+ "\12\12\1\0\2\11\17\0\2\12\1\0\10\11\1\0\3\11\1\0"+
+ "\51\11\2\0\1\11\7\12\1\0\3\12\1\0\4\12\1\11\10\0"+
+ "\1\12\10\0\2\11\2\12\2\0\12\12\12\0\6\11\2\0\2\12"+
+ "\1\0\22\11\3\0\30\11\1\0\11\11\1\0\1\11\2\0\7\11"+
+ "\3\0\1\12\4\0\6\12\1\0\1\12\1\0\10\12\22\0\2\12"+
+ "\15\0\60\11\1\12\2\11\7\12\4\0\10\11\10\12\1\0\12\12"+
+ "\47\0\2\11\1\0\1\11\2\0\2\11\1\0\1\11\2\0\1\11"+
+ "\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0\1\11"+
+ "\2\0\2\11\1\0\4\11\1\12\2\11\6\12\1\0\2\12\1\11"+
+ "\2\0\5\11\1\0\1\11\1\0\6\12\2\0\12\12\2\0\4\11"+
+ "\40\0\1\11\27\0\2\12\6\0\12\12\13\0\1\12\1\0\1\12"+
+ "\1\0\1\12\4\0\2\12\10\11\1\0\44\11\4\0\24\12\1\0"+
+ "\2\12\5\11\13\12\1\0\44\12\11\0\1\12\71\0\53\11\24\12"+
+ "\1\11\12\12\6\0\6\11\4\12\4\11\3\12\1\11\3\12\2\11"+
+ "\7\12\3\11\4\12\15\11\14\12\1\11\17\12\2\0\46\11\1\0"+
+ "\1\11\5\0\1\11\2\0\53\11\1\0\u014d\11\1\0\4\11\2\0"+
+ "\7\11\1\0\1\11\1\0\4\11\2\0\51\11\1\0\4\11\2\0"+
+ "\41\11\1\0\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0"+
+ "\17\11\1\0\71\11\1\0\4\11\2\0\103\11\2\0\3\12\40\0"+
+ "\20\11\20\0\125\11\14\0\u026c\11\2\0\21\11\1\0\32\11\5\0"+
+ "\113\11\3\0\3\11\17\0\15\11\1\0\4\11\3\12\13\0\22\11"+
+ "\3\12\13\0\22\11\2\12\14\0\15\11\1\0\3\11\1\0\2\12"+
+ "\14\0\64\11\40\12\3\0\1\11\3\0\2\11\1\12\2\0\12\12"+
+ "\41\0\3\12\2\0\12\12\6\0\130\11\10\0\51\11\1\12\1\11"+
+ "\5\0\106\11\12\0\35\11\3\0\14\12\4\0\14\12\12\0\12\12"+
+ "\36\11\2\0\5\11\13\0\54\11\4\0\21\12\7\11\2\12\6\0"+
+ "\12\12\46\0\27\11\5\12\4\0\65\11\12\12\1\0\35\12\2\0"+
+ "\13\12\6\0\12\12\15\0\1\11\130\0\5\12\57\11\21\12\7\11"+
+ "\4\0\12\12\21\0\11\12\14\0\3\12\36\11\15\12\2\11\12\12"+
+ "\54\11\16\12\14\0\44\11\24\12\10\0\12\12\3\0\3\11\12\12"+
+ "\44\11\122\0\3\12\1\0\25\12\4\11\1\12\4\11\3\12\2\11"+
+ "\11\0\300\11\47\12\25\0\4\12\u0116\11\2\0\6\11\2\0\46\11"+
+ "\2\0\6\11\2\0\10\11\1\0\1\11\1\0\1\11\1\0\1\11"+
+ "\1\0\37\11\2\0\65\11\1\0\7\11\1\0\1\11\3\0\3\11"+
+ "\1\0\7\11\3\0\4\11\2\0\6\11\4\0\15\11\5\0\3\11"+
+ "\1\0\7\11\16\0\5\12\30\0\1\111\1\111\5\12\20\0\2\11"+
+ "\23\0\1\11\13\0\5\12\5\0\6\12\1\0\1\11\15\0\1\11"+
+ "\20\0\15\11\3\0\33\11\25\0\15\12\4\0\1\12\3\0\14\12"+
+ "\21\0\1\11\4\0\1\11\2\0\12\11\1\0\1\11\3\0\5\11"+
+ "\6\0\1\11\1\0\1\11\1\0\1\11\1\0\1\71\3\11\1\0"+
+ "\13\11\2\0\4\11\5\0\5\11\4\0\1\11\21\0\51\11\u0a77\0"+
+ "\57\11\1\0\57\11\1\0\205\11\6\0\4\11\3\12\2\11\14\0"+
+ "\46\11\1\0\1\11\5\0\1\11\2\0\70\11\7\0\1\11\17\0"+
+ "\1\12\27\11\11\0\7\11\1\0\7\11\1\0\7\11\1\0\7\11"+
+ "\1\0\7\11\1\0\7\11\1\0\7\11\1\0\7\11\1\0\40\12"+
+ "\57\0\1\11\u01d5\0\3\11\31\0\11\11\6\12\1\0\5\11\2\0"+
+ "\5\11\4\0\126\11\2\0\2\12\2\0\3\11\1\0\132\11\1\0"+
+ "\4\11\5\0\51\11\3\0\136\11\21\0\33\11\65\0\20\11\u0200\0"+
+ "\u19b6\11\112\0\u51cd\11\63\0\u048d\11\103\0\56\11\2\0\u010d\11\3\0"+
+ "\20\11\12\12\2\11\24\0\57\11\1\12\4\0\12\12\1\0\31\11"+
+ "\7\0\1\12\120\11\2\12\45\0\11\11\2\0\147\11\2\0\4\11"+
+ "\1\0\4\11\14\0\13\11\115\0\12\11\1\12\3\11\1\12\4\11"+
+ "\1\12\27\11\5\12\20\0\1\11\7\0\64\11\14\0\2\12\62\11"+
+ "\21\12\13\0\12\12\6\0\22\12\6\11\3\0\1\11\4\0\12\12"+
+ "\34\11\10\12\2\0\27\11\15\12\14\0\35\11\3\0\4\12\57\11"+
+ "\16\12\16\0\1\11\12\12\46\0\51\11\16\12\11\0\3\11\1\12"+
+ "\10\11\2\12\2\0\12\12\6\0\27\11\3\0\1\11\1\12\4\0"+
+ "\60\11\1\12\1\11\3\12\2\11\2\12\5\11\2\12\1\11\1\12"+
+ "\1\11\30\0\3\11\2\0\13\11\5\12\2\0\3\11\2\12\12\0"+
+ "\6\11\2\0\6\11\2\0\6\11\11\0\7\11\1\0\7\11\221\0"+
+ "\43\11\10\12\1\0\2\12\2\0\12\12\6\0\u2ba4\11\14\0\27\11"+
+ "\4\0\61\11\u2104\0\u016e\11\2\0\152\11\46\0\7\11\14\0\5\11"+
+ "\5\0\1\11\1\12\12\11\1\0\15\11\1\0\5\11\1\0\1\11"+
+ "\1\0\2\11\1\0\2\11\1\0\154\11\41\0\u016b\11\22\0\100\11"+
+ "\2\0\66\11\50\0\15\11\3\0\20\12\20\0\7\12\14\0\2\11"+
+ "\30\0\3\11\31\0\1\11\6\0\5\11\1\0\207\11\2\0\1\12"+
+ "\4\0\1\11\13\0\12\12\7\0\32\11\4\0\1\11\1\0\32\11"+
+ "\13\0\131\11\3\0\6\11\2\0\6\11\2\0\6\11\2\0\3\11"+
+ "\3\0\2\11\3\0\2\11\22\0\3\12\4\0\14\11\1\0\32\11"+
+ "\1\0\23\11\1\0\2\11\1\0\17\11\2\0\16\11\42\0\173\11"+
+ "\105\0\65\11\210\0\1\12\202\0\35\11\3\0\61\11\57\0\37\11"+
+ "\21\0\33\11\65\0\36\11\2\0\44\11\4\0\10\11\1\0\5\11"+
+ "\52\0\236\11\2\0\12\12\u0356\0\6\11\2\0\1\11\1\0\54\11"+
+ "\1\0\2\11\3\0\1\11\2\0\27\11\252\0\26\11\12\0\32\11"+
+ "\106\0\70\11\6\0\2\11\100\0\1\11\3\12\1\0\2\12\5\0"+
+ "\4\12\4\11\1\0\3\11\1\0\33\11\4\0\3\12\4\0\1\12"+
+ "\40\0\35\11\203\0\66\11\12\0\26\11\12\0\23\11\215\0\111\11"+
+ "\u03b7\0\3\12\65\11\17\12\37\0\12\12\20\0\3\12\55\11\13\12"+
+ "\2\0\1\12\22\0\31\11\7\0\12\12\6\0\3\12\44\11\16\12"+
+ "\1\0\12\12\100\0\3\12\60\11\16\12\4\11\13\0\12\12\u04a6\0"+
+ "\53\11\15\12\10\0\12\12\u0936\0\u036f\11\221\0\143\11\u0b9d\0\u042f\11"+
+ "\u33d1\0\u0239\11\u04c7\0\105\11\13\0\1\11\56\12\20\0\4\12\15\11"+
+ "\u4060\0\2\11\u2163\0\5\12\3\0\26\12\2\0\7\12\36\0\4\12"+
+ "\224\0\3\12\u01bb\0\125\11\1\0\107\11\1\0\2\11\2\0\1\11"+
+ "\2\0\2\11\2\0\4\11\1\0\14\11\1\0\1\11\1\0\7\11"+
+ "\1\0\101\11\1\0\4\11\2\0\10\11\1\0\7\11\1\0\34\11"+
+ "\1\0\4\11\1\0\5\11\1\0\1\11\3\0\7\11\1\0\u0154\11"+
+ "\2\0\31\11\1\0\31\11\1\0\37\11\1\0\31\11\1\0\37\11"+
+ "\1\0\31\11\1\0\37\11\1\0\31\11\1\0\37\11\1\0\31\11"+
+ "\1\0\10\11\2\0\62\12\u1600\0\4\11\1\0\33\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\1\0\12\11\1\0\4\11\1\0\1\11"+
+ "\1\0\1\11\6\0\1\11\4\0\1\11\1\0\1\11\1\0\1\11"+
+ "\1\0\3\11\1\0\2\11\1\0\1\11\2\0\1\11\1\0\1\11"+
+ "\1\0\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1\0\1\11"+
+ "\2\0\4\11\1\0\7\11\1\0\4\11\1\0\4\11\1\0\1\11"+
+ "\1\0\12\11\1\0\21\11\5\0\3\11\1\0\5\11\1\0\21\11"+
+ "\u1144\0\ua6d7\11\51\0\u1035\11\13\0\336\11\u3fe2\0\u021e\11\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+
+ "\1\12\36\0\140\12\200\0\360\12\uffff\0\uffff\0\ufe12\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\3\0\4\1\2\2\1\1\1\2\1\1\1\2\1\1"
- + "\1\2\1\1\1\2\1\1\1\2\1\1\1\2\1\1"
- + "\1\2\1\1\1\2\1\1\1\2\1\1\1\2\1\1"
- + "\1\2\1\3\2\4\1\1\1\5\2\6\1\7\1\10"
- + "\1\11\1\12\1\13\2\10\1\12\2\1\16\10\1\14"
- + "\1\10\1\15\1\16\1\17\1\20\1\10\1\21\1\0"
- + "\1\22\2\0\2\2\1\0\1\2\1\0\1\2\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0"
- + "\1\2\1\23\1\24\1\25\1\24\1\26\1\23\1\27"
- + "\1\30\1\31\1\32\1\33\1\34\2\10\1\35\2\0"
- + "\1\35\1\0\5\10\1\36\33\10\2\0\2\2\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\0"
- + "\1\37\1\2\1\37\1\0\1\2\1\0\1\2\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\1\0\1\2\1\24"
- + "\1\0\2\10\1\35\2\0\41\10\2\0\2\2\1\0"
- + "\1\2\2\40\2\41\1\0\1\2\1\0\1\2\1\0"
- + "\1\2\1\0\1\2\2\42\1\0\1\2\2\43\1\0"
- + "\1\2\1\44\3\10\1\0\7\10\1\45\1\46\4\10"
- + "\1\47\1\50\3\10\1\51\7\10\1\52\1\10\1\53"
- + "\5\10\3\0\3\2\1\0\1\2\2\54\2\55\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\1\0\1\2\3\10"
- + "\1\56\1\10\1\57\1\60\23\10\1\61\1\62\5\10"
- + "\1\63\1\64\1\65\2\0\1\65\2\2\1\0\1\2"
- + "\1\0\1\2\1\0\1\2\1\0\1\2\1\0\1\2"
- + "\1\0\1\2\1\10\1\65\5\10\1\66\10\10\1\67"
- + "\1\10\1\70\2\10\1\71\1\72\1\73\5\10\1\74"
- + "\2\0\2\2\1\0\1\2\1\0\1\2\1\0\1\2"
- + "\1\0\1\2\2\75\1\0\1\2\7\10\1\76\10\10"
- + "\1\77\1\100\5\10\1\0\1\101\1\2\1\101\1\0"
- + "\1\2\1\0\1\2\1\0\1\2\2\102\1\0\1\2"
- + "\1\103\1\10\1\104\4\10\1\105\1\10\1\106\4\10"
- + "\1\107\1\10\1\110\1\111\1\112\1\113\3\10\1\0"
- + "\1\2\1\0\1\2\2\114\1\0\1\2\1\0\1\2"
- + "\1\115\10\10\1\116\1\117\1\10\1\120\1\121\2\10"
- + "\1\0\1\2\3\0\3\2\1\0\1\2\2\122\1\123"
- + "\1\124\13\10\1\0\1\2\3\0\3\2\1\0\1\2"
- + "\1\125\5\10\1\126\5\10\1\0\1\2\3\0\3\2"
- + "\1\0\1\2\11\10\1\127\2\130\3\0\2\2\1\0"
- + "\1\2\11\10\4\0\2\2\2\131\6\10\1\132\2\10"
- + "\1\133\2\0\1\2\5\10\1\134\1\10\1\135\3\0"
- + "\2\10\1\136\1\137\2\10\2\0\1\140\1\141\1\142"
- + "\1\10\1\143\1\144\1\145";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\3\0\1\1\1\2\3\1\2\3\1\1\1\3\1\1"+
+ "\1\3\1\1\1\3\1\1\1\3\1\1\1\3\1\1"+
+ "\1\3\1\1\1\3\1\1\1\3\1\1\1\3\1\1"+
+ "\1\3\1\1\1\3\1\4\2\5\1\1\1\6\2\7"+
+ "\1\10\1\11\1\12\1\13\2\10\1\12\2\1\16\10"+
+ "\1\14\1\10\1\15\1\16\1\17\1\20\1\10\1\21"+
+ "\1\0\1\22\2\0\2\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\1\23\1\24\1\25\1\23\1\26\1\27"+
+ "\1\30\1\31\1\23\1\32\1\33\2\10\1\34\2\0"+
+ "\1\34\1\0\5\10\1\35\33\10\2\0\2\3\1\0"+
+ "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0"+
+ "\1\36\1\3\1\36\1\0\1\3\1\0\1\3\1\0"+
+ "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\2\0"+
+ "\2\10\1\34\2\0\41\10\2\0\2\3\1\0\1\3"+
+ "\2\37\2\40\1\0\1\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\2\41\1\0\1\3\2\42\1\0\1\3"+
+ "\1\43\1\0\3\10\1\0\7\10\1\44\1\45\4\10"+
+ "\1\46\1\47\3\10\1\50\7\10\1\51\1\10\1\52"+
+ "\5\10\3\0\3\3\1\0\1\3\2\53\2\54\1\0"+
+ "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\10"+
+ "\1\55\1\10\1\56\1\57\23\10\1\60\1\61\5\10"+
+ "\1\62\1\63\1\64\2\0\1\64\2\3\1\0\1\3"+
+ "\1\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\1\10\1\64\5\10\1\65\10\10\1\66"+
+ "\1\10\1\67\2\10\1\70\1\71\1\72\5\10\1\73"+
+ "\2\0\2\3\1\0\1\3\1\0\1\3\1\0\1\3"+
+ "\1\0\1\3\2\74\1\0\1\3\7\10\1\75\10\10"+
+ "\1\76\1\77\5\10\1\0\1\100\1\3\1\100\1\0"+
+ "\1\3\1\0\1\3\1\0\1\3\2\101\1\0\1\3"+
+ "\1\102\1\10\1\103\4\10\1\104\1\10\1\105\4\10"+
+ "\1\106\1\10\1\107\1\110\1\111\1\112\3\10\1\0"+
+ "\1\3\1\0\1\3\2\113\1\0\1\3\1\0\1\3"+
+ "\1\114\10\10\1\115\1\116\1\10\1\117\1\120\2\10"+
+ "\1\0\1\3\3\0\3\3\1\0\1\3\2\121\1\122"+
+ "\1\123\13\10\1\0\1\3\3\0\3\3\1\0\1\3"+
+ "\1\124\5\10\1\125\5\10\1\0\1\3\3\0\3\3"+
+ "\1\0\1\3\11\10\1\126\2\127\3\0\2\3\1\0"+
+ "\1\3\11\10\4\0\2\3\2\130\6\10\1\131\2\10"+
+ "\1\132\2\0\1\3\5\10\1\133\1\10\1\134\3\0"+
+ "\2\10\1\135\1\136\2\10\2\0\1\137\1\140\1\141"+
+ "\1\10\1\142\1\143\1\144";
- private static int[] zzUnpackAction() {
- int[] result = new int[620];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[620];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"+
+ "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u03dc\0\u0428\0\u0474"+
+ "\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688\0\u06d4"+
+ "\0\u0720\0\u076c\0\u07b8\0\u0804\0\u0850\0\u089c\0\u08e8\0\u0934"+
+ "\0\u0980\0\u09cc\0\344\0\u0a18\0\344\0\u0a64\0\344\0\u0ab0"+
+ "\0\344\0\u0afc\0\344\0\u0b48\0\u0b94\0\u0be0\0\u0c2c\0\u0c78"+
+ "\0\u0cc4\0\u0d10\0\u0d5c\0\u0da8\0\u0df4\0\u0e40\0\u0e8c\0\u0ed8"+
+ "\0\u0f24\0\u0f70\0\u0fbc\0\u1008\0\u1054\0\u10a0\0\344\0\u10ec"+
+ "\0\344\0\344\0\344\0\344\0\u1138\0\344\0\u0214\0\344"+
+ "\0\u1184\0\u11d0\0\u121c\0\u1268\0\u12b4\0\u1300\0\u134c\0\u1398"+
+ "\0\u13e4\0\u1430\0\u147c\0\u14c8\0\u1514\0\u1560\0\u15ac\0\u15f8"+
+ "\0\u1644\0\u1690\0\u16dc\0\u1728\0\u1774\0\u17c0\0\u180c\0\u1858"+
+ "\0\u18a4\0\u18f0\0\344\0\344\0\344\0\u193c\0\344\0\344"+
+ "\0\344\0\344\0\u1988\0\344\0\344\0\u19d4\0\u1a20\0\u1a6c"+
+ "\0\u1ab8\0\u1b04\0\u0be0\0\u0c78\0\u1b50\0\u1b9c\0\u1be8\0\u1c34"+
+ "\0\u1c80\0\u0b48\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc\0\u1e48"+
+ "\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u1fc4\0\u2010\0\u205c\0\u20a8"+
+ "\0\u20f4\0\u2140\0\u218c\0\u21d8\0\u2224\0\u2270\0\u22bc\0\u2308"+
+ "\0\u2354\0\u23a0\0\u23ec\0\u2438\0\u2484\0\u24d0\0\u251c\0\u2568"+
+ "\0\u25b4\0\u2600\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8"+
+ "\0\u2814\0\u2860\0\u0214\0\u28ac\0\u02ac\0\u28f8\0\u2944\0\u2990"+
+ "\0\u29dc\0\u2a28\0\u2a74\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0"+
+ "\0\u2c3c\0\u2c88\0\u2cd4\0\u2d20\0\u2d6c\0\u2db8\0\u2db8\0\u2e04"+
+ "\0\u2e50\0\u2e9c\0\u2ee8\0\u2f34\0\u2f80\0\u2fcc\0\u3018\0\u3064"+
+ "\0\u30b0\0\u30fc\0\u3148\0\u3194\0\u31e0\0\u322c\0\u3278\0\u32c4"+
+ "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524"+
+ "\0\u3570\0\u35bc\0\u3608\0\u3654\0\u36a0\0\u36ec\0\u3738\0\u3784"+
+ "\0\u37d0\0\u381c\0\u3868\0\u38b4\0\u3900\0\u394c\0\u3998\0\u0214"+
+ "\0\u02ac\0\u0214\0\u02ac\0\u39e4\0\u3a30\0\u3a7c\0\u3ac8\0\u3b14"+
+ "\0\u3b60\0\u3bac\0\u3bf8\0\u0214\0\u02ac\0\u3c44\0\u3c90\0\u0214"+
+ "\0\u02ac\0\u3cdc\0\u3d28\0\344\0\u193c\0\u3d74\0\u3dc0\0\u3e0c"+
+ "\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c\0\u3f88\0\u3fd4\0\u4020\0\u406c"+
+ "\0\u0b48\0\u40b8\0\u4104\0\u4150\0\u419c\0\u41e8\0\u4234\0\u0b48"+
+ "\0\u4280\0\u42cc\0\u4318\0\u4364\0\u43b0\0\u43fc\0\u4448\0\u4494"+
+ "\0\u44e0\0\u452c\0\u4578\0\u0b48\0\u45c4\0\u0b48\0\u4610\0\u465c"+
+ "\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870\0\u48bc"+
+ "\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u0214\0\u02ac\0\u4a84"+
+ "\0\u4ad0\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u4c4c\0\u4c98\0\u4ce4"+
+ "\0\u4d30\0\u4d7c\0\344\0\u4dc8\0\u0b48\0\u0b48\0\u4e14\0\u4e60"+
+ "\0\u4eac\0\u4ef8\0\u4f44\0\u4f90\0\u4fdc\0\u5028\0\u5074\0\u50c0"+
+ "\0\u510c\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320"+
+ "\0\u536c\0\u0b48\0\u0b48\0\u53b8\0\u5404\0\u5450\0\u549c\0\u54e8"+
+ "\0\u5534\0\u0b48\0\u0214\0\u5580\0\u55cc\0\u02ac\0\u5618\0\u5664"+
+ "\0\u56b0\0\u56fc\0\u5748\0\u5794\0\u57e0\0\u582c\0\u5878\0\u58c4"+
+ "\0\u5910\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u0b48\0\u5a8c\0\u5ad8"+
+ "\0\u5b24\0\u5b70\0\u5bbc\0\u0b48\0\u5c08\0\u5c54\0\u5ca0\0\u5cec"+
+ "\0\u5d38\0\u5d84\0\u5dd0\0\u5e1c\0\u0b48\0\u5e68\0\u0b48\0\u5eb4"+
+ "\0\u5f00\0\u0b48\0\u0b48\0\u0b48\0\u5f4c\0\u5f98\0\u5fe4\0\u6030"+
+ "\0\u607c\0\u0b48\0\u60c8\0\u6114\0\u6160\0\u61ac\0\u61f8\0\u6244"+
+ "\0\u6290\0\u62dc\0\u6328\0\u6374\0\u63c0\0\u640c\0\u0214\0\u02ac"+
+ "\0\u6458\0\u64a4\0\u64f0\0\u653c\0\u6588\0\u65d4\0\u6620\0\u666c"+
+ "\0\u66b8\0\u0b48\0\u6704\0\u6750\0\u679c\0\u67e8\0\u6834\0\u6880"+
+ "\0\u68cc\0\u6918\0\u6964\0\u0b48\0\u69b0\0\u69fc\0\u6a48\0\u6a94"+
+ "\0\u6ae0\0\u6b2c\0\u0214\0\u6b78\0\u02ac\0\u6bc4\0\u6c10\0\u6c5c"+
+ "\0\u6ca8\0\u6cf4\0\u6d40\0\u0214\0\u02ac\0\u6d8c\0\u6dd8\0\u0b48"+
+ "\0\u6e24\0\u6e70\0\u6ebc\0\u6f08\0\u6f54\0\u6fa0\0\u0b48\0\u6fec"+
+ "\0\u0b48\0\u7038\0\u7084\0\u70d0\0\u711c\0\u0b48\0\u7168\0\u0b48"+
+ "\0\u71b4\0\u0b48\0\u0b48\0\u7200\0\u724c\0\u7298\0\u72e4\0\u7330"+
+ "\0\u737c\0\u73c8\0\u0214\0\u02ac\0\u7414\0\u7460\0\u74ac\0\u74f8"+
+ "\0\u7544\0\u7590\0\u75dc\0\u7628\0\u7674\0\u76c0\0\u770c\0\u7758"+
+ "\0\u77a4\0\u0b48\0\u0b48\0\u77f0\0\u0b48\0\u0b48\0\u783c\0\u7888"+
+ "\0\u78d4\0\u7920\0\u796c\0\u79b8\0\u7a04\0\u7a50\0\u7a9c\0\u7ae8"+
+ "\0\u7b34\0\u7b80\0\u0214\0\u02ac\0\u0b48\0\u7bcc\0\u7c18\0\u7c64"+
+ "\0\u7cb0\0\u7cfc\0\u7d48\0\u7d94\0\u7de0\0\u7e2c\0\u7e78\0\u7ec4"+
+ "\0\u7f10\0\u7f5c\0\u7fa8\0\u7ff4\0\u8040\0\u808c\0\u80d8\0\u8124"+
+ "\0\u8170\0\u81bc\0\u8208\0\u0b48\0\u8254\0\u82a0\0\u82ec\0\u8338"+
+ "\0\u8384\0\u0b48\0\u83d0\0\u841c\0\u8468\0\u84b4\0\u8500\0\u854c"+
+ "\0\u8598\0\u85e4\0\u8630\0\u867c\0\u86c8\0\u8714\0\u8760\0\u87ac"+
+ "\0\u87f8\0\u8844\0\u8890\0\u88dc\0\u8928\0\u8974\0\u89c0\0\u8a0c"+
+ "\0\u8a58\0\u8aa4\0\u0b48\0\u0214\0\u02ac\0\u8af0\0\u8b3c\0\u8b88"+
+ "\0\u8bd4\0\u8c20\0\u8c6c\0\u8cb8\0\u8d04\0\u8d50\0\u8d9c\0\u8de8"+
+ "\0\u8e34\0\u8e80\0\u8ecc\0\u8f18\0\u8f64\0\u8fb0\0\u8ffc\0\u9048"+
+ "\0\u9094\0\u90e0\0\u912c\0\u0214\0\u02ac\0\u9178\0\u91c4\0\u9210"+
+ "\0\u925c\0\u92a8\0\u92f4\0\u0b48\0\u9340\0\u938c\0\344\0\u93d8"+
+ "\0\u9424\0\u9470\0\u94bc\0\u9508\0\u9554\0\u95a0\0\u95ec\0\u0b48"+
+ "\0\u9638\0\u0b48\0\u9684\0\u96d0\0\u971c\0\u9768\0\u97b4\0\u0b48"+
+ "\0\u0b48\0\u9800\0\u984c\0\u9898\0\u98e4\0\344\0\u0b48\0\u0b48"+
+ "\0\u9930\0\u0b48\0\344\0\u0b48";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[620];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\116\0\234\0\352\0\u0138\0\u0186\0\u01d4\0\u0222"
- + "\0\u0270\0\u02be\0\u030c\0\u035a\0\u03a8\0\u03f6\0\u0444\0\u0492"
- + "\0\u04e0\0\u052e\0\u057c\0\u05ca\0\u0618\0\u0666\0\u06b4\0\u0702"
- + "\0\u0750\0\u079e\0\u07ec\0\u083a\0\u0888\0\u08d6\0\u0924\0\u0972"
- + "\0\u09c0\0\352\0\u0a0e\0\352\0\u0a5c\0\352\0\u0aaa\0\u0af8"
- + "\0\352\0\u0b46\0\352\0\u0b94\0\u0be2\0\u0c30\0\u0c7e\0\u0ccc"
- + "\0\u0d1a\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0\0\u0eee\0\u0f3c"
- + "\0\u0f8a\0\u0fd8\0\u1026\0\u1074\0\u10c2\0\u1110\0\352\0\u115e"
- + "\0\352\0\352\0\352\0\352\0\u11ac\0\352\0\u01d4\0\352"
- + "\0\u11fa\0\u1248\0\u1296\0\u12e4\0\u1332\0\u1380\0\u13ce\0\u141c"
- + "\0\u146a\0\u14b8\0\u1506\0\u1554\0\u15a2\0\u15f0\0\u163e\0\u168c"
- + "\0\u16da\0\u1728\0\u1776\0\u17c4\0\u1812\0\u1860\0\u18ae\0\u18fc"
- + "\0\u194a\0\u1998\0\352\0\u19e6\0\352\0\u1a34\0\352\0\u1a82"
- + "\0\352\0\352\0\352\0\352\0\352\0\352\0\u1ad0\0\u1b1e"
- + "\0\u1b6c\0\u1bba\0\u1c08\0\u0c30\0\u0ccc\0\u1c56\0\u1ca4\0\u1cf2"
- + "\0\u1d40\0\u1d8e\0\u0b94\0\u1ddc\0\u1e2a\0\u1e78\0\u1ec6\0\u1f14"
- + "\0\u1f62\0\u1fb0\0\u1ffe\0\u204c\0\u209a\0\u20e8\0\u2136\0\u2184"
- + "\0\u21d2\0\u2220\0\u226e\0\u22bc\0\u230a\0\u2358\0\u23a6\0\u23f4"
- + "\0\u2442\0\u2490\0\u24de\0\u252c\0\u257a\0\u25c8\0\u2616\0\u2664"
- + "\0\u26b2\0\u2700\0\u274e\0\u279c\0\u27ea\0\u2838\0\u2886\0\u28d4"
- + "\0\u2922\0\u2970\0\u29be\0\u01d4\0\u2a0c\0\u0270\0\u2a5a\0\u2aa8"
- + "\0\u2af6\0\u2b44\0\u2b92\0\u2be0\0\u2c2e\0\u2c7c\0\u2cca\0\u2d18"
- + "\0\u2d66\0\u2db4\0\352\0\u2e02\0\u2e50\0\u2e9e\0\u2eec\0\u2eec"
- + "\0\u2f3a\0\u2f88\0\u2fd6\0\u3024\0\u3072\0\u30c0\0\u310e\0\u315c"
- + "\0\u31aa\0\u31f8\0\u3246\0\u3294\0\u32e2\0\u3330\0\u337e\0\u33cc"
- + "\0\u341a\0\u3468\0\u34b6\0\u3504\0\u3552\0\u35a0\0\u35ee\0\u363c"
- + "\0\u368a\0\u36d8\0\u3726\0\u3774\0\u37c2\0\u3810\0\u385e\0\u38ac"
- + "\0\u38fa\0\u3948\0\u3996\0\u39e4\0\u3a32\0\u3a80\0\u3ace\0\u3b1c"
- + "\0\u01d4\0\u0270\0\u01d4\0\u0270\0\u3b6a\0\u3bb8\0\u3c06\0\u3c54"
- + "\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u01d4\0\u0270\0\u3dda\0\u3e28"
- + "\0\u01d4\0\u0270\0\u3e76\0\u3ec4\0\352\0\u3f12\0\u3f60\0\u3fae"
- + "\0\u3ffc\0\u404a\0\u4098\0\u40e6\0\u4134\0\u4182\0\u41d0\0\u421e"
- + "\0\u0b94\0\u426c\0\u42ba\0\u4308\0\u4356\0\u43a4\0\u43f2\0\u0b94"
- + "\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578\0\u45c6\0\u4614\0\u4662"
- + "\0\u46b0\0\u46fe\0\u474c\0\u0b94\0\u479a\0\u0b94\0\u47e8\0\u4836"
- + "\0\u4884\0\u48d2\0\u4920\0\u496e\0\u49bc\0\u4a0a\0\u4a58\0\u4aa6"
- + "\0\u4af4\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u01d4\0\u0270\0\u4c7a"
- + "\0\u4cc8\0\u4d16\0\u4d64\0\u4db2\0\u4e00\0\u4e4e\0\u4e9c\0\u4eea"
- + "\0\u4f38\0\u4f86\0\352\0\u4fd4\0\u0b94\0\u0b94\0\u5022\0\u5070"
- + "\0\u50be\0\u510c\0\u515a\0\u51a8\0\u51f6\0\u5244\0\u5292\0\u52e0"
- + "\0\u532e\0\u537c\0\u53ca\0\u5418\0\u5466\0\u54b4\0\u5502\0\u5550"
- + "\0\u559e\0\u0b94\0\u0b94\0\u55ec\0\u563a\0\u5688\0\u56d6\0\u5724"
- + "\0\u5772\0\u0b94\0\u01d4\0\u57c0\0\u580e\0\u0270\0\u585c\0\u58aa"
- + "\0\u58f8\0\u5946\0\u5994\0\u59e2\0\u5a30\0\u5a7e\0\u5acc\0\u5b1a"
- + "\0\u5b68\0\u5bb6\0\u5c04\0\u5c52\0\u5ca0\0\u0b94\0\u5cee\0\u5d3c"
- + "\0\u5d8a\0\u5dd8\0\u5e26\0\u0b94\0\u5e74\0\u5ec2\0\u5f10\0\u5f5e"
- + "\0\u5fac\0\u5ffa\0\u6048\0\u6096\0\u0b94\0\u60e4\0\u0b94\0\u6132"
- + "\0\u6180\0\u0b94\0\u0b94\0\u0b94\0\u61ce\0\u621c\0\u626a\0\u62b8"
- + "\0\u6306\0\u0b94\0\u6354\0\u63a2\0\u63f0\0\u643e\0\u648c\0\u64da"
- + "\0\u6528\0\u6576\0\u65c4\0\u6612\0\u6660\0\u66ae\0\u01d4\0\u0270"
- + "\0\u66fc\0\u674a\0\u6798\0\u67e6\0\u6834\0\u6882\0\u68d0\0\u691e"
- + "\0\u696c\0\u0b94\0\u69ba\0\u6a08\0\u6a56\0\u6aa4\0\u6af2\0\u6b40"
- + "\0\u6b8e\0\u6bdc\0\u6c2a\0\u0b94\0\u6c78\0\u6cc6\0\u6d14\0\u6d62"
- + "\0\u6db0\0\u6dfe\0\u01d4\0\u6e4c\0\u0270\0\u6e9a\0\u6ee8\0\u6f36"
- + "\0\u6f84\0\u6fd2\0\u7020\0\u01d4\0\u0270\0\u706e\0\u70bc\0\u0b94"
- + "\0\u710a\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u0b94\0\u72de"
- + "\0\u0b94\0\u732c\0\u737a\0\u73c8\0\u7416\0\u0b94\0\u7464\0\u0b94"
- + "\0\u74b2\0\u0b94\0\u0b94\0\u7500\0\u754e\0\u759c\0\u75ea\0\u7638"
- + "\0\u7686\0\u76d4\0\u01d4\0\u0270\0\u7722\0\u7770\0\u77be\0\u780c"
- + "\0\u785a\0\u78a8\0\u78f6\0\u7944\0\u7992\0\u79e0\0\u7a2e\0\u7a7c"
- + "\0\u7aca\0\u0b94\0\u0b94\0\u7b18\0\u0b94\0\u0b94\0\u7b66\0\u7bb4"
- + "\0\u7c02\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a\0\u7d88\0\u7dd6\0\u7e24"
- + "\0\u7e72\0\u7ec0\0\u01d4\0\u0270\0\u0b94\0\u7f0e\0\u7f5c\0\u7faa"
- + "\0\u7ff8\0\u8046\0\u8094\0\u80e2\0\u8130\0\u817e\0\u81cc\0\u821a"
- + "\0\u8268\0\u82b6\0\u8304\0\u8352\0\u83a0\0\u83ee\0\u843c\0\u848a"
- + "\0\u84d8\0\u8526\0\u8574\0\u0b94\0\u85c2\0\u8610\0\u865e\0\u86ac"
- + "\0\u86fa\0\u0b94\0\u8748\0\u8796\0\u87e4\0\u8832\0\u8880\0\u88ce"
- + "\0\u891c\0\u896a\0\u89b8\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e"
- + "\0\u8b8c\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12\0\u8d60\0\u8dae"
- + "\0\u8dfc\0\u8e4a\0\u0b94\0\u01d4\0\u0270\0\u8e98\0\u8ee6\0\u8f34"
- + "\0\u8f82\0\u8fd0\0\u901e\0\u906c\0\u90ba\0\u9108\0\u9156\0\u91a4"
- + "\0\u91f2\0\u9240\0\u928e\0\u92dc\0\u932a\0\u9378\0\u93c6\0\u9414"
- + "\0\u9462\0\u94b0\0\u94fe\0\u01d4\0\u0270\0\u954c\0\u959a\0\u95e8"
- + "\0\u9636\0\u9684\0\u96d2\0\u0b94\0\u9720\0\u976e\0\352\0\u97bc"
- + "\0\u980a\0\u9858\0\u98a6\0\u98f4\0\u9942\0\u9990\0\u99de\0\u0b94"
- + "\0\u9a2c\0\u0b94\0\u9a7a\0\u9ac8\0\u9b16\0\u9b64\0\u9bb2\0\u0b94"
- + "\0\u0b94\0\u9c00\0\u9c4e\0\u9c9c\0\u9cea\0\352\0\u0b94\0\u0b94"
- + "\0\u9d38\0\u0b94\0\352\0\u0b94";
-
- private static int[] zzUnpackRowMap() {
- int[] result = new int[620];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
-
- int j = offset; /* index in unpacked array */
-
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
- }
-
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
-
- private static final String ZZ_TRANS_PACKED_0
- = "\4\4\1\5\1\6\3\4\1\7\1\4\1\10\1\11"+
- "\1\7\4\4\1\12\1\13\1\4\1\14\1\15\2\4"+
- "\1\7\1\11\1\16\1\17\1\20\1\21\1\22\1\23"+
- "\1\24\1\25\1\26\1\27\1\30\1\31\1\7\1\11"+
- "\1\7\1\11\1\32\1\33\1\5\1\7\1\11\1\7"+
- "\1\11\1\7\1\11\1\34\1\35\1\36\1\37\1\7"+
- "\1\11\1\7\1\11\1\7\1\11\1\4\1\7\1\11"+
- "\4\4\1\7\1\11\5\4\1\5\1\4\1\40\1\41"+
- "\1\42\25\40\1\43\45\40\1\44\17\40\1\4\1\45"+
- "\1\46\1\47\1\4\1\50\1\51\1\52\1\53\1\54"+
- "\1\4\1\55\2\54\1\4\1\56\1\57\1\60\2\61"+
- "\1\4\2\54\1\52\1\4\2\54\2\62\2\63\2\64"+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\3\4\1\5\1\6\1\7\3\4\1\10\1\4\1\11"+
+ "\1\12\1\10\4\4\1\13\1\14\1\4\1\15\1\16"+
+ "\1\4\1\10\1\12\1\17\1\20\1\21\1\22\1\23"+
+ "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\10"+
+ "\1\12\1\10\1\12\1\33\1\34\1\6\1\10\1\12"+
+ "\1\10\1\12\1\10\1\12\1\35\1\36\1\37\1\40"+
+ "\1\10\1\12\1\10\1\12\1\10\1\12\1\4\1\10"+
+ "\1\12\4\4\1\10\1\12\4\4\1\6\1\4\1\41"+
+ "\1\42\1\43\24\41\1\44\45\41\1\45\16\41\1\4"+
+ "\1\46\1\47\1\5\1\4\1\50\1\51\1\52\1\53"+
+ "\1\54\1\4\1\55\2\54\1\4\1\56\1\57\1\60"+
+ "\2\61\1\4\2\54\1\4\2\54\2\62\2\63\2\64"+
"\2\65\2\66\2\67\2\70\2\54\2\71\1\4\2\72"+
"\2\73\2\54\2\74\2\54\2\75\2\54\2\76\1\77"+
"\2\100\1\101\1\102\1\103\1\104\2\105\1\106\1\52"+
- "\1\4\1\52\3\4\122\0\1\5\50\0\1\5\36\0"+
- "\1\5\6\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\111\1\0\3\107\1\0\20\107\2\112"+
- "\2\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
+ "\4\4\114\0\1\5\2\0\111\5\4\0\1\6\47\0"+
+ "\1\6\35\0\1\6\6\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\111\1\0\2\107\1\0"+
+ "\20\107\2\112\2\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
"\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\24\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\111\1\113\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\112"+
- "\1\114\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\2\115\22\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\115\1\116\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
+ "\2\107\1\0\24\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\111"+
+ "\1\113\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\112\1\114\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\2\115\22\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\115\1\116\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\12\107\2\117\10\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\117"+
+ "\1\120\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\12\107\2\121\10\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\121\1\122\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
"\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\12\107\2\117\10\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\117\1\120\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\12\107"+
- "\2\121\10\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\121\1\122\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\20\107\2\123\2\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\123\1\124\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\22\107\2\125\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\125\1\126\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\14\107\2\127\6\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\127\1\130\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\4\107\2\131\16\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\131\1\132\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\20\107"+
- "\2\133\2\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\133\1\134"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\135\1\0\3\107\1\0\24\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\135\1\136\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\24\107"+
- "\1\0\10\107\2\137\6\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\137\1\140\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\12\107\2\141\10\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\141\1\142\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\1\40\2\0\25\40\1\0"+
- "\45\40\1\0\17\40\2\0\1\42\113\0\1\143\2\0"+
- "\14\143\1\144\5\143\2\145\1\146\1\147\1\143\1\150"+
- "\4\143\2\151\4\143\2\152\4\143\2\153\7\143\2\154"+
- "\10\143\1\155\12\143\1\156\1\144\5\0\1\46\113\0"+
- "\1\47\2\0\113\47\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\157\1\0\3\54\1\0"+
- "\24\54\1\0\12\54\2\160\4\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\7\0"+
- "\1\52\7\0\1\52\1\0\1\161\2\162\3\0\1\52"+
- "\60\0\1\52\1\0\1\52\10\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\163\1\54\1\0\5\54\1\0\1\54\2\0\2\157"+
- "\1\0\3\54\1\0\24\54\1\0\12\54\2\160\4\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\7\0\1\164\7\0\1\164\1\0\1\161"+
- "\2\162\3\0\1\164\60\0\1\164\1\0\1\164\12\0"+
- "\1\52\7\0\1\164\1\0\1\165\5\0\1\52\60\0"+
- "\1\52\1\0\1\52\12\0\1\161\7\0\1\161\7\0"+
- "\1\161\60\0\1\161\1\0\1\161\10\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\2\166\22\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\12\54\2\167\10\54"+
- "\1\0\10\54\2\170\6\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\20\54\2\171\2\172\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\12\54"+
- "\2\173\4\54\2\174\2\175\1\0\4\54\2\176\12\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\14\54"+
- "\2\177\6\54\1\0\2\54\2\200\14\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\201\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\202\1\0\3\54\1\0\20\54"+
- "\2\203\2\54\1\0\12\54\2\204\4\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\205\1\0\3\54\1\0\6\54\2\206\14\54"+
- "\1\0\10\54\2\207\6\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\6\54\2\210\14\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\211\1\0\3\54\1\0\10\54"+
- "\2\212\2\213\10\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\214\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\10\54\2\215"+
- "\6\54\2\216\2\217\1\0\12\54\2\220\4\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\6\54\2\221"+
- "\2\222\2\54\2\223\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\224\2\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\225\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\226\2\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\6\107\2\227\14\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\2\230\22\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\227\1\231\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\230\1\232\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\2\107\2\233\20\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\233\1\234\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\24\107"+
- "\1\0\2\235\16\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\235\1\236\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
+ "\2\107\1\0\20\107\2\123\2\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\123"+
+ "\1\124\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
"\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\24\107\1\0\2\237\16\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\237\1\240"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\22\107"+
- "\2\241\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\241"+
- "\1\242\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
+ "\1\0\2\107\1\0\22\107\2\125\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\125\1\126\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
"\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\20\107\2\243\2\107\1\0\4\107"+
- "\2\244\12\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\243\1\245\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\244\1\246\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\10\107\2\247\12\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\247\1\250\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\6\107"+
- "\2\251\14\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\251\1\252\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\253\1\0\1\107\1\0\2\107\1\253\2\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\24\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\253\1\0\1\11\1\0"+
- "\2\107\1\254\2\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\6\107\2\255\14\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\255"+
- "\1\256\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\20\107"+
- "\2\257\2\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\257\1\260"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
+ "\1\0\2\107\1\0\14\107\2\127\6\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\127\1\130\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
"\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\2\107\2\261\20\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\261\1\262\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\17\0\1\146\7\0\1\146"+
- "\62\0\1\146\22\0\1\263\7\0\1\263\62\0\1\263"+
- "\12\0\1\264\7\0\1\264\2\0\2\264\1\0\3\264"+
- "\3\0\2\264\14\0\2\264\3\0\2\264\4\0\2\264"+
- "\22\0\1\264\1\0\1\264\10\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\6\54\2\265\14\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\10\54"+
- "\2\266\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\7\0\1\161\7\0\1\161"+
- "\2\0\2\162\3\0\1\161\60\0\1\161\1\0\1\161"+
- "\12\0\1\267\7\0\1\267\1\270\3\0\1\270\2\0"+
- "\1\267\60\0\1\267\1\0\1\267\12\0\1\271\7\0"+
- "\1\271\7\0\1\271\60\0\1\271\1\0\1\271\10\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\4\54\2\272\16\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\14\54\2\273\6\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\274\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\2\54\2\275\20\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\10\54\2\276\2\277\10\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\22\54\2\300\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\12\54\2\301"+
- "\4\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\4\54\2\302\16\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\6\54\2\303\14\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\14\54\2\304\6\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\305\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\306\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\307\1\0\1\54\1\0"+
- "\2\54\1\307\2\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\10\54\2\310"+
- "\6\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\6\54\2\311\14\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\312\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\12\54\2\313\10\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\314\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\2\54\2\315"+
- "\20\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\16\54\2\316\4\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\12\54\2\317\4\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\320\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\14\54\2\321"+
- "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\10\54\2\322\6\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\12\54\2\323"+
- "\10\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\14\54\2\324\6\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\6\54\2\325\10\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\14\54\2\326\6\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\2\327\16\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\16\54\2\330\4\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\331\2\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\10\54\2\332\6\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
+ "\2\107\1\0\2\107\1\0\4\107\2\131\16\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\131\1\132\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
"\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\24\107\1\0\16\107"+
- "\2\333\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\16\107\2\334\4\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\333\1\335\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\334\1\336"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\337\1\0\3\107\1\0\24\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\337\1\340\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\24\107\1\0\4\107\2\341\12\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\341\1\342\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\343\1\0\3\107\1\0\24\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\343\1\344\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\20\107\2\345\2\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\345\1\346\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\10\107\2\347"+
- "\12\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\347\1\350\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\6\107\2\351\14\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\351\1\352\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\10\107\2\353\12\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\353"+
- "\1\354\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\355\1\0\3\107\1\0\24\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\355\1\356\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\24\107\1\0\12\107\2\357\4\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\357\1\360"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\24\107\1\0\2\107"+
- "\2\361\14\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\361\1\362\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\20\107\2\363\2\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\363\1\364\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\7\0\1\365\7\0\1\365\2\0\2\365"+
- "\1\0\3\365\3\0\2\365\14\0\2\365\3\0\2\365"+
- "\4\0\2\365\22\0\1\365\1\0\1\365\10\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\20\54\2\366\2\54\1\0\16\54"+
- "\2\367\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\6\54\2\370\14\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\7\0"+
- "\1\267\7\0\1\267\7\0\1\267\60\0\1\267\1\0"+
- "\1\267\12\0\1\271\1\371\6\0\1\271\7\0\1\271"+
- "\60\0\1\271\1\0\1\271\10\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\10\54\2\372\6\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\16\54\2\373\4\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\16\54\2\374\4\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\14\54"+
- "\2\375\2\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\376"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\6\54\2\377\14\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
- "\1\0\2\54\2\u0100\14\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0101"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u0102\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\u0103\1\0\3\54\1\0\24\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\12\54\2\u0104\10\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\22\54\2\u0105\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\2\u0106\16\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0107"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\10\54"+
- "\2\u0108\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\4\54\1\u0109\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u010a\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\6\54\2\u010b"+
- "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u010c\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\14\54\2\u010d"+
- "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u010e\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\4\54\2\u010f"+
- "\16\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\2\u0110\1\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\6\54\2\u0111\14\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\20\54\2\u0112\2\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\16\54\2\u0113\4\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\u0114\1\0\1\54"+
- "\1\0\2\54\1\u0114\2\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\2\54\2\u0115\20\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\u0116\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\6\54\2\u0117\14\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\u0118\1\0\3\54\1\0\24\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\4\54\1\u0119\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\u011a\1\0\1\54\1\0\2\54\1\u011a\2\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\12\54\2\u011b\4\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\12\107\2\u011c\10\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\2\107\2\u011d\2\107\2\u011e\14\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u011c\1\u011f\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\u011d\1\u0120\1\107\1\11"+
- "\1\u011e\1\u0121\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\4\107\2\u0122\16\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\u0122\1\u0123\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\u0124\1\0\1\107\1\0\2\107\1\u0124\2\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\24\107"+
+ "\2\0\2\107\1\0\2\107\1\0\20\107\2\133\2\107"+
"\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\u0124\1\0\1\11"+
- "\1\0\2\107\1\u0125\2\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\6\107\2\u0126\14\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\u0126\1\u0127\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\16\107\2\u0128\4\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\u0128\1\u0129\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\133\1\134\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
+ "\1\107\2\0\2\135\1\0\2\107\1\0\24\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\135\1\136\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
"\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\12\107\2\u012a\10\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u012a\1\u012b"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\22\107\2\u012c\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u012c\1\u012d\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
+ "\2\0\2\107\1\0\2\107\1\0\24\107\1\0\10\107"+
+ "\2\137\6\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\137"+
+ "\1\140\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
"\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\24\107\1\0"+
- "\10\107\2\u012e\6\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u012e\1\u012f\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\24\54\1\0\2\u0130\16\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\12\54\2\u0131"+
- "\10\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u0132\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\76\0\1\u0133\24\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\10\54\2\u0134\12\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\6\54\2\u0135\14\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\16\54\2\u0136\4\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\u0137\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\20\54\2\u0138\2\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\u0139\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u013a\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\14\54\2\u013b\6\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\2\54\2\u013c"+
- "\14\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\22\54\2\u013d\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\22\54\2\u013e\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\4\54\1\u013f"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\16\54\2\u0140\4\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\2\u0141"+
- "\16\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u0142\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u0143\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\10\54\2\u0144"+
- "\12\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\20\54\2\u0145\2\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\u0146\1\0\1\54\1\0\2\54\1\u0146"+
- "\2\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u0147\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\10\54\2\u0148\6\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\u0149\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\10\54\2\u014a"+
- "\6\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u014b\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u014c\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u014d\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\6\54\2\u014e\10\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\4\54\2\u014f\4\54\2\u0150"+
- "\10\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\u0151\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\u0152\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\24\107\1\0"+
- "\2\u0153\16\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\12\107\2\u0154\10\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\20\107\2\u0155\2\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\u0153\1\u0156\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u0154"+
- "\1\u0157\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u0155\1\u0158"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\6\107\2\u0159\14\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\u0159\1\u015a\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\14\107\2\u015b\6\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u015b\1\u015c\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\2\107\2\u015d"+
- "\20\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\u015d"+
- "\1\u015e\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\14\107\2\u015f\6\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u015f\1\u0160"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\14\107\2\u0161\6\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u0161\1\u0162\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\2\107\2\u0163\20\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\u0163\1\u0164"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\20\54\2\u0165\2\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\2\u0166\16\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\u0167\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\2\54\2\u0168\20\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\2\54\2\u0169\14\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\6\54\2\u016a\14\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\2\54\2\u016b\20\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\6\54\2\u016c\14\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\20\54\2\u016d\2\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u016e\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\u016f\1\0\3\54\1\0\24\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\10\54\2\u0170\12\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\u0171\2\u0172"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\4\54\2\u0173\16\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\2\u0174\22\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\22\54\2\u0175\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\2\54\2\u0176\20\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
- "\1\0\2\u0177\16\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\u0178\1\0"+
- "\1\54\1\0\2\54\1\u0178\2\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\20\54\2\u0179"+
- "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\2\u017a\16\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u017b\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\22\54"+
- "\2\u017c\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u017d\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\2\54\2\u017e\14\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u017f\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\20\54\2\u0180"+
- "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\4\54\2\u0181\16\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\20\54\2\u0182"+
- "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\4\107\2\u0183\16\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\2\107\2\u0184"+
- "\20\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\u0183\1\u0185\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\u0184\1\u0186\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\10\107\2\u0187\12\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u0187\1\u0188\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\20\107\2\u0189\2\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\u0189\1\u018a\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\12\107\2\u018b"+
+ "\1\107\2\0\2\107\1\0\2\107\1\0\12\107\2\141"+
"\10\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u018b"+
- "\1\u018c\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\20\107\2\u018d\2\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u018d\1\u018e\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\16\107\2\u018f\4\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\u018f\1\u0190\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\12\107\2\u0191\10\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u0191\1\u0192"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u0193\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\20\54\2\u0194"+
- "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u0195\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u0196\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u0197\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u0198\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\u0199\1\0\1\54\1\0\2\54\1\u0199"+
- "\2\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\22\54\2\u019a\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\4\54\1\u019b\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\2\u019c\16\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\141\1\142\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\1\41\2\0\24\41\1\0\45\41\1\0"+
+ "\16\41\2\0\1\43\111\0\1\143\2\0\22\143\2\144"+
+ "\1\145\1\143\1\146\4\143\2\147\4\143\2\150\4\143"+
+ "\2\151\7\143\2\152\3\143\1\153\4\143\1\154\12\143"+
+ "\1\155\5\0\1\47\116\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\156\1\0\2\54\1\0"+
+ "\24\54\1\0\12\54\2\157\4\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\7\0\1\52\7\0"+
+ "\1\52\1\0\1\160\2\161\63\0\1\52\11\0\1\54"+
"\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\2\54\2\u019d\16\54\2\u019e\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u019f\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\20\54\2\u01a0\2\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\14\54\2\u01a1"+
- "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\4\54\2\u01a2\16\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u01a3\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\10\54\2\u01a4\6\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\162\1\54\1\0\5\54\1\0\1\54\2\0\2\156"+
+ "\1\0\2\54\1\0\24\54\1\0\12\54\2\157\4\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\7\0\1\163\7\0\1\163\1\0\1\160\2\161\63\0"+
+ "\1\163\13\0\1\52\7\0\1\163\1\0\1\164\65\0"+
+ "\1\52\13\0\1\160\7\0\1\160\67\0\1\160\11\0"+
"\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\12\54\2\u01a5\10\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u01a6\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\14\54\2\u01a7\6\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\22\54\2\u01a8"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\6\54\2\u01a9\14\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\u01aa\1\0\3\107\1\0\24\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\24\107"+
- "\1\0\14\107\2\u01ab\2\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\u01aa\1\u01ac\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\u01ab\1\u01ad\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\12\107\2\u01ae\10\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u01ae\1\u01af"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\u01b0\1\0"+
- "\1\107\1\0\2\107\1\u01b0\2\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\24\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\u01b0\1\0\1\11\1\0\2\107\1\u01b1"+
- "\2\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\4\107\2\u01b2\16\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\u01b2\1\u01b3\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\24\107\1\0\10\107"+
- "\2\u01b4\6\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\u01b4\1\u01b5\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\24\107\1\0\12\107\2\u01b6\4\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\u01b6\1\u01b7\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\20\54"+
- "\2\u01b8\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\u01b9"+
- "\1\0\1\54\1\0\2\54\1\u01b9\2\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\6\54"+
- "\2\u01ba\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\10\54\2\u01bb\2\54\2\u01bc\6\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\u01bd\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
+ "\2\54\1\0\2\54\1\0\2\165\22\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
"\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u01be\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\u01bf\1\0\3\54\1\0\24\54"+
+ "\2\0\2\54\1\0\2\54\1\0\12\54\2\166\10\54"+
+ "\1\0\10\54\2\167\6\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\170\2\171\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\12\54\2\172\4\54\2\173\2\174"+
+ "\1\0\4\54\2\175\12\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\14\54\2\176\6\54\1\0\2\54\2\177\14\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\200\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\201\1\0\2\54\1\0\20\54\2\202\2\54"+
+ "\1\0\12\54\2\203\4\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\204\1\0\2\54"+
+ "\1\0\6\54\2\205\14\54\1\0\10\54\2\206\6\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\6\54\2\207\14\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\22\54\2\u01c0\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\210\1\0\2\54\1\0\10\54"+
+ "\2\211\2\212\10\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\213\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\10\54\2\214\6\54\2\215\2\216\1\0"+
+ "\12\54\2\217\4\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\6\54\2\220\2\221\2\54\2\222\6\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\223\2\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\224\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\225\2\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\6\107\2\226\14\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\2\227\22\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\226"+
+ "\1\230\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\227\1\231\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\2\107\2\232\20\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\232\1\233\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\24\107\1\0\2\234"+
+ "\16\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\234\1\235"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\24\107\1\0\2\236"+
+ "\16\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\236\1\237"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\22\107\2\240\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\240\1\241\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\20\107\2\242\2\107"+
+ "\1\0\4\107\2\243\12\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\242\1\244\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\243\1\245\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\10\107\2\246\12\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\246\1\247\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\6\107\2\250\14\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\250\1\251\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\252\1\0"+
+ "\1\107\1\0\2\107\1\252\2\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\252\1\0\1\12\1\0\2\107\1\253\2\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\6\107\2\254\14\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\254"+
+ "\1\255\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\20\107\2\256\2\107"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\256\1\257\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
+ "\1\107\2\0\2\107\1\0\2\107\1\0\2\107\2\260"+
+ "\20\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\260\1\261\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\7\0\1\262\7\0\1\262\2\0\2\262"+
+ "\1\0\2\262\3\0\2\262\14\0\2\262\3\0\2\262"+
+ "\4\0\2\262\22\0\1\262\13\0\1\263\7\0\1\263"+
+ "\2\0\2\263\1\0\2\263\3\0\2\263\14\0\2\263"+
+ "\3\0\2\263\4\0\2\263\22\0\1\263\11\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\6\54\2\264\14\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\10\54"+
+ "\2\265\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\7\0\1\160\7\0\1\160\2\0\2\161"+
+ "\63\0\1\160\13\0\1\266\7\0\1\266\1\267\3\0"+
+ "\1\267\62\0\1\266\13\0\1\270\7\0\1\270\67\0"+
+ "\1\270\11\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\4\54\2\271"+
+ "\16\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\14\54\2\272\6\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\273\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
"\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\u01c1\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\2\54\2\274\20\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
"\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\6\54\2\u01c2"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\10\54\2\275"+
+ "\2\276\10\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\22\54\2\277\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\12\54\2\300\4\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\4\54\2\301\16\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\6\54\2\302"+
"\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\2\54\2\u01c3\14\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\16\54\2\u01c4"+
- "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\2\54\2\u01c5\20\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\16\54\2\u01c6"+
- "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\22\54\2\u01c7\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\u01c8\2\54"+
- "\1\0\10\54\2\u01c9\6\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\14\54\2\u01ca\6\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\22\54"+
- "\2\u01cb\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\u01cc\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\14\54\2\303\6\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\304\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\305\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\306\1\0"+
+ "\1\54\1\0\2\54\1\306\2\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
"\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\u01cd\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\10\54\2\u01ce\12\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\10\54\2\307"+
+ "\6\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\6\54\2\310"+
+ "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\20\54\2\311\2\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\12\54\2\312\10\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\313\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\2\54\2\314\20\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\16\54\2\315"+
+ "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\12\54\2\316\4\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\317\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\320\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\10\54\2\321\6\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\12\54\2\322\10\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\14\54\2\323\6\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\6\54\2\324"+
+ "\10\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\14\54\2\325"+
+ "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\2\326\16\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\16\54\2\327\4\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\20\54\2\330\2\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\10\54"+
+ "\2\331\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\24\107"+
+ "\1\0\16\107\2\332\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\16\107\2\333\4\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\332\1\334\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\333\1\335\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\336\1\0\2\107\1\0"+
+ "\24\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\336\1\337\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\24\107"+
+ "\1\0\4\107\2\340\12\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\340\1\341\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\342\1\0\2\107\1\0"+
+ "\24\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\342\1\343\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\20\107"+
+ "\2\344\2\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\344\1\345\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\10\107\2\346\12\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\346\1\347\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\6\107\2\350\14\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\350\1\351\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\10\107\2\352\12\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\352"+
+ "\1\353\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\354"+
+ "\1\0\2\107\1\0\24\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\354\1\355\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\24\107\1\0\12\107\2\356\4\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\356\1\357"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\24\107\1\0\2\107\2\360\14\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\360"+
+ "\1\361\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
"\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\24\107\1\0\2\u01cf\16\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\u01cf"+
- "\1\u01d0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\107\1\0\3\107\1\0"+
- "\14\107\2\u01d1\6\107\1\0\20\107\1\0\2\107\4\0"+
- "\2\107\1\0\1\107\1\0\1\107\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u01d1\1\u01d2\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\u01d3\1\0\3\107\1\0\24\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\u01d3\1\u01d4\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\u01d5\1\0\3\107\1\0"+
- "\24\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\u01d5"+
- "\1\u01d6\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\14\107\2\u01d7\6\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u01d7\1\u01d8"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u01d9\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\14\54\2\u01da\6\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\14\54\2\u01db"+
- "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\20\54\2\u01dc\2\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\20\54\2\u01dd"+
- "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\2\u01de\16\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u01df\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\10\54"+
- "\2\u01e0\12\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\24\54\1\0\12\54\2\u01e1\4\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\6\54"+
- "\2\u01e2\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u01e3"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\12\54\2\u01e4\10\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\20\54\2\u01e5\2\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\2\u01e6"+
- "\16\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\u01e7\1\0\1\54\1\0"+
- "\2\54\1\u01e7\2\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\2\107\1\0\2\107\1\0\20\107\2\362\2\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\362\1\363\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\7\0\1\364\7\0\1\364\2\0\2\364\1\0\2\364"+
+ "\3\0\2\364\14\0\2\364\3\0\2\364\4\0\2\364"+
+ "\22\0\1\364\13\0\1\365\7\0\1\365\2\0\2\365"+
+ "\1\0\2\365\3\0\2\365\14\0\2\365\3\0\2\365"+
+ "\4\0\2\365\22\0\1\365\11\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\366\2\54\1\0\16\54\2\367\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
"\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\12\54\2\u01e8\10\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\107\1\0\1\107\1\0"+
- "\5\107\1\110\1\107\2\0\2\u01e9\1\0\3\107\1\0"+
- "\24\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\u01e9"+
- "\1\u01ea\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\u01eb"+
- "\1\0\3\107\1\0\6\107\2\u01ec\6\107\2\u01ed\4\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\u01eb\1\u01ee"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u01ec\1\u01ef\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u01ed\1\u01f0\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\24\107\1\0\2\u01f1\16\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\u01f1\1\u01f2\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\6\107\2\u01f3"+
- "\14\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u01f3\1\u01f4\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\54"+
+ "\2\54\1\0\2\54\1\0\6\54\2\370\14\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\7\0\1\266\7\0\1\266\67\0\1\266\13\0"+
+ "\1\270\1\371\6\0\1\270\67\0\1\270\11\0\1\54"+
"\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\20\54\2\u01f5\2\54\1\0\10\54"+
- "\2\u01f6\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\20\54\2\u01f7\2\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
+ "\1\0\2\54\1\0\24\54\1\0\10\54\2\372\6\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
"\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\6\54\2\u01f8\14\54"+
+ "\2\0\2\54\1\0\2\54\1\0\16\54\2\373\4\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\u01f9\1\0\1\54"+
- "\1\0\2\54\1\u01f9\2\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\u01fa\1\0\1\54\1\0\2\54\1\u01fa\2\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\u01fb\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\16\54"+
+ "\2\374\4\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\14\54\2\375\2\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\376\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\6\54\2\377\14\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
"\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\16\54\2\u01fc\4\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\2\54"+
+ "\2\u0100\14\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0101\1\0\2\54\1\0\24\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\u01fd"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\u01fe"+
- "\1\0\1\54\1\0\2\54\1\u01fe\2\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\6\54"+
- "\2\u01ff\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\4\54\1\u0200\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0102\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0103\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\12\54"+
+ "\2\u0104\10\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\22\54\2\u0105\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\2\u0106\16\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0107"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\10\54\2\u0108\6\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\4\54\1\u0109\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\6\54\2\u010a"+
+ "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\6\54\2\u010b\14\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u010c\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u010d\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
"\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\14\54\2\u0201"+
- "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\107\1\0"+
- "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\4\107\2\u0202\16\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\u0202\1\u0203\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\14\107"+
- "\2\u0204\6\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\20\107\2\u0205\2\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\6\107"+
- "\2\u0206\14\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\u0204\1\u0207\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u0205"+
- "\1\u0208\1\107\1\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\u0206\1\u0209"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\u020a\1\0\3\107\1\0\24\107\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\u020a\1\u020b\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\20\54\2\u020c\2\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\u020d\1\0\1\54\1\0\2\54\1\u020d\2\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\10\54\2\u010e"+
+ "\12\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\4\54\2\u010f\16\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\u0110\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u0111\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\20\54\2\u0112\2\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\16\54\2\u0113"+
+ "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\u0114\1\0\1\54\1\0"+
+ "\2\54\1\u0114\2\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\2\54\2\u0115\20\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\u0116\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\6\54\2\u0117\14\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u0118\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\4\54\1\u0119"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\24\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\u020e\1\0\3\54"+
+ "\3\0\1\54\5\0\1\u011a\1\0\1\54\1\0\2\54"+
+ "\1\u011a\2\54\1\0\1\54\2\0\2\54\1\0\2\54"+
"\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u020f"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u0210\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\20\54"+
- "\2\u0211\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\6\54\2\u0212\14\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\20\54"+
- "\2\u0213\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0214"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\u0215\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\14\54"+
- "\2\u0216\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\20\54\2\u0217\2\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\6\107"+
- "\2\u0218\14\107\1\0\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u0218\1\u0219\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\24\107\1\0\2\u021a\16\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\22\107"+
- "\2\u021b\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\12\54\2\u011b\4\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\12\107\2\u011c\10\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\2\107\2\u011d\2\107"+
+ "\2\u011e\14\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u011c\1\u011f"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\u011d\1\u0120\1\107"+
+ "\1\12\1\u011e\1\u0121\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\4\107"+
+ "\2\u0122\16\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\u0122\1\u0123\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\u0124\1\0\1\107\1\0"+
+ "\2\107\1\u0124\2\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\24\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\u0124\1\0"+
+ "\1\12\1\0\2\107\1\u0125\2\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
"\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
- "\3\107\1\0\20\107\2\u021c\2\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\u021a\1\u021d"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u021b\1\u021e\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u021c\1\u021f\1\107\1\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\4\107\2\u0220\16\107\1\0\20\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\11\1\0\2\107\3\11\1\110"+
- "\1\11\2\0\1\107\1\11\1\0\1\107\2\11\1\0"+
- "\1\107\1\11\1\107\1\11\1\u0220\1\u0221\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\4\0\1\107\1\11\1\0\1\11\1\0\1\11\2\0"+
+ "\2\107\1\0\6\107\2\u0126\14\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0126\1\u0127\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\16\107\2\u0128\4\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u0128\1\u0129"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\12\107\2\u012a\10\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u012a\1\u012b\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\22\107\2\u012c\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u012c\1\u012d\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\24\107\1\0\10\107"+
+ "\2\u012e\6\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\u012e"+
+ "\1\u012f\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
"\1\107\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u0222\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\22\54\2\u0223\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\2\u0130\16\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\12\54"+
+ "\2\u0131\10\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\10\54\2\u0132\12\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\75\0\1\u0133"+
+ "\23\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\10\54\2\u0134\12\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\6\54"+
+ "\2\u0135\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\16\54\2\u0136\4\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
"\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\16\54\2\u0224\4\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\16\54"+
- "\2\u0225\4\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\u0226"+
- "\1\0\1\54\1\0\2\54\1\u0226\2\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\6\54"+
- "\2\u0227\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
+ "\1\0\2\54\1\0\20\54\2\u0137\2\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\u0138\2\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0139\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u013a\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\u013b\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\2\54\2\u013c\14\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
"\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\14\54\2\u0228\6\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\2\54"+
- "\2\u0229\20\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
- "\1\0\3\54\1\0\20\54\2\u022a\2\54\1\0\20\54"+
- "\1\0\2\54\4\0\2\54\1\0\1\54\1\0\1\54"+
- "\2\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\54\1\0\3\54\1\0\24\54"+
- "\1\0\10\54\2\u022b\6\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\24\107\1\0\16\107\2\u022c\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\11\1\0\2\107\3\11"+
- "\1\110\1\11\2\0\1\107\1\11\1\0\1\107\2\11"+
- "\1\0\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u022c\1\u022d\1\0\1\107"+
- "\1\11\4\0\1\107\1\11\1\0\1\11\1\0\1\11"+
- "\2\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
- "\1\110\1\107\2\0\2\107\1\0\3\107\1\0\24\107"+
- "\1\u022e\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\24\107\1\0\2\107\2\u022f\14\107\1\0\2\107"+
- "\4\0\2\107\1\0\1\107\1\0\1\107\2\0\1\107"+
- "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\22\107\2\u0230\1\0"+
- "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\1\0"+
- "\1\107\2\0\1\107\5\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u022e"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\107\1\0\1\11"+
- "\1\0\2\107\3\11\1\110\1\11\2\0\1\107\1\11"+
- "\1\0\1\107\2\11\1\0\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\1\u022f\1\u0231\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\4\0\1\107\1\11\1\0"+
- "\1\11\1\0\1\11\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\107"+
- "\1\11\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u0230"+
- "\1\u0232\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
- "\1\0\3\107\1\0\6\107\2\u0233\14\107\1\0\20\107"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\u0233\1\u0234\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\16\54\2\u0235\4\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
+ "\1\0\2\54\1\0\22\54\2\u013d\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
"\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\14\54\2\u0236\6\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\4\54\2\u0237\16\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\4\54\2\u0238\16\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\u0239\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\10\54\2\u023a\12\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\22\54\2\u013e\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\4\54\1\u013f\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
"\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\6\54\2\u023b"+
- "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
- "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\6\54\2\u023c\14\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\u023d\1\0\1\54\1\0\2\54\1\u023d"+
- "\2\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\7\0\1\u023e\7\0"+
- "\1\u023f\7\0\1\u023e\60\0\1\u023e\1\0\1\u023e\10\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\u0240\1\0\3\107\1\0\24\107\1\0\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
- "\1\107\2\0\2\107\1\0\3\107\1\0\6\107\2\u0241"+
- "\14\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
- "\1\107\1\0\1\107\2\0\1\107\5\0\1\107\1\0"+
- "\1\11\1\0\2\107\3\11\1\110\1\11\2\0\1\u0240"+
- "\1\u0242\1\0\1\107\2\11\1\0\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\4\0\1\107\1\11"+
- "\1\0\1\11\1\0\1\11\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u0241\1\u0243\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\24\107\1\0\16\107\2\u0244"+
- "\1\0\2\107\4\0\2\107\1\0\1\107\1\0\1\107"+
- "\2\0\1\107\5\0\1\107\1\0\1\11\1\0\2\107"+
- "\3\11\1\110\1\11\2\0\1\107\1\11\1\0\1\107"+
- "\2\11\1\0\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\u0244\1\u0245\1\0"+
- "\1\107\1\11\4\0\1\107\1\11\1\0\1\11\1\0"+
- "\1\11\2\0\1\107\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\4\54\2\u0246\16\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\u0247\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\20\54\2\u0248\2\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\20\54\2\u0249\2\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\16\54\2\u024a\4\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\54\1\0\3\54\1\0\12\54\2\u024b\10\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\16\54\2\u024c\4\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\u024d\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\u024e\1\0\3\54\1\0\24\54\1\0"+
- "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\7\0\1\u023e\6\0\1\u024f\1\u023e"+
- "\7\0\1\u023e\60\0\1\u023e\1\0\1\u023e\21\0\1\u024f"+
- "\104\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
- "\2\0\2\107\1\0\3\107\1\0\6\107\2\u0250\14\107"+
- "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
- "\1\0\1\107\2\0\1\107\5\0\1\107\1\0\1\107"+
- "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\3\107"+
- "\1\0\24\107\1\u0251\20\107\1\0\2\107\4\0\2\107"+
- "\1\0\1\107\1\0\1\107\2\0\1\107\5\0\1\107"+
- "\1\0\1\11\1\0\2\107\3\11\1\110\1\11\2\0"+
- "\1\107\1\11\1\0\1\107\2\11\1\0\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\u0250\1\u0252\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\0\1\107\1\11\4\0\1\107"+
- "\1\11\1\0\1\11\1\0\1\11\2\0\1\107\5\0"+
- "\1\107\1\0\1\11\1\0\2\107\3\11\1\110\1\11"+
- "\2\0\1\107\1\11\1\0\1\107\2\11\1\0\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\u0251\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\0\1\107\1\11\4\0"+
- "\1\107\1\11\1\0\1\11\1\0\1\11\2\0\1\107"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\u0253\2\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\24\54\1\0\10\54\2\u0254\6\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\2\54\2\u0255\20\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\2\54\2\u0256\20\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\4\54\2\u0257\16\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\u0258\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\24\54\1\0\2\u0259"+
- "\16\54\1\0\2\54\4\0\2\54\1\0\1\54\1\0"+
- "\1\54\2\0\1\54\5\0\1\54\1\0\1\54\1\0"+
- "\5\54\1\0\1\54\2\0\2\54\1\0\3\54\1\0"+
- "\16\54\2\u025a\4\54\1\0\20\54\1\0\2\54\4\0"+
- "\2\54\1\0\1\54\1\0\1\54\2\0\1\54\5\0"+
- "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
- "\2\107\1\0\3\107\1\0\24\107\1\u025b\20\107\1\0"+
- "\2\107\4\0\2\107\1\0\1\107\1\0\1\107\2\0"+
- "\1\107\7\0\1\u025c\7\0\1\u025d\7\0\1\u025c\60\0"+
- "\1\u025c\1\0\1\u025c\10\0\1\107\1\0\1\11\1\0"+
- "\2\107\3\11\1\110\1\11\2\0\1\107\1\11\1\0"+
- "\1\107\2\11\1\0\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\107"+
- "\1\11\1\107\1\11\1\107\1\11\1\107\1\11\1\u025b"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\107\1\11\1\107\1\11\1\107\1\11\1\107\1\11"+
- "\1\0\1\107\1\11\4\0\1\107\1\11\1\0\1\11"+
- "\1\0\1\11\2\0\1\107\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\2\54\2\u025e\20\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\14\54\2\u025f\6\54"+
- "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\u0260\1\0\3\54"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\16\54\2\u0140"+
+ "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\2\u0141\16\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\u0142\1\0\2\54"+
"\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
- "\1\0\1\54\1\0\1\54\2\0\1\54\5\0\1\54"+
- "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0261"+
- "\1\0\3\54\1\0\24\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\10\54\2\u0143\12\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\10\54\2\u0144\12\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
"\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
- "\2\0\2\54\1\0\3\54\1\0\20\54\2\u0262\2\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\u0145\2\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54\5\0\1\54\1\0\1\54"+
- "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\3\54"+
- "\1\0\14\54\2\u0263\6\54\1\0\20\54\1\0\2\54"+
- "\4\0\2\54\1\0\1\54\1\0\1\54\2\0\1\54"+
- "\7\0\1\u0264\7\0\1\u0265\7\0\1\u0264\60\0\1\u0264"+
- "\1\0\1\u0264\12\0\1\u025c\6\0\1\u0266\1\u025c\7\0"+
- "\1\u025c\60\0\1\u025c\1\0\1\u025c\21\0\1\u0266\104\0"+
- "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
- "\2\u0267\1\0\3\54\1\0\24\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
- "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\16\54\2\u0268"+
- "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\5\0\1\54\1\0"+
+ "\3\0\1\54\5\0\1\u0146\1\0\1\54\1\0\2\54"+
+ "\1\u0146\2\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\10\54\2\u0147\12\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\10\54\2\u0148\6\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\u0149\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\10\54"+
+ "\2\u014a\6\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u014b\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\6\54"+
+ "\2\u014c\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\u014d\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\6\54\2\u014e\10\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\4\54\2\u014f\4\54\2\u0150\10\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0151\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u0152\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\24\107"+
+ "\1\0\2\u0153\16\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\12\107\2\u0154\10\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\20\107\2\u0155\2\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\u0153\1\u0156\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\u0154\1\u0157\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0155\1\u0158\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\6\107\2\u0159\14\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\u0159\1\u015a\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\14\107\2\u015b\6\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u015b\1\u015c\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\2\107\2\u015d\20\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\u015d\1\u015e\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\14\107\2\u015f\6\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u015f\1\u0160\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\14\107\2\u0161\6\107"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u0161\1\u0162"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
+ "\1\107\2\0\2\107\1\0\2\107\1\0\2\107\2\u0163"+
+ "\20\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\u0163\1\u0164\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\20\54"+
+ "\2\u0165\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\2\u0166\16\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
"\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
- "\3\54\1\0\2\54\2\u0269\20\54\1\0\20\54\1\0"+
- "\2\54\4\0\2\54\1\0\1\54\1\0\1\54\2\0"+
+ "\2\54\1\0\14\54\2\u0167\6\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\2\54\2\u0168\20\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
"\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
- "\1\54\2\0\2\54\1\0\3\54\1\0\16\54\2\u026a"+
- "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
- "\1\54\1\0\1\54\2\0\1\54\7\0\1\u0264\6\0"+
- "\1\u026b\1\u0264\7\0\1\u0264\60\0\1\u0264\1\0\1\u0264"+
- "\21\0\1\u026b\104\0\1\54\1\0\1\54\1\0\5\54"+
- "\1\0\1\54\2\0\2\u026c\1\0\3\54\1\0\24\54"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\2\54\2\u0169\14\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\6\54\2\u016a\14\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\2\54\2\u016b\20\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\6\54\2\u016c\14\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\20\54\2\u016d"+
+ "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\u016e\1\0\2\54\1\0"+
+ "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\u016f\1\0\2\54\1\0"+
+ "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\10\54\2\u0170\12\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u0171\2\u0172\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\4\54\2\u0173\16\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\2\u0174\22\54"+
"\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
- "\1\0\1\54\2\0\1\54";
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\22\54"+
+ "\2\u0175\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\2\54\2\u0176\20\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\2\u0177\16\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\u0178"+
+ "\1\0\1\54\1\0\2\54\1\u0178\2\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\u0179\2\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\24\54"+
+ "\1\0\2\u017a\16\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\u017b\1\0\2\54\1\0"+
+ "\24\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\22\54\2\u017c\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\10\54\2\u017d\12\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\2\54\2\u017e\14\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\10\54\2\u017f\12\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\20\54"+
+ "\2\u0180\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\4\54\2\u0181\16\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\20\54\2\u0182\2\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\4\107\2\u0183\16\107"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\2\107"+
+ "\2\u0184\20\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\u0183\1\u0185\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\u0184\1\u0186\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\10\107"+
+ "\2\u0187\12\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\u0187\1\u0188\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\20\107\2\u0189\2\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0189\1\u018a\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\12\107\2\u018b\10\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\u018b\1\u018c\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\20\107\2\u018d\2\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\u018d"+
+ "\1\u018e\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\16\107\2\u018f\4\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u018f\1\u0190"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\12\107\2\u0191\10\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u0191\1\u0192\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\6\54\2\u0193\14\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\20\54"+
+ "\2\u0194\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\10\54\2\u0195\12\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0196"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0197"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\6\54\2\u0198\14\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\u0199\1\0\1\54\1\0\2\54\1\u0199\2\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\22\54"+
+ "\2\u019a\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\4\54\1\u019b\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\2\u019c\16\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\2\54\2\u019d\16\54\2\u019e\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\u019f\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\u01a0\2\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\u01a1\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\4\54\2\u01a2\16\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u01a3"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\10\54\2\u01a4\6\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\12\54\2\u01a5\10\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u01a6\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\u01a7\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\22\54\2\u01a8\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u01a9\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\u01aa\1\0\2\107\1\0\24\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\0\14\107\2\u01ab"+
+ "\2\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\u01aa\1\u01ac\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\u01ab\1\u01ad\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\12\107\2\u01ae\10\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u01ae\1\u01af\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\u01b0\1\0\1\107\1\0\2\107\1\u01b0\2\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\24\107"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\u01b0\1\0\1\12\1\0\2\107"+
+ "\1\u01b1\2\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\4\107"+
+ "\2\u01b2\16\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\u01b2\1\u01b3\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\24\107\1\0\10\107\2\u01b4\6\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\u01b4\1\u01b5\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\24\107\1\0\12\107\2\u01b6\4\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u01b6\1\u01b7\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u01b8\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\u01b9\1\0\1\54\1\0\2\54\1\u01b9\2\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\6\54\2\u01ba"+
+ "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\10\54\2\u01bb\2\54\2\u01bc\6\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u01bd\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u01be\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u01bf\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\22\54\2\u01c0"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\u01c1\1\0\2\54\1\0\24\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\6\54"+
+ "\2\u01c2\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\24\54\1\0\2\54\2\u01c3\14\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\16\54\2\u01c4\4\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\2\54\2\u01c5\20\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\16\54"+
+ "\2\u01c6\4\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\22\54\2\u01c7\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u01c8\2\54\1\0\10\54\2\u01c9"+
+ "\6\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\14\54\2\u01ca"+
+ "\6\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\22\54\2\u01cb\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\u01cc\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\u01cd\2\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\10\54\2\u01ce\12\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\24\107\1\0\2\u01cf"+
+ "\16\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\u01cf\1\u01d0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\107\1\0\2\107\1\0\14\107\2\u01d1\6\107"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u01d1\1\u01d2"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
+ "\1\107\2\0\2\u01d3\1\0\2\107\1\0\24\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\u01d3\1\u01d4\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\u01d5\1\0\2\107\1\0\24\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\u01d5\1\u01d6\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\14\107\2\u01d7\6\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u01d7\1\u01d8\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\u01d9\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\14\54\2\u01da\6\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\u01db\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\u01dc\2\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\20\54\2\u01dd\2\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\2\u01de"+
+ "\16\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u01df\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\10\54\2\u01e0"+
+ "\12\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\12\54\2\u01e1\4\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u01e2\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\u01e3\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\12\54\2\u01e4\10\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\20\54\2\u01e5"+
+ "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\2\u01e6\16\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\u01e7\1\0\1\54"+
+ "\1\0\2\54\1\u01e7\2\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\12\54\2\u01e8\10\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\107\1\0\1\107\1\0\5\107\1\110\1\107"+
+ "\2\0\2\u01e9\1\0\2\107\1\0\24\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\u01e9\1\u01ea\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\u01eb\1\0\2\107\1\0\6\107\2\u01ec\6\107\2\u01ed"+
+ "\4\107\1\0\20\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\u01eb\1\u01ee\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\u01ec\1\u01ef\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\u01ed\1\u01f0\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\24\107"+
+ "\1\0\2\u01f1\16\107\1\0\2\107\4\0\2\107\1\0"+
+ "\1\107\3\0\1\107\5\0\1\107\1\0\1\12\1\0"+
+ "\2\107\3\12\1\110\1\12\2\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\u01f1\1\u01f2\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\4\0\1\107\1\12\1\0\1\12"+
+ "\3\0\1\107\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\6\107"+
+ "\2\u01f3\14\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\u01f3\1\u01f4\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\20\54\2\u01f5\2\54\1\0\10\54\2\u01f6\6\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\20\54\2\u01f7\2\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\6\54\2\u01f8"+
+ "\14\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\u01f9\1\0\1\54\1\0"+
+ "\2\54\1\u01f9\2\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\u01fa\1\0"+
+ "\1\54\1\0\2\54\1\u01fa\2\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u01fb\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\16\54\2\u01fc"+
+ "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\24\54\1\0\20\54\1\0\2\54\4\0\2\u01fd\1\0"+
+ "\1\54\3\0\1\54\5\0\1\u01fe\1\0\1\54\1\0"+
+ "\2\54\1\u01fe\2\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u01ff\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\4\54\1\u0200\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\14\54\2\u0201\6\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\107\1\0\1\107\1\0\5\107"+
+ "\1\110\1\107\2\0\2\107\1\0\2\107\1\0\4\107"+
+ "\2\u0202\16\107\1\0\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\5\0\1\107\1\0\1\12"+
+ "\1\0\2\107\3\12\1\110\1\12\2\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\u0202\1\u0203\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\4\0\1\107\1\12\1\0"+
+ "\1\12\3\0\1\107\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\14\107\2\u0204\6\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\20\107\2\u0205\2\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\6\107\2\u0206\14\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0204\1\u0207\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\u0205\1\u0208\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0206\1\u0209\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\u020a"+
+ "\1\0\2\107\1\0\24\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\u020a\1\u020b\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u020c\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\u020d\1\0\1\54\1\0\2\54\1\u020d\2\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u020e\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u020f\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\u0210\1\0\2\54\1\0\24\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\20\54\2\u0211"+
+ "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\6\54\2\u0212\14\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u0213\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\u0214\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\u0215\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u0216\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\20\54\2\u0217"+
+ "\2\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\107\1\0\1\107\1\0"+
+ "\5\107\1\110\1\107\2\0\2\107\1\0\2\107\1\0"+
+ "\6\107\2\u0218\14\107\1\0\20\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\12\1\0\2\107\3\12\1\110\1\12\2\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u0218\1\u0219\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\0\1\107\1\12\4\0\1\107\1\12"+
+ "\1\0\1\12\3\0\1\107\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\24\107\1\0\2\u021a\16\107\1\0\2\107\4\0"+
+ "\2\107\1\0\1\107\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\22\107\2\u021b\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\20\107\2\u021c\2\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\u021a\1\u021d\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\u021b\1\u021e\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u021c\1\u021f"+
+ "\1\107\1\12\1\0\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\4\107\2\u0220\16\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\u0220\1\u0221\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\u0222"+
+ "\1\0\2\54\1\0\24\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\22\54\2\u0223\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\16\54\2\u0224\4\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\16\54\2\u0225"+
+ "\4\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\u0226\1\0\1\54\1\0"+
+ "\2\54\1\u0226\2\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\6\54\2\u0227\14\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u0228\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\2\54\2\u0229"+
+ "\20\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\20\54\2\u022a\2\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\24\54\1\0\10\54\2\u022b\6\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\0\16\107\2\u022c"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\u022c\1\u022d\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\u022e\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\0\2\107\2\u022f"+
+ "\14\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\107\1\0\5\107\1\110"+
+ "\1\107\2\0\2\107\1\0\2\107\1\0\22\107\2\u0230"+
+ "\1\0\20\107\1\0\2\107\4\0\2\107\1\0\1\107"+
+ "\3\0\1\107\5\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u022e\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\u022f\1\u0231\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\107\1\12\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\u0230\1\u0232\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\6\107\2\u0233\14\107\1\0"+
+ "\20\107\1\0\2\107\4\0\2\107\1\0\1\107\3\0"+
+ "\1\107\5\0\1\107\1\0\1\12\1\0\2\107\3\12"+
+ "\1\110\1\12\2\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\0\1\107\1\12\1\107\1\12\1\107\1\12\1\u0233"+
+ "\1\u0234\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\0\1\107"+
+ "\1\12\4\0\1\107\1\12\1\0\1\12\3\0\1\107"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\16\54\2\u0235\4\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\14\54"+
+ "\2\u0236\6\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\4\54\2\u0237\16\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\4\54\2\u0238\16\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\u0239\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\10\54\2\u023a\12\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\6\54"+
+ "\2\u023b\14\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\6\54\2\u023c\14\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\u023d"+
+ "\1\0\1\54\1\0\2\54\1\u023d\2\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\7\0\1\u023e\7\0\1\u023f\67\0\1\u023e\11\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\u0240"+
+ "\1\0\2\107\1\0\24\107\1\0\20\107\1\0\2\107"+
+ "\4\0\2\107\1\0\1\107\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\6\107\2\u0241\14\107\1\0\20\107"+
+ "\1\0\2\107\4\0\2\107\1\0\1\107\3\0\1\107"+
+ "\5\0\1\107\1\0\1\12\1\0\2\107\3\12\1\110"+
+ "\1\12\2\0\1\u0240\1\u0242\1\0\1\107\1\12\1\0"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\0\1\107\1\12"+
+ "\4\0\1\107\1\12\1\0\1\12\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0241\1\u0243\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\107\1\0\5\107\1\110\1\107\2\0\2\107"+
+ "\1\0\2\107\1\0\24\107\1\0\16\107\2\u0244\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\u0244\1\u0245\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\4\54\2\u0246\16\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\20\54\2\u0247\2\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\20\54"+
+ "\2\u0248\2\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\20\54\2\u0249\2\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\5\0\1\54"+
+ "\1\0\1\54\1\0\5\54\1\0\1\54\2\0\2\54"+
+ "\1\0\2\54\1\0\16\54\2\u024a\4\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\12\54\2\u024b\10\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\16\54"+
+ "\2\u024c\4\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\u024d\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\u024e\1\0\2\54"+
+ "\1\0\24\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\7\0\1\u023e\6\0\1\u024f"+
+ "\1\u023e\67\0\1\u023e\22\0\1\u024f\102\0\1\107\1\0"+
+ "\1\107\1\0\5\107\1\110\1\107\2\0\2\107\1\0"+
+ "\2\107\1\0\6\107\2\u0250\14\107\1\0\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\107\1\0\5\107\1\110\1\107\2\0"+
+ "\2\107\1\0\2\107\1\0\24\107\1\u0251\20\107\1\0"+
+ "\2\107\4\0\2\107\1\0\1\107\3\0\1\107\5\0"+
+ "\1\107\1\0\1\12\1\0\2\107\3\12\1\110\1\12"+
+ "\2\0\1\107\1\12\1\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\u0250\1\u0252\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\0\1\107\1\12\4\0"+
+ "\1\107\1\12\1\0\1\12\3\0\1\107\5\0\1\107"+
+ "\1\0\1\12\1\0\2\107\3\12\1\110\1\12\2\0"+
+ "\1\107\1\12\1\0\1\107\1\12\1\0\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\u0251\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\0\1\107\1\12\4\0\1\107"+
+ "\1\12\1\0\1\12\3\0\1\107\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u0253\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\24\54\1\0\10\54\2\u0254"+
+ "\6\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\2\54\2\u0255"+
+ "\20\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\2\54\2\u0256\20\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\4\54\2\u0257\16\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u0258\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\24\54\1\0"+
+ "\2\u0259\16\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\16\54"+
+ "\2\u025a\4\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\107\1\0\1\107"+
+ "\1\0\5\107\1\110\1\107\2\0\2\107\1\0\2\107"+
+ "\1\0\24\107\1\u025b\20\107\1\0\2\107\4\0\2\107"+
+ "\1\0\1\107\3\0\1\107\7\0\1\u025c\7\0\1\u025d"+
+ "\67\0\1\u025c\11\0\1\107\1\0\1\12\1\0\2\107"+
+ "\3\12\1\110\1\12\2\0\1\107\1\12\1\0\1\107"+
+ "\1\12\1\0\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\107\1\12"+
+ "\1\107\1\12\1\107\1\12\1\107\1\12\1\u025b\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\107"+
+ "\1\12\1\107\1\12\1\107\1\12\1\107\1\12\1\0"+
+ "\1\107\1\12\4\0\1\107\1\12\1\0\1\12\3\0"+
+ "\1\107\5\0\1\54\1\0\1\54\1\0\5\54\1\0"+
+ "\1\54\2\0\2\54\1\0\2\54\1\0\2\54\2\u025e"+
+ "\20\54\1\0\20\54\1\0\2\54\4\0\2\54\1\0"+
+ "\1\54\3\0\1\54\5\0\1\54\1\0\1\54\1\0"+
+ "\5\54\1\0\1\54\2\0\2\54\1\0\2\54\1\0"+
+ "\14\54\2\u025f\6\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\u0260\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\u0261\1\0"+
+ "\2\54\1\0\24\54\1\0\20\54\1\0\2\54\4\0"+
+ "\2\54\1\0\1\54\3\0\1\54\5\0\1\54\1\0"+
+ "\1\54\1\0\5\54\1\0\1\54\2\0\2\54\1\0"+
+ "\2\54\1\0\20\54\2\u0262\2\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54\5\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\54\1\0\2\54\1\0\14\54\2\u0263\6\54\1\0"+
+ "\20\54\1\0\2\54\4\0\2\54\1\0\1\54\3\0"+
+ "\1\54\7\0\1\u0264\7\0\1\u0265\67\0\1\u0264\13\0"+
+ "\1\u025c\6\0\1\u0266\1\u025c\67\0\1\u025c\22\0\1\u0266"+
+ "\102\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\u0267\1\0\2\54\1\0\24\54\1\0\20\54"+
+ "\1\0\2\54\4\0\2\54\1\0\1\54\3\0\1\54"+
+ "\5\0\1\54\1\0\1\54\1\0\5\54\1\0\1\54"+
+ "\2\0\2\54\1\0\2\54\1\0\16\54\2\u0268\4\54"+
+ "\1\0\20\54\1\0\2\54\4\0\2\54\1\0\1\54"+
+ "\3\0\1\54\5\0\1\54\1\0\1\54\1\0\5\54"+
+ "\1\0\1\54\2\0\2\54\1\0\2\54\1\0\2\54"+
+ "\2\u0269\20\54\1\0\20\54\1\0\2\54\4\0\2\54"+
+ "\1\0\1\54\3\0\1\54\5\0\1\54\1\0\1\54"+
+ "\1\0\5\54\1\0\1\54\2\0\2\54\1\0\2\54"+
+ "\1\0\16\54\2\u026a\4\54\1\0\20\54\1\0\2\54"+
+ "\4\0\2\54\1\0\1\54\3\0\1\54\7\0\1\u0264"+
+ "\6\0\1\u026b\1\u0264\67\0\1\u0264\22\0\1\u026b\102\0"+
+ "\1\54\1\0\1\54\1\0\5\54\1\0\1\54\2\0"+
+ "\2\u026c\1\0\2\54\1\0\24\54\1\0\20\54\1\0"+
+ "\2\54\4\0\2\54\1\0\1\54\3\0\1\54";
- private static int[] zzUnpackTrans() {
- int[] result = new int[40326];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[39292];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\3\0\1\11\36\1\1\11\1\1\1\11\1\1\1\11"+
+ "\1\1\1\11\1\1\1\11\23\1\1\11\1\1\4\11"+
+ "\1\1\1\11\1\0\1\11\2\0\2\1\1\0\1\1"+
+ "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"+
+ "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"+
+ "\1\0\1\1\1\0\1\1\3\11\1\1\4\11\1\1"+
+ "\2\11\3\1\2\0\1\1\1\0\41\1\2\0\2\1"+
+ "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"+
+ "\1\0\3\1\1\0\1\1\1\0\1\1\1\0\1\1"+
+ "\1\0\1\1\1\0\1\1\1\0\1\1\2\0\3\1"+
+ "\2\0\41\1\2\0\2\1\1\0\5\1\1\0\1\1"+
+ "\1\0\1\1\1\0\1\1\1\0\3\1\1\0\3\1"+
+ "\1\0\1\1\1\11\1\0\3\1\1\0\42\1\3\0"+
+ "\3\1\1\0\5\1\1\0\1\1\1\0\1\1\1\0"+
+ "\1\1\1\0\4\1\1\11\40\1\2\0\3\1\1\0"+
+ "\1\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"+
+ "\1\1\1\0\37\1\2\0\2\1\1\0\1\1\1\0"+
+ "\1\1\1\0\1\1\1\0\3\1\1\0\30\1\1\0"+
+ "\3\1\1\0\1\1\1\0\1\1\1\0\3\1\1\0"+
+ "\30\1\1\0\1\1\1\0\3\1\1\0\1\1\1\0"+
+ "\21\1\1\0\1\1\3\0\3\1\1\0\20\1\1\0"+
+ "\1\1\3\0\3\1\1\0\15\1\1\0\1\1\3\0"+
+ "\3\1\1\0\15\1\3\0\2\1\1\0\12\1\4\0"+
+ "\15\1\1\11\2\0\11\1\3\0\6\1\2\0\1\11"+
+ "\4\1\1\11\1\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[620];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
+ /** the input device */
+ private java.io.Reader zzReader;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** the current state of the DFA */
+ private int zzState;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\3\0\1\11\35\1\1\11\1\1\1\11\1\1\1\11"
- + "\2\1\1\11\1\1\1\11\23\1\1\11\1\1\4\11"
- + "\1\1\1\11\1\0\1\11\2\0\2\1\1\0\1\1"
- + "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"
- + "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"
- + "\1\0\1\1\1\0\1\1\1\11\1\1\1\11\1\1"
- + "\1\11\1\1\6\11\3\1\2\0\1\1\1\0\41\1"
- + "\2\0\2\1\1\0\1\1\1\0\1\1\1\0\1\1"
- + "\1\0\1\1\1\0\3\1\1\0\1\1\1\0\1\1"
- + "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\1\1"
- + "\1\11\1\0\3\1\2\0\41\1\2\0\2\1\1\0"
- + "\5\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"
- + "\3\1\1\0\3\1\1\0\1\1\1\11\3\1\1\0"
- + "\42\1\3\0\3\1\1\0\5\1\1\0\1\1\1\0"
- + "\1\1\1\0\1\1\1\0\4\1\1\11\40\1\2\0"
- + "\3\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"
- + "\1\1\1\0\1\1\1\0\37\1\2\0\2\1\1\0"
- + "\1\1\1\0\1\1\1\0\1\1\1\0\3\1\1\0"
- + "\30\1\1\0\3\1\1\0\1\1\1\0\1\1\1\0"
- + "\3\1\1\0\30\1\1\0\1\1\1\0\3\1\1\0"
- + "\1\1\1\0\21\1\1\0\1\1\3\0\3\1\1\0"
- + "\20\1\1\0\1\1\3\0\3\1\1\0\15\1\1\0"
- + "\1\1\3\0\3\1\1\0\15\1\3\0\2\1\1\0"
- + "\12\1\4\0\15\1\1\11\2\0\11\1\3\0\6\1"
- + "\2\0\1\11\4\1\1\11\1\1";
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[620];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- int j = offset; /* index in unpacked array */
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * the input device
- */
- private java.io.Reader zzReader;
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- /**
- * the current state of the DFA
- */
- private int zzState;
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
+ /* user code: */
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
StringBuffer string = new StringBuffer();
boolean isMultiname = false;
long multinameId = 0;
@@ -2796,10 +2628,9 @@ public final class Flasm3Lexer {
}
ParsedSymbol last;
-
- public ParsedSymbol lex() throws java.io.IOException, AVM2ParseException {
+ public ParsedSymbol lex() throws java.io.IOException, AVM2ParseException{
ParsedSymbol ret = null;
- if (!pushedBack.isEmpty()) {
+ if (!pushedBack.isEmpty()){
ret = last = pushedBack.pop();
} else {
ret = last = yylex();
@@ -2807,934 +2638,805 @@ public final class Flasm3Lexer {
return ret;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public Flasm3Lexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public Flasm3Lexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 2916) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 2918) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ParsedSymbol yylex() throws java.io.IOException, AVM2ParseException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
}
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
}
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
-
- // totalRead = 0: End of stream
- return true;
- }
-
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
-
- zzEndRead = zzStartRead; /* invalidate buffer */
-
- if (zzReader != null) {
- zzReader.close();
- }
- }
-
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
-
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
-
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
-
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
-
- zzMarkedPos -= number;
- }
-
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException
- */
- public ParsedSymbol yylex() throws java.io.IOException, AVM2ParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- boolean zzR = false;
- int zzCh;
- int zzCharCount;
- for (zzCurrentPosL = zzStartRead;
- zzCurrentPosL < zzMarkedPosL;
- zzCurrentPosL += zzCharCount) {
- zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
- zzCharCount = Character.charCount(zzCh);
- switch (zzCh) {
- case '\u000B':
- case '\u000C':
- case '\u0085':
- case '\u2028':
- case '\u2029':
- yyline++;
- yycolumn = 0;
- zzR = false;
- break;
- case '\r':
- yyline++;
- yycolumn = 0;
- zzR = true;
- break;
- case '\n':
- if (zzR) {
- zzR = false;
- } else {
- yyline++;
- yycolumn = 0;
- }
- break;
- default:
- zzR = false;
- yycolumn += zzCharCount;
- }
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- if (zzR) {
- // peek one character ahead if it is \n (if we have counted one line too much)
- boolean zzPeek;
- if (zzMarkedPosL < zzEndReadL) {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- } else if (zzAtEOF) {
- zzPeek = false;
- } else {
- boolean eof = zzRefill();
- zzEndReadL = zzEndRead;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- if (eof) {
- zzPeek = false;
- } else {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- }
- }
- if (zzPeek) {
- yyline--;
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
- zzAction = -1;
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- }
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 102:
- break;
- case 2: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
- }
- case 103:
- break;
- case 3: {
- string.append(yytext());
- }
- case 104:
- break;
- case 4: {
- throw new AVM2ParseException("Unterminated string at end of line", yyline + 1);
- }
- case 105:
- break;
- case 5: {
- yybegin(PARAMETERS);
- // length also includes the trailing quote
- if (isMultiname) {
- return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, multinameId);
- } else {
- return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString());
- }
- }
- case 106:
- break;
- case 6: {
- yybegin(YYINITIAL);
- }
- case 107:
- break;
- case 7: {
- return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));
- }
- case 108:
- break;
- case 8: {
- return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext());
- }
- case 109:
- break;
- case 9: {
- return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_OPEN, yytext());
- }
- case 110:
- break;
- case 10: {
- return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
- }
- case 111:
- break;
- case 11: {
- return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_CLOSE, yytext());
- }
- case 112:
- break;
- case 12: {
- isMultiname = false;
- yybegin(STRING);
- string.setLength(0);
- }
- case 113:
- break;
- case 13: {
- return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_OPEN, yytext());
- }
- case 114:
- break;
- case 14: {
- return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_CLOSE, yytext());
- }
- case 115:
- break;
- case 15: {
- return new ParsedSymbol(ParsedSymbol.TYPE_LOWERTHAN, yytext());
- }
- case 116:
- break;
- case 16: {
- return new ParsedSymbol(ParsedSymbol.TYPE_GREATERTHAN, yytext());
- }
- case 117:
- break;
- case 17: {
- return new ParsedSymbol(ParsedSymbol.TYPE_COMMA, yytext());
- }
- case 118:
- break;
- case 18: {
- String s = yytext();
- return new ParsedSymbol(ParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
- }
- case 119:
- break;
- case 19: {
- throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 120:
- break;
- case 20: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 121:
- break;
- case 21: {
- string.append('\b');
- }
- case 122:
- break;
- case 22: {
- string.append('\\');
- }
- case 123:
- break;
- case 23: {
- string.append('\t');
- }
- case 124:
- break;
- case 24: {
- string.append('\n');
- }
- case 125:
- break;
- case 25: {
- string.append('\r');
- }
- case 126:
- break;
- case 26: {
- string.append('\f');
- }
- case 127:
- break;
- case 27: {
- string.append('\"');
- }
- case 128:
- break;
- case 28: {
- string.append('\'');
- }
- case 129:
- break;
- case 29: {
- return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
- }
- case 130:
- break;
- case 30: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TO, yytext());
- }
- case 131:
- break;
- case 31: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRY, yytext());
- }
- case 132:
- break;
- case 32: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_BODY, yytext());
- }
- case 133:
- break;
- case 33: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CODE, yytext());
- }
- case 134:
- break;
- case 34: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());
- }
- case 135:
- break;
- case 35: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FLAG, yytext());
- }
- case 136:
- break;
- case 36: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 137:
- break;
- case 37: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRUE, yytext());
- }
- case 138:
- break;
- case 38: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPE, yytext());
- }
- case 139:
- break;
- case 39: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());
- }
- case 140:
- break;
- case 40: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NULL, yytext());
- }
- case 141:
- break;
- case 41: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOT, yytext());
- }
- case 142:
- break;
- case 42: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FROM, yytext());
- }
- case 143:
- break;
- case 43: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UTF8, yytext());
- }
- case 144:
- break;
- case 44: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAM, yytext());
- }
- case 145:
- break;
- case 45: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRAIT, yytext());
- }
- case 146:
- break;
- case 46: {
- isMultiname = true;
- String s = yytext();
- multinameId = Long.parseLong(s.substring(2, s.length() - 2));
- yybegin(STRING);
- string.setLength(0);
- }
- case 147:
- break;
- case 47: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CONST, yytext());
- }
- case 148:
- break;
- case 48: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CLASS, yytext());
- }
- case 149:
- break;
- case 49: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FINAL, yytext());
- }
- case 150:
- break;
- case 50: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FALSE, yytext());
- }
- case 151:
- break;
- case 51: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAME, yytext());
- }
- case 152:
- break;
- case 52: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_VALUE, yytext());
- }
- case 153:
- break;
- case 53: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD, yytext());
- }
- case 154:
- break;
- case 54: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TARGET, yytext());
- }
- case 155:
- break;
- case 55: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SETTER, yytext());
- }
- case 156:
- break;
- case 56: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOTID, yytext());
- }
- case 157:
- break;
- case 57: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DISPID, yytext());
- }
- case 158:
- break;
- case 58: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DOUBLE, yytext());
- }
- case 159:
- break;
- case 59: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_GETTER, yytext());
- }
- case 160:
- break;
- case 60: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAMEA, yytext());
- }
- case 161:
- break;
- case 61: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RETURNS, yytext());
- }
- case 162:
- break;
- case 62: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INTEGER, yytext());
- }
- case 163:
- break;
- case 63: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAME, yytext());
- }
- case 164:
- break;
- case 64: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DECIMAL, yytext());
- }
- case 165:
- break;
- case 65: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSTACK, yytext());
- }
- case 166:
- break;
- case 66: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OPTIONAL, yytext());
- }
- case 167:
- break;
- case 67: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METADATA, yytext());
- }
- case 168:
- break;
- case 68: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICIT, yytext());
- }
- case 169:
- break;
- case 69: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPENAME, yytext());
- }
- case 170:
- break;
- case 70: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OVERRIDE, yytext());
- }
- case 171:
- break;
- case 71: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SET_DXNS, yytext());
- }
- case 172:
- break;
- case 72: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEA, yytext());
- }
- case 173:
- break;
- case 73: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEL, yytext());
- }
- case 174:
- break;
- case 74: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FUNCTION, yytext());
- }
- case 175:
- break;
- case 75: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UINTEGER, yytext());
- }
- case 176:
- break;
- case 76: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAMNAME, yytext());
- }
- case 177:
- break;
- case 77: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAME, yytext());
- }
- case 178:
- break;
- case 78: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_REST, yytext());
- }
- case 179:
- break;
- case 79: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAMESPACE, yytext());
- }
- case 180:
- break;
- case 80: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMELA, yytext());
- }
- case 181:
- break;
- case 81: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UNDEFINED, yytext());
- }
- case 182:
- break;
- case 82: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_LOCALCOUNT, yytext());
- }
- case 183:
- break;
- case 83: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEA, yytext());
- }
- case 184:
- break;
- case 84: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEL, yytext());
- }
- case 185:
- break;
- case 85: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMELA, yytext());
- }
- case 186:
- break;
- case 86: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_IGNORE_REST, yytext());
- }
- case 187:
- break;
- case 87: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_OPTIONAL, yytext());
- }
- case 188:
- break;
- case 88: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSCOPEDEPTH, yytext());
- }
- case 189:
- break;
- case 89: {
- yybegin(PARAMETERS);
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INITSCOPEDEPTH, yytext());
- }
- case 190:
- break;
- case 90: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ARGUMENTS, yytext());
- }
- case 191:
- break;
- case 91: {
- String s = yytext();
- return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_END, Integer.parseInt(s.substring(13, s.length() - 1)));
- }
- case 192:
- break;
- case 92: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ACTIVATION, yytext());
- }
- case 193:
- break;
- case 93: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_PARAM_NAMES, yytext());
- }
- case 194:
- break;
- case 94: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGENAMESPACE, yytext());
- }
- case 195:
- break;
- case 95: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PRIVATENAMESPACE, yytext());
- }
- case 196:
- break;
- case 96: {
- String s = yytext();
- return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_START, Integer.parseInt(s.substring(15, s.length() - 1)));
- }
- case 197:
- break;
- case 97: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICITNAMESPACE, yytext());
- }
- case 198:
- break;
- case 98: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGEINTERNALNS, yytext());
- }
- case 199:
- break;
- case 99: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_STATICPROTECTEDNS, yytext());
- }
- case 200:
- break;
- case 100: {
- String s = yytext();
- return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_TARGET, Integer.parseInt(s.substring(16, s.length() - 1)));
- }
- case 201:
- break;
- case 101: {
- return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PROTECTEDNAMESPACE, yytext());
- }
- case 202:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return new ParsedSymbol(ParsedSymbol.TYPE_EOF);
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 101: break;
+ case 2:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));
+ }
+ case 102: break;
+ case 3:
+ { yybegin(PARAMETERS);
+ return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
+ }
+ case 103: break;
+ case 4:
+ { string.append(yytext());
+ }
+ case 104: break;
+ case 5:
+ { throw new AVM2ParseException("Unterminated string at end of line", yyline + 1);
+ }
+ case 105: break;
+ case 6:
+ { yybegin(PARAMETERS);
+ // length also includes the trailing quote
+ if (isMultiname){
+ return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, multinameId);
+ } else {
+ return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString());
+ }
+ }
+ case 106: break;
+ case 7:
+ { yybegin(YYINITIAL);
+ }
+ case 107: break;
+ case 8:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext());
+ }
+ case 108: break;
+ case 9:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_OPEN, yytext());
+ }
+ case 109: break;
+ case 10:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
+ }
+ case 110: break;
+ case 11:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_CLOSE, yytext());
+ }
+ case 111: break;
+ case 12:
+ { isMultiname = false;
+ yybegin(STRING);
+ string.setLength(0);
+ }
+ case 112: break;
+ case 13:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_OPEN, yytext());
+ }
+ case 113: break;
+ case 14:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_CLOSE, yytext());
+ }
+ case 114: break;
+ case 15:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_LOWERTHAN, yytext());
+ }
+ case 115: break;
+ case 16:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_GREATERTHAN, yytext());
+ }
+ case 116: break;
+ case 17:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_COMMA, yytext());
+ }
+ case 117: break;
+ case 18:
+ { String s = yytext();
+ return new ParsedSymbol(ParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
+ }
+ case 118: break;
+ case 19:
+ { throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 119: break;
+ case 20:
+ { string.append('\b');
+ }
+ case 120: break;
+ case 21:
+ { string.append('\\');
+ }
+ case 121: break;
+ case 22:
+ { string.append('\t');
+ }
+ case 122: break;
+ case 23:
+ { string.append('\n');
+ }
+ case 123: break;
+ case 24:
+ { string.append('\r');
+ }
+ case 124: break;
+ case 25:
+ { string.append('\f');
+ }
+ case 125: break;
+ case 26:
+ { string.append('\"');
+ }
+ case 126: break;
+ case 27:
+ { string.append('\'');
+ }
+ case 127: break;
+ case 28:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
+ }
+ case 128: break;
+ case 29:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TO, yytext());
+ }
+ case 129: break;
+ case 30:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRY, yytext());
+ }
+ case 130: break;
+ case 31:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_BODY, yytext());
+ }
+ case 131: break;
+ case 32:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CODE, yytext());
+ }
+ case 132: break;
+ case 33:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());
+ }
+ case 133: break;
+ case 34:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FLAG, yytext());
+ }
+ case 134: break;
+ case 35:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 135: break;
+ case 36:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRUE, yytext());
+ }
+ case 136: break;
+ case 37:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPE, yytext());
+ }
+ case 137: break;
+ case 38:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());
+ }
+ case 138: break;
+ case 39:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NULL, yytext());
+ }
+ case 139: break;
+ case 40:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOT, yytext());
+ }
+ case 140: break;
+ case 41:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FROM, yytext());
+ }
+ case 141: break;
+ case 42:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UTF8, yytext());
+ }
+ case 142: break;
+ case 43:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAM, yytext());
+ }
+ case 143: break;
+ case 44:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRAIT, yytext());
+ }
+ case 144: break;
+ case 45:
+ { isMultiname = true;
+ String s = yytext();
+ multinameId = Long.parseLong(s.substring(2, s.length() - 2));
+ yybegin(STRING);
+ string.setLength(0);
+ }
+ case 145: break;
+ case 46:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CONST, yytext());
+ }
+ case 146: break;
+ case 47:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CLASS, yytext());
+ }
+ case 147: break;
+ case 48:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FINAL, yytext());
+ }
+ case 148: break;
+ case 49:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FALSE, yytext());
+ }
+ case 149: break;
+ case 50:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAME, yytext());
+ }
+ case 150: break;
+ case 51:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_VALUE, yytext());
+ }
+ case 151: break;
+ case 52:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD, yytext());
+ }
+ case 152: break;
+ case 53:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TARGET, yytext());
+ }
+ case 153: break;
+ case 54:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SETTER, yytext());
+ }
+ case 154: break;
+ case 55:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOTID, yytext());
+ }
+ case 155: break;
+ case 56:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DISPID, yytext());
+ }
+ case 156: break;
+ case 57:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DOUBLE, yytext());
+ }
+ case 157: break;
+ case 58:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_GETTER, yytext());
+ }
+ case 158: break;
+ case 59:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAMEA, yytext());
+ }
+ case 159: break;
+ case 60:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RETURNS, yytext());
+ }
+ case 160: break;
+ case 61:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INTEGER, yytext());
+ }
+ case 161: break;
+ case 62:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAME, yytext());
+ }
+ case 162: break;
+ case 63:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DECIMAL, yytext());
+ }
+ case 163: break;
+ case 64:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSTACK, yytext());
+ }
+ case 164: break;
+ case 65:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OPTIONAL, yytext());
+ }
+ case 165: break;
+ case 66:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METADATA, yytext());
+ }
+ case 166: break;
+ case 67:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICIT, yytext());
+ }
+ case 167: break;
+ case 68:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPENAME, yytext());
+ }
+ case 168: break;
+ case 69:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OVERRIDE, yytext());
+ }
+ case 169: break;
+ case 70:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SET_DXNS, yytext());
+ }
+ case 170: break;
+ case 71:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEA, yytext());
+ }
+ case 171: break;
+ case 72:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEL, yytext());
+ }
+ case 172: break;
+ case 73:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FUNCTION, yytext());
+ }
+ case 173: break;
+ case 74:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UINTEGER, yytext());
+ }
+ case 174: break;
+ case 75:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAMNAME, yytext());
+ }
+ case 175: break;
+ case 76:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAME, yytext());
+ }
+ case 176: break;
+ case 77:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_REST, yytext());
+ }
+ case 177: break;
+ case 78:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAMESPACE, yytext());
+ }
+ case 178: break;
+ case 79:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMELA, yytext());
+ }
+ case 179: break;
+ case 80:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UNDEFINED, yytext());
+ }
+ case 180: break;
+ case 81:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_LOCALCOUNT, yytext());
+ }
+ case 181: break;
+ case 82:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEA, yytext());
+ }
+ case 182: break;
+ case 83:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEL, yytext());
+ }
+ case 183: break;
+ case 84:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMELA, yytext());
+ }
+ case 184: break;
+ case 85:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_IGNORE_REST, yytext());
+ }
+ case 185: break;
+ case 86:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_OPTIONAL, yytext());
+ }
+ case 186: break;
+ case 87:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSCOPEDEPTH, yytext());
+ }
+ case 187: break;
+ case 88:
+ { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INITSCOPEDEPTH, yytext());
+ }
+ case 188: break;
+ case 89:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ARGUMENTS, yytext());
+ }
+ case 189: break;
+ case 90:
+ { String s=yytext();
+ return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_END, Integer.parseInt(s.substring(13, s.length() - 1)));
+ }
+ case 190: break;
+ case 91:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ACTIVATION, yytext());
+ }
+ case 191: break;
+ case 92:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_PARAM_NAMES, yytext());
+ }
+ case 192: break;
+ case 93:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGENAMESPACE, yytext());
+ }
+ case 193: break;
+ case 94:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PRIVATENAMESPACE, yytext());
+ }
+ case 194: break;
+ case 95:
+ { String s=yytext();
+ return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_START, Integer.parseInt(s.substring(15, s.length() - 1)));
+ }
+ case 195: break;
+ case 96:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICITNAMESPACE, yytext());
+ }
+ case 196: break;
+ case 97:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGEINTERNALNS, yytext());
+ }
+ case 197: break;
+ case 98:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_STATICPROTECTEDNS, yytext());
+ }
+ case 198: break;
+ case 99:
+ { String s=yytext();
+ return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_TARGET,Integer.parseInt(s.substring(16, s.length() - 1)));
+ }
+ case 199: break;
+ case 100:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PROTECTEDNAMESPACE, yytext());
+ }
+ case 200: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ParsedSymbol(ParsedSymbol.TYPE_EOF);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java
index f67f2f23f..7a3126611 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java
@@ -17,1003 +17,967 @@
* License along with this library.
*/
package com.jpexs.decompiler.flash.abc.avm2.parser.script;
-
import com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3.flex
*/
public final class ActionScriptLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int STRING = 2;
- public static final int CHARLITERAL = 4;
- public static final int XMLOPENTAG = 6;
- public static final int XMLOPENTAGATTRIB = 8;
- public static final int XMLINSTROPENTAG = 10;
- public static final int XMLINSTRATTRIB = 12;
- public static final int XMLCDATA = 14;
- public static final int XMLCOMMENT = 16;
- public static final int XML = 18;
- public static final int OIDENTIFIER = 20;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int STRING = 2;
+ public static final int CHARLITERAL = 4;
+ public static final int XMLOPENTAG = 6;
+ public static final int XMLOPENTAGATTRIB = 8;
+ public static final int XMLINSTROPENTAG = 10;
+ public static final int XMLINSTRATTRIB = 12;
+ public static final int XMLCDATA = 14;
+ public static final int XMLCOMMENT = 16;
+ public static final int XML = 18;
+ public static final int OIDENTIFIER = 20;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
- 8, 8, 9, 9, 10, 10
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7,
+ 8, 8, 9, 9, 10, 10
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\11\0\1\13\1\2\1\113\1\3\1\1\22\0\1\13\1\14\1\33"
- + "\1\0\1\6\1\110\1\105\1\34\1\76\1\77\1\5\1\45\1\103"
- + "\1\15\1\11\1\4\1\35\3\41\4\42\2\21\1\17\1\102\1\12"
- + "\1\32\1\16\1\23\1\111\1\27\1\20\1\25\1\26\1\43\1\20"
- + "\2\10\1\74\4\10\1\75\5\10\1\30\3\10\1\37\2\10\1\24"
- + "\1\46\1\31\1\107\1\10\1\0\1\52\1\50\1\54\1\63\1\44"
- + "\1\40\1\73\1\66\1\61\1\10\1\53\1\64\1\71\1\57\1\56"
- + "\1\67\1\10\1\51\1\55\1\60\1\62\1\72\1\65\1\36\1\70"
- + "\1\10\1\100\1\106\1\101\1\104\6\0\1\113\41\0\1\47\2\0"
- + "\1\6\12\0\1\6\1\0\1\22\2\0\1\6\5\0\2\6\1\112"
- + "\24\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0"
- + "\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0\4\6"
- + "\1\0\1\6\6\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"
- + "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\246\6\1\0\46\6"
- + "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"
- + "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\35\0\13\7"
- + "\5\0\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6\7\7"
- + "\2\0\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6\2\0"
- + "\1\6\20\0\1\6\1\7\36\6\33\7\2\0\131\6\13\7\1\6"
- + "\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0\26\6\4\7"
- + "\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6\3\7\104\0"
- + "\23\6\61\0\40\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"
- + "\2\7\2\0\12\7\1\0\20\6\3\7\1\0\10\6\2\0\2\6"
- + "\2\0\26\6\1\0\7\6\1\0\1\6\3\0\4\6\2\0\1\7"
- + "\1\6\7\7\2\0\2\7\2\0\3\7\1\6\10\0\1\7\4\0"
- + "\2\6\1\0\3\6\2\7\2\0\12\7\2\6\17\0\3\7\1\0"
- + "\6\6\4\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"
- + "\2\6\1\0\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0"
- + "\3\7\3\0\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6"
- + "\1\7\13\0\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0"
- + "\7\6\1\0\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0"
- + "\3\7\1\0\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7"
- + "\21\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"
- + "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"
- + "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"
- + "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"
- + "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"
- + "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"
- + "\2\0\1\6\6\0\1\7\16\0\12\7\20\0\4\7\1\0\10\6"
- + "\1\0\3\6\1\0\27\6\1\0\20\6\3\0\1\6\7\7\1\0"
- + "\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6\2\7"
- + "\2\0\12\7\21\0\3\7\1\0\10\6\1\0\3\6\1\0\27\6"
- + "\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0\3\7"
- + "\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7\2\0"
- + "\12\7\1\0\2\6\16\0\3\7\1\0\10\6\1\0\3\6\1\0"
- + "\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6\10\0"
- + "\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0\2\7"
- + "\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0\7\6"
- + "\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\6\0\12\7"
- + "\2\0\2\7\15\0\60\6\1\7\2\6\7\7\5\0\7\6\10\7"
- + "\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6"
- + "\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6"
- + "\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0"
- + "\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7"
- + "\2\0\4\6\40\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7"
- + "\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0"
- + "\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0"
- + "\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6"
- + "\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0"
- + "\46\6\1\0\1\6\5\0\1\6\2\0\53\6\1\0\u014d\6\1\0"
- + "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"
- + "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"
- + "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"
- + "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"
- + "\32\6\5\0\113\6\3\0\3\7\10\6\7\0\15\6\1\0\4\6"
- + "\3\7\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0"
- + "\3\6\1\0\2\7\14\0\64\6\40\7\3\0\1\6\4\0\1\6"
- + "\1\7\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0"
- + "\51\6\1\7\1\6\5\0\106\6\12\0\37\6\1\0\14\7\4\0"
- + "\14\7\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7"
- + "\7\6\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7"
- + "\1\0\35\7\2\0\13\7\6\0\12\7\15\0\1\6\10\0\16\7"
- + "\102\0\5\7\57\6\21\7\7\6\4\0\12\7\21\0\11\7\14\0"
- + "\3\7\36\6\15\7\2\6\12\7\54\6\16\7\14\0\44\6\24\7"
- + "\10\0\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7"
- + "\4\6\1\7\4\6\3\7\2\6\1\0\2\7\6\0\300\6\66\7"
- + "\6\0\4\7\u0116\6\2\0\6\6\2\0\46\6\2\0\6\6\2\0"
- + "\10\6\1\0\1\6\1\0\1\6\1\0\1\6\1\0\37\6\2\0"
- + "\65\6\1\0\7\6\1\0\1\6\3\0\3\6\1\0\7\6\3\0"
- + "\4\6\2\0\6\6\4\0\15\6\5\0\3\6\1\0\7\6\3\0"
- + "\14\0\2\0\32\0\1\113\1\113\25\0\2\7\23\0\1\7\33\0"
- + "\1\0\1\6\15\0\1\6\20\0\15\6\63\0\15\7\4\0\1\7"
- + "\3\0\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6"
- + "\3\0\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6"
- + "\1\0\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\43\7"
- + "\2\6\4\7\7\0\u0a70\0\57\6\1\0\57\6\1\0\205\6\6\0"
- + "\4\6\3\7\2\6\14\0\46\6\1\0\1\6\5\0\1\6\2\0"
- + "\70\6\7\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0\7\6"
- + "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"
- + "\1\0\7\6\1\0\40\7\57\0\1\6\u01c0\0\21\0\4\0\2\6"
- + "\1\7\31\0\17\7\1\0\5\6\2\0\3\7\2\6\4\0\126\6"
- + "\2\0\2\7\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6"
- + "\3\0\136\6\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cd\6"
- + "\63\0\u048d\6\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6"
- + "\24\0\57\6\1\7\4\0\12\7\1\0\37\6\1\0\1\7\106\6"
- + "\14\7\45\0\11\6\2\0\147\6\2\0\4\6\1\0\36\6\2\0"
- + "\2\6\105\0\13\6\1\7\3\6\1\7\4\6\1\7\27\6\5\7"
- + "\30\0\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7"
- + "\6\6\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7"
- + "\14\0\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\6\0"
- + "\5\6\1\7\12\6\12\7\5\6\1\0\51\6\16\7\11\0\3\6"
- + "\1\7\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\3\7"
- + "\62\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6\1\7"
- + "\1\6\30\0\3\6\2\0\13\6\5\7\2\0\3\6\2\7\12\0"
- + "\6\6\2\0\6\6\2\0\6\6\11\0\7\6\1\0\7\6\1\0"
- + "\53\6\1\0\4\6\4\0\2\6\132\0\43\6\10\7\1\0\2\7"
- + "\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6\4\0\u1800\0"
- + "\u0900\0\u016e\6\2\0\152\6\46\0\7\6\14\0\5\6\5\0\1\6"
- + "\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0\2\6"
- + "\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6\2\0\66\6"
- + "\10\0\40\0\14\6\4\0\20\7\20\0\16\7\5\0\2\7\30\0"
- + "\3\7\40\0\5\6\1\0\207\6\23\0\12\7\7\0\32\6\4\0"
- + "\1\7\1\0\32\6\13\0\131\6\3\0\6\6\2\0\6\6\2\0"
- + "\6\6\2\0\3\6\41\0\2\0\14\6\1\0\32\6\1\0\23\6"
- + "\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6\105\0\65\7"
- + "\210\0\1\7\202\0\35\6\3\0\61\6\17\0\1\7\37\0\40\6"
- + "\20\0\21\6\1\7\10\6\1\7\5\0\46\6\5\7\5\0\36\6"
- + "\2\0\44\6\4\0\10\6\1\0\5\7\52\0\236\6\2\0\12\7"
- + "\126\0\50\6\10\0\64\6\234\0\u0137\6\11\0\26\6\12\0\10\6"
- + "\230\0\6\6\2\0\1\6\1\0\54\6\1\0\2\6\3\0\1\6"
- + "\2\0\27\6\12\0\27\6\11\0\37\6\141\0\26\6\12\0\32\6"
- + "\106\0\70\6\6\0\2\6\100\0\1\6\3\7\1\0\2\7\5\0"
- + "\4\7\4\6\1\0\3\6\1\0\33\6\4\0\3\7\4\0\1\7"
- + "\40\0\35\6\3\0\35\6\43\0\10\6\1\0\34\6\2\7\31\0"
- + "\66\6\12\0\26\6\12\0\23\6\15\0\22\6\156\0\111\6\u03b7\0"
- + "\3\7\65\6\17\7\37\0\12\7\17\0\4\7\55\6\13\7\25\0"
- + "\31\6\7\0\12\7\6\0\3\7\44\6\16\7\1\0\12\7\20\0"
- + "\43\6\1\7\2\0\1\6\11\0\3\7\60\6\16\7\4\6\13\0"
- + "\12\7\1\6\45\0\22\6\1\0\31\6\14\7\170\0\57\6\14\7"
- + "\5\0\12\7\7\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6"
- + "\1\0\7\6\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7"
- + "\2\0\2\7\2\0\3\7\11\0\1\7\5\0\5\6\2\7\2\0"
- + "\7\7\3\0\5\7\u010b\0\60\6\24\7\2\6\1\0\1\6\10\0"
- + "\12\7\246\0\57\6\7\7\2\0\11\7\77\0\60\6\21\7\3\0"
- + "\1\6\13\0\12\7\46\0\53\6\15\7\10\0\12\7\u01d6\0\100\6"
- + "\12\7\25\0\1\6\u01c0\0\71\6\u0507\0\u0399\6\147\0\157\7\u0b91\0"
- + "\u042f\6\u33d1\0\u0239\6\7\0\37\6\1\0\12\7\146\0\36\6\2\0"
- + "\5\7\13\0\60\6\7\7\11\0\4\6\14\0\12\7\11\0\25\6"
- + "\5\0\23\6\u0370\0\105\6\13\0\1\6\56\7\20\0\4\7\15\6"
- + "\u4060\0\2\6\u0bfe\0\153\6\5\0\15\6\3\0\11\6\7\0\12\6"
- + "\3\0\2\7\u14c6\0\5\7\3\0\6\7\10\0\10\7\2\0\7\7"
- + "\36\0\4\7\224\0\3\7\u01bb\0\125\6\1\0\107\6\1\0\2\6"
- + "\2\0\1\6\2\0\2\6\2\0\4\6\1\0\14\6\1\0\1\6"
- + "\1\0\7\6\1\0\101\6\1\0\4\6\2\0\10\6\1\0\7\6"
- + "\1\0\34\6\1\0\4\6\1\0\5\6\1\0\1\6\3\0\7\6"
- + "\1\0\u0154\6\2\0\31\6\1\0\31\6\1\0\37\6\1\0\31\6"
- + "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"
- + "\1\0\31\6\1\0\10\6\2\0\62\7\u1000\0\305\6\13\0\7\7"
- + "\u0529\0\4\6\1\0\33\6\1\0\2\6\1\0\1\6\2\0\1\6"
- + "\1\0\12\6\1\0\4\6\1\0\1\6\1\0\1\6\6\0\1\6"
- + "\4\0\1\6\1\0\1\6\1\0\1\6\1\0\3\6\1\0\2\6"
- + "\1\0\1\6\2\0\1\6\1\0\1\6\1\0\1\6\1\0\1\6"
- + "\1\0\1\6\1\0\2\6\1\0\1\6\2\0\4\6\1\0\7\6"
- + "\1\0\4\6\1\0\4\6\1\0\1\6\1\0\12\6\1\0\21\6"
- + "\5\0\3\6\1\0\5\6\1\0\21\6\u1144\0\ua6d7\6\51\0\u1035\6"
- + "\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u06ed\0"
- + "\360\7\uffff\0\uffff\0\ufe12\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\0\1\13\1\2\1\113\1\3\1\1\22\0\1\13\1\14\1\33"+
+ "\1\0\1\6\1\110\1\105\1\34\1\76\1\77\1\5\1\45\1\103"+
+ "\1\15\1\11\1\4\1\35\3\41\4\42\2\21\1\17\1\102\1\12"+
+ "\1\32\1\16\1\23\1\111\1\27\1\20\1\25\1\26\1\43\1\20"+
+ "\2\10\1\74\4\10\1\75\5\10\1\30\3\10\1\37\2\10\1\24"+
+ "\1\46\1\31\1\107\1\10\1\0\1\52\1\50\1\54\1\63\1\44"+
+ "\1\40\1\73\1\66\1\61\1\10\1\53\1\64\1\71\1\57\1\56"+
+ "\1\67\1\10\1\51\1\55\1\60\1\62\1\72\1\65\1\36\1\70"+
+ "\1\10\1\100\1\106\1\101\1\104\6\0\1\113\41\0\1\47\2\0"+
+ "\1\6\12\0\1\6\1\0\1\22\2\0\1\6\5\0\2\6\1\112"+
+ "\24\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0"+
+ "\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0\4\6"+
+ "\1\0\1\6\6\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6"+
+ "\1\0\123\6\1\0\213\6\1\0\5\7\2\0\246\6\1\0\46\6"+
+ "\2\0\1\6\7\0\47\6\11\0\55\7\1\0\1\7\1\0\2\7"+
+ "\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\35\0\13\7"+
+ "\5\0\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6\7\7"+
+ "\2\0\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6\2\0"+
+ "\1\6\20\0\1\6\1\7\36\6\33\7\2\0\131\6\13\7\1\6"+
+ "\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0\26\6\4\7"+
+ "\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6\3\7\104\0"+
+ "\23\6\61\0\40\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"+
+ "\2\7\2\0\12\7\1\0\20\6\3\7\1\0\10\6\2\0\2\6"+
+ "\2\0\26\6\1\0\7\6\1\0\1\6\3\0\4\6\2\0\1\7"+
+ "\1\6\7\7\2\0\2\7\2\0\3\7\1\6\10\0\1\7\4\0"+
+ "\2\6\1\0\3\6\2\7\2\0\12\7\2\6\17\0\3\7\1\0"+
+ "\6\6\4\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"+
+ "\2\6\1\0\2\6\2\0\1\7\1\0\5\7\4\0\2\7\2\0"+
+ "\3\7\3\0\1\7\7\0\4\6\1\0\1\6\7\0\14\7\3\6"+
+ "\1\7\13\0\3\7\1\0\11\6\1\0\3\6\1\0\26\6\1\0"+
+ "\7\6\1\0\2\6\1\0\5\6\2\0\1\7\1\6\10\7\1\0"+
+ "\3\7\1\0\3\7\2\0\1\6\17\0\2\6\2\7\2\0\12\7"+
+ "\21\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6\1\0\7\6"+
+ "\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7\2\0\2\7"+
+ "\2\0\3\7\10\0\2\7\4\0\2\6\1\0\3\6\2\7\2\0"+
+ "\12\7\1\0\1\6\20\0\1\7\1\6\1\0\6\6\3\0\3\6"+
+ "\1\0\4\6\3\0\2\6\1\0\1\6\1\0\2\6\3\0\2\6"+
+ "\3\0\3\6\3\0\14\6\4\0\5\7\3\0\3\7\1\0\4\7"+
+ "\2\0\1\6\6\0\1\7\16\0\12\7\20\0\4\7\1\0\10\6"+
+ "\1\0\3\6\1\0\27\6\1\0\20\6\3\0\1\6\7\7\1\0"+
+ "\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6\2\7"+
+ "\2\0\12\7\21\0\3\7\1\0\10\6\1\0\3\6\1\0\27\6"+
+ "\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0\3\7"+
+ "\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7\2\0"+
+ "\12\7\1\0\2\6\16\0\3\7\1\0\10\6\1\0\3\6\1\0"+
+ "\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6\10\0"+
+ "\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0\2\7"+
+ "\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0\7\6"+
+ "\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\6\0\12\7"+
+ "\2\0\2\7\15\0\60\6\1\7\2\6\7\7\5\0\7\6\10\7"+
+ "\1\0\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6"+
+ "\2\0\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6"+
+ "\1\0\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0"+
+ "\2\7\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7"+
+ "\2\0\4\6\40\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7"+
+ "\1\0\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0"+
+ "\24\7\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0"+
+ "\53\6\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6"+
+ "\3\7\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0"+
+ "\46\6\1\0\1\6\5\0\1\6\2\0\53\6\1\0\u014d\6\1\0"+
+ "\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0"+
+ "\4\6\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+
+ "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0"+
+ "\3\7\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0"+
+ "\32\6\5\0\113\6\3\0\3\7\10\6\7\0\15\6\1\0\4\6"+
+ "\3\7\13\0\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0"+
+ "\3\6\1\0\2\7\14\0\64\6\40\7\3\0\1\6\4\0\1\6"+
+ "\1\7\2\0\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0"+
+ "\51\6\1\7\1\6\5\0\106\6\12\0\37\6\1\0\14\7\4\0"+
+ "\14\7\12\0\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7"+
+ "\7\6\2\7\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7"+
+ "\1\0\35\7\2\0\13\7\6\0\12\7\15\0\1\6\10\0\16\7"+
+ "\102\0\5\7\57\6\21\7\7\6\4\0\12\7\21\0\11\7\14\0"+
+ "\3\7\36\6\15\7\2\6\12\7\54\6\16\7\14\0\44\6\24\7"+
+ "\10\0\12\7\3\0\3\6\12\7\44\6\122\0\3\7\1\0\25\7"+
+ "\4\6\1\7\4\6\3\7\2\6\1\0\2\7\6\0\300\6\66\7"+
+ "\6\0\4\7\u0116\6\2\0\6\6\2\0\46\6\2\0\6\6\2\0"+
+ "\10\6\1\0\1\6\1\0\1\6\1\0\1\6\1\0\37\6\2\0"+
+ "\65\6\1\0\7\6\1\0\1\6\3\0\3\6\1\0\7\6\3\0"+
+ "\4\6\2\0\6\6\4\0\15\6\5\0\3\6\1\0\7\6\3\0"+
+ "\14\0\2\0\32\0\1\113\1\113\25\0\2\7\23\0\1\7\33\0"+
+ "\1\0\1\6\15\0\1\6\20\0\15\6\63\0\15\7\4\0\1\7"+
+ "\3\0\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6"+
+ "\3\0\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6"+
+ "\1\0\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\43\7"+
+ "\2\6\4\7\7\0\u0a70\0\57\6\1\0\57\6\1\0\205\6\6\0"+
+ "\4\6\3\7\2\6\14\0\46\6\1\0\1\6\5\0\1\6\2\0"+
+ "\70\6\7\0\1\6\17\0\1\7\27\6\11\0\7\6\1\0\7\6"+
+ "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"+
+ "\1\0\7\6\1\0\40\7\57\0\1\6\u01c0\0\21\0\4\0\2\6"+
+ "\1\7\31\0\17\7\1\0\5\6\2\0\3\7\2\6\4\0\126\6"+
+ "\2\0\2\7\2\0\3\6\1\0\132\6\1\0\4\6\5\0\51\6"+
+ "\3\0\136\6\21\0\33\6\65\0\20\6\u0200\0\u19b6\6\112\0\u51cd\6"+
+ "\63\0\u048d\6\103\0\56\6\2\0\u010d\6\3\0\20\6\12\7\2\6"+
+ "\24\0\57\6\1\7\4\0\12\7\1\0\37\6\1\0\1\7\106\6"+
+ "\14\7\45\0\11\6\2\0\147\6\2\0\4\6\1\0\36\6\2\0"+
+ "\2\6\105\0\13\6\1\7\3\6\1\7\4\6\1\7\27\6\5\7"+
+ "\30\0\64\6\14\0\2\7\62\6\21\7\13\0\12\7\6\0\22\7"+
+ "\6\6\3\0\1\6\4\0\12\7\34\6\10\7\2\0\27\6\15\7"+
+ "\14\0\35\6\3\0\4\7\57\6\16\7\16\0\1\6\12\7\6\0"+
+ "\5\6\1\7\12\6\12\7\5\6\1\0\51\6\16\7\11\0\3\6"+
+ "\1\7\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\3\7"+
+ "\62\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6\1\7"+
+ "\1\6\30\0\3\6\2\0\13\6\5\7\2\0\3\6\2\7\12\0"+
+ "\6\6\2\0\6\6\2\0\6\6\11\0\7\6\1\0\7\6\1\0"+
+ "\53\6\1\0\4\6\4\0\2\6\132\0\43\6\10\7\1\0\2\7"+
+ "\2\0\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6\4\0\u1800\0"+
+ "\u0900\0\u016e\6\2\0\152\6\46\0\7\6\14\0\5\6\5\0\1\6"+
+ "\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0\2\6"+
+ "\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6\2\0\66\6"+
+ "\10\0\40\0\14\6\4\0\20\7\20\0\16\7\5\0\2\7\30\0"+
+ "\3\7\40\0\5\6\1\0\207\6\23\0\12\7\7\0\32\6\4\0"+
+ "\1\7\1\0\32\6\13\0\131\6\3\0\6\6\2\0\6\6\2\0"+
+ "\6\6\2\0\3\6\41\0\2\0\14\6\1\0\32\6\1\0\23\6"+
+ "\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6\105\0\65\7"+
+ "\210\0\1\7\202\0\35\6\3\0\61\6\17\0\1\7\37\0\40\6"+
+ "\20\0\21\6\1\7\10\6\1\7\5\0\46\6\5\7\5\0\36\6"+
+ "\2\0\44\6\4\0\10\6\1\0\5\7\52\0\236\6\2\0\12\7"+
+ "\126\0\50\6\10\0\64\6\234\0\u0137\6\11\0\26\6\12\0\10\6"+
+ "\230\0\6\6\2\0\1\6\1\0\54\6\1\0\2\6\3\0\1\6"+
+ "\2\0\27\6\12\0\27\6\11\0\37\6\141\0\26\6\12\0\32\6"+
+ "\106\0\70\6\6\0\2\6\100\0\1\6\3\7\1\0\2\7\5\0"+
+ "\4\7\4\6\1\0\3\6\1\0\33\6\4\0\3\7\4\0\1\7"+
+ "\40\0\35\6\3\0\35\6\43\0\10\6\1\0\34\6\2\7\31\0"+
+ "\66\6\12\0\26\6\12\0\23\6\15\0\22\6\156\0\111\6\u03b7\0"+
+ "\3\7\65\6\17\7\37\0\12\7\17\0\4\7\55\6\13\7\25\0"+
+ "\31\6\7\0\12\7\6\0\3\7\44\6\16\7\1\0\12\7\20\0"+
+ "\43\6\1\7\2\0\1\6\11\0\3\7\60\6\16\7\4\6\13\0"+
+ "\12\7\1\6\45\0\22\6\1\0\31\6\14\7\170\0\57\6\14\7"+
+ "\5\0\12\7\7\0\3\7\1\0\10\6\2\0\2\6\2\0\26\6"+
+ "\1\0\7\6\1\0\2\6\1\0\5\6\2\0\1\7\1\6\7\7"+
+ "\2\0\2\7\2\0\3\7\11\0\1\7\5\0\5\6\2\7\2\0"+
+ "\7\7\3\0\5\7\u010b\0\60\6\24\7\2\6\1\0\1\6\10\0"+
+ "\12\7\246\0\57\6\7\7\2\0\11\7\77\0\60\6\21\7\3\0"+
+ "\1\6\13\0\12\7\46\0\53\6\15\7\10\0\12\7\u01d6\0\100\6"+
+ "\12\7\25\0\1\6\u01c0\0\71\6\u0507\0\u0399\6\147\0\157\7\u0b91\0"+
+ "\u042f\6\u33d1\0\u0239\6\7\0\37\6\1\0\12\7\146\0\36\6\2\0"+
+ "\5\7\13\0\60\6\7\7\11\0\4\6\14\0\12\7\11\0\25\6"+
+ "\5\0\23\6\u0370\0\105\6\13\0\1\6\56\7\20\0\4\7\15\6"+
+ "\u4060\0\2\6\u0bfe\0\153\6\5\0\15\6\3\0\11\6\7\0\12\6"+
+ "\3\0\2\7\u14c6\0\5\7\3\0\6\7\10\0\10\7\2\0\7\7"+
+ "\36\0\4\7\224\0\3\7\u01bb\0\125\6\1\0\107\6\1\0\2\6"+
+ "\2\0\1\6\2\0\2\6\2\0\4\6\1\0\14\6\1\0\1\6"+
+ "\1\0\7\6\1\0\101\6\1\0\4\6\2\0\10\6\1\0\7\6"+
+ "\1\0\34\6\1\0\4\6\1\0\5\6\1\0\1\6\3\0\7\6"+
+ "\1\0\u0154\6\2\0\31\6\1\0\31\6\1\0\37\6\1\0\31\6"+
+ "\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+
+ "\1\0\31\6\1\0\10\6\2\0\62\7\u1000\0\305\6\13\0\7\7"+
+ "\u0529\0\4\6\1\0\33\6\1\0\2\6\1\0\1\6\2\0\1\6"+
+ "\1\0\12\6\1\0\4\6\1\0\1\6\1\0\1\6\6\0\1\6"+
+ "\4\0\1\6\1\0\1\6\1\0\1\6\1\0\3\6\1\0\2\6"+
+ "\1\0\1\6\2\0\1\6\1\0\1\6\1\0\1\6\1\0\1\6"+
+ "\1\0\1\6\1\0\2\6\1\0\1\6\2\0\4\6\1\0\7\6"+
+ "\1\0\4\6\1\0\4\6\1\0\1\6\1\0\12\6\1\0\21\6"+
+ "\5\0\3\6\1\0\5\6\1\0\21\6\u1144\0\ua6d7\6\51\0\u1035\6"+
+ "\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u06ed\0"+
+ "\360\7\uffff\0\uffff\0\ufe12\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\13\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"
- + "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17"
- + "\1\20\1\21\1\22\1\23\1\15\2\6\1\24\1\25"
- + "\21\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34"
- + "\1\35\1\36\1\37\1\40\1\41\1\42\2\43\1\44"
- + "\1\1\1\42\2\45\1\1\2\46\1\42\2\1\1\47"
- + "\1\50\1\1\1\51\2\1\1\52\1\1\1\53\2\42"
- + "\2\54\2\42\1\55\1\42\1\1\1\56\1\3\1\0"
- + "\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66"
- + "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"
- + "\1\0\1\77\1\63\1\100\1\0\2\100\7\6\1\101"
- + "\1\102\2\6\1\103\16\6\1\104\1\105\1\106\4\6"
- + "\1\107\13\6\1\110\1\111\1\112\1\113\1\114\1\115"
- + "\1\116\1\117\1\120\1\121\1\116\1\122\1\121\1\123"
- + "\1\124\1\125\1\126\1\127\2\130\1\131\1\0\1\132"
- + "\1\0\1\133\1\0\1\134\1\135\1\0\1\136\4\0"
- + "\1\137\2\0\1\140\1\116\2\3\2\0\1\141\1\142"
- + "\1\143\1\144\1\145\1\0\1\63\1\146\2\147\1\100"
- + "\1\6\1\150\13\6\1\151\4\6\1\152\4\6\1\153"
- + "\6\6\1\154\12\6\1\155\1\6\1\156\1\6\1\157"
- + "\1\0\1\121\1\0\1\136\1\160\1\161\1\0\1\162"
- + "\2\0\1\163\1\164\1\165\1\0\1\166\1\147\1\100"
- + "\4\6\1\167\1\170\2\6\1\171\12\6\1\172\1\173"
- + "\1\6\1\174\11\6\1\175\5\6\1\176\1\6\1\177"
- + "\1\0\1\200\1\201\1\0\1\147\1\100\1\202\1\203"
- + "\2\6\1\204\1\6\1\205\1\206\1\6\1\207\1\6"
- + "\1\210\4\6\1\211\11\6\1\212\5\6\1\0\1\147"
- + "\1\100\3\6\1\213\1\6\1\214\1\215\1\6\1\216"
- + "\1\6\1\217\3\6\1\220\3\6\1\221\4\6\1\222"
- + "\1\6\1\0\1\147\1\100\1\223\1\6\1\224\10\6"
- + "\1\225\1\226\1\6\1\227\1\230\1\6\1\0\1\147"
- + "\1\100\1\231\1\232\1\233\3\6\1\234\3\6\1\235"
- + "\1\0\1\147\1\100\1\236\1\6\1\237\1\6\1\240"
- + "\1\241\1\242\1\147\1\100\1\243\1\244\6\100";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\13\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"+
+ "\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17"+
+ "\1\20\1\21\1\22\1\23\1\15\2\6\1\24\1\25"+
+ "\21\6\1\26\1\27\1\30\1\31\1\32\1\33\1\34"+
+ "\1\35\1\36\1\37\1\40\1\41\1\42\2\43\1\44"+
+ "\1\1\1\42\2\45\1\1\2\46\1\42\2\1\1\47"+
+ "\1\50\1\1\1\51\2\1\1\52\1\1\1\53\2\42"+
+ "\2\54\2\42\1\55\1\42\1\1\1\56\1\3\1\0"+
+ "\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66"+
+ "\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76"+
+ "\1\0\1\77\1\63\1\100\1\0\2\100\7\6\1\101"+
+ "\1\102\2\6\1\103\16\6\1\104\1\105\1\106\4\6"+
+ "\1\107\13\6\1\110\1\111\1\112\1\113\1\114\1\115"+
+ "\1\116\1\117\1\120\1\116\1\121\1\122\1\123\1\124"+
+ "\1\125\1\126\1\116\3\127\1\130\1\0\1\131\1\0"+
+ "\1\132\1\0\1\133\1\134\1\0\1\135\4\0\1\136"+
+ "\2\0\1\137\1\116\2\3\2\0\1\140\1\141\1\142"+
+ "\1\143\1\144\1\0\1\63\1\145\2\146\1\100\1\6"+
+ "\1\147\13\6\1\150\4\6\1\151\4\6\1\152\6\6"+
+ "\1\153\12\6\1\154\1\6\1\155\1\6\1\156\3\0"+
+ "\1\135\1\157\1\160\1\0\1\161\2\0\1\162\1\163"+
+ "\1\164\1\0\1\165\1\146\1\100\4\6\1\166\1\167"+
+ "\2\6\1\170\12\6\1\171\1\172\1\6\1\173\11\6"+
+ "\1\174\5\6\1\175\1\6\1\176\2\0\1\177\1\200"+
+ "\1\0\1\146\1\100\1\201\1\202\2\6\1\203\1\6"+
+ "\1\204\1\205\1\6\1\206\1\6\1\207\4\6\1\210"+
+ "\11\6\1\211\5\6\1\0\1\146\1\100\3\6\1\212"+
+ "\1\6\1\213\1\214\1\6\1\215\1\6\1\216\3\6"+
+ "\1\217\3\6\1\220\4\6\1\221\1\6\1\0\1\146"+
+ "\1\100\1\222\1\6\1\223\10\6\1\224\1\225\1\6"+
+ "\1\226\1\227\1\6\1\0\1\146\1\100\1\230\1\231"+
+ "\1\232\3\6\1\233\3\6\1\234\1\0\1\146\1\100"+
+ "\1\235\1\6\1\236\1\6\1\237\1\240\1\241\1\146"+
+ "\1\100\1\242\1\243\6\100";
- private static int[] zzUnpackAction() {
- int[] result = new int[446];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[447];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"+
+ "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u0344\0\u03dc\0\u0428"+
+ "\0\u0474\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688"+
+ "\0\u06d4\0\u0344\0\u0344\0\u0344\0\u0720\0\u0344\0\u0344\0\u076c"+
+ "\0\u07b8\0\u0804\0\u0850\0\u0344\0\u089c\0\u08e8\0\u0934\0\u0980"+
+ "\0\u09cc\0\u0a18\0\u0a64\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0"+
+ "\0\u0c2c\0\u0c78\0\u0cc4\0\u0d10\0\u0d5c\0\u0344\0\u0344\0\u0344"+
+ "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0da8\0\u0df4\0\u0e40\0\u0e8c"+
+ "\0\u0344\0\u0ed8\0\u0f24\0\u0344\0\u0344\0\u0f70\0\u0fbc\0\u1008"+
+ "\0\u0344\0\u1054\0\u10a0\0\u0344\0\u10ec\0\u1138\0\u1184\0\u0344"+
+ "\0\u0344\0\u11d0\0\u0344\0\u121c\0\u1268\0\u0344\0\u12b4\0\u0344"+
+ "\0\u0344\0\u1300\0\u134c\0\u0344\0\u1398\0\u13e4\0\u0344\0\u1430"+
+ "\0\u147c\0\u0344\0\u14c8\0\u1514\0\u0344\0\u0344\0\u1560\0\u0344"+
+ "\0\u15ac\0\u0344\0\u15f8\0\u1644\0\u0344\0\u0344\0\u1690\0\u0344"+
+ "\0\u0344\0\u16dc\0\u0344\0\u0344\0\u1728\0\u1774\0\u17c0\0\u180c"+
+ "\0\u1858\0\u18a4\0\u18f0\0\u193c\0\u1988\0\u19d4\0\u1a20\0\u1a6c"+
+ "\0\u1ab8\0\u1b04\0\u0344\0\u0344\0\u1b50\0\u1b9c\0\u04c0\0\u1be8"+
+ "\0\u1c34\0\u1c80\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc\0\u1e48"+
+ "\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u1fc4\0\u04c0\0\u04c0\0\u2010"+
+ "\0\u205c\0\u20a8\0\u20f4\0\u2140\0\u04c0\0\u218c\0\u21d8\0\u2224"+
+ "\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0\0\u23ec\0\u2438\0\u2484"+
+ "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344"+
+ "\0\u0344\0\u24d0\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344"+
+ "\0\u251c\0\u0344\0\u24d0\0\u251c\0\u0344\0\u1184\0\u0344\0\u11d0"+
+ "\0\u0344\0\u121c\0\u0344\0\u0344\0\u12b4\0\u2568\0\u25b4\0\u2600"+
+ "\0\u264c\0\u2698\0\u26e4\0\u2730\0\u277c\0\u0344\0\u27c8\0\u2814"+
+ "\0\u0344\0\u2860\0\u28ac\0\u0344\0\u0344\0\u0344\0\u28f8\0\u0344"+
+ "\0\u2944\0\u2944\0\u0344\0\u2990\0\u1858\0\u29dc\0\u2a28\0\u04c0"+
+ "\0\u2a74\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88"+
+ "\0\u2cd4\0\u2d20\0\u2d6c\0\u04c0\0\u2db8\0\u2e04\0\u2e50\0\u2e9c"+
+ "\0\u04c0\0\u2ee8\0\u2f34\0\u2f80\0\u2fcc\0\u04c0\0\u3018\0\u3064"+
+ "\0\u30b0\0\u30fc\0\u3148\0\u3194\0\u04c0\0\u31e0\0\u322c\0\u3278"+
+ "\0\u32c4\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u04c0"+
+ "\0\u34d8\0\u04c0\0\u3524\0\u04c0\0\u3570\0\u35bc\0\u2568\0\u0344"+
+ "\0\u0344\0\u0344\0\u3608\0\u0344\0\u3654\0\u36a0\0\u36ec\0\u0344"+
+ "\0\u0344\0\u3738\0\u0344\0\u3784\0\u37d0\0\u381c\0\u3868\0\u38b4"+
+ "\0\u3900\0\u04c0\0\u04c0\0\u394c\0\u3998\0\u04c0\0\u39e4\0\u3a30"+
+ "\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u3bac\0\u3bf8\0\u3c44\0\u3c90"+
+ "\0\u04c0\0\u04c0\0\u3cdc\0\u04c0\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c"+
+ "\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c\0\u3f88\0\u04c0\0\u3fd4\0\u4020"+
+ "\0\u406c\0\u40b8\0\u4104\0\u04c0\0\u4150\0\u0344\0\u24d0\0\u419c"+
+ "\0\u0344\0\u0344\0\u41e8\0\u4234\0\u4280\0\u04c0\0\u42cc\0\u4318"+
+ "\0\u4364\0\u04c0\0\u43b0\0\u04c0\0\u04c0\0\u43fc\0\u04c0\0\u4448"+
+ "\0\u04c0\0\u4494\0\u44e0\0\u452c\0\u4578\0\u04c0\0\u45c4\0\u4610"+
+ "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u04c0"+
+ "\0\u4870\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84"+
+ "\0\u4ad0\0\u4b1c\0\u4b68\0\u04c0\0\u4bb4\0\u04c0\0\u04c0\0\u4c00"+
+ "\0\u04c0\0\u4c4c\0\u04c0\0\u4c98\0\u4ce4\0\u4d30\0\u04c0\0\u4d7c"+
+ "\0\u4dc8\0\u4e14\0\u04c0\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u04c0"+
+ "\0\u4f90\0\u4fdc\0\u5028\0\u5074\0\u04c0\0\u50c0\0\u04c0\0\u510c"+
+ "\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320\0\u04c0"+
+ "\0\u04c0\0\u536c\0\u04c0\0\u04c0\0\u53b8\0\u5404\0\u5450\0\u549c"+
+ "\0\u04c0\0\u04c0\0\u04c0\0\u54e8\0\u5534\0\u5580\0\u04c0\0\u55cc"+
+ "\0\u5618\0\u5664\0\u04c0\0\u56b0\0\u56fc\0\u5748\0\u04c0\0\u5794"+
+ "\0\u04c0\0\u57e0\0\u04c0\0\u04c0\0\u0344\0\u0344\0\u582c\0\u04c0"+
+ "\0\u04c0\0\u5878\0\u58c4\0\u5910\0\u595c\0\u59a8\0\u17c0";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[447];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\114\0\230\0\344\0\u0130\0\u017c\0\u01c8\0\u0214"
- + "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u0344\0\u03dc\0\u0428"
- + "\0\u0474\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688"
- + "\0\u06d4\0\u0344\0\u0344\0\u0344\0\u0720\0\u0344\0\u0344\0\u076c"
- + "\0\u07b8\0\u0804\0\u0850\0\u0344\0\u089c\0\u08e8\0\u0934\0\u0980"
- + "\0\u09cc\0\u0a18\0\u0a64\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0"
- + "\0\u0c2c\0\u0c78\0\u0cc4\0\u0d10\0\u0d5c\0\u0344\0\u0344\0\u0344"
- + "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0da8\0\u0df4\0\u0e40\0\u0e8c"
- + "\0\u0344\0\u0ed8\0\u0f24\0\u0344\0\u0344\0\u0f70\0\u0fbc\0\u1008"
- + "\0\u0344\0\u1054\0\u10a0\0\u0344\0\u10ec\0\u1138\0\u1184\0\u0344"
- + "\0\u0344\0\u11d0\0\u0344\0\u121c\0\u1268\0\u0344\0\u12b4\0\u0344"
- + "\0\u0344\0\u1300\0\u134c\0\u0344\0\u1398\0\u13e4\0\u0344\0\u1430"
- + "\0\u147c\0\u0344\0\u14c8\0\u1514\0\u0344\0\u0344\0\u1560\0\u0344"
- + "\0\u15ac\0\u0344\0\u15f8\0\u1644\0\u0344\0\u0344\0\u1690\0\u0344"
- + "\0\u0344\0\u16dc\0\u0344\0\u0344\0\u1728\0\u1774\0\u17c0\0\u180c"
- + "\0\u1858\0\u18a4\0\u18f0\0\u193c\0\u1988\0\u19d4\0\u1a20\0\u1a6c"
- + "\0\u1ab8\0\u1b04\0\u0344\0\u0344\0\u1b50\0\u1b9c\0\u04c0\0\u1be8"
- + "\0\u1c34\0\u1c80\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc\0\u1e48"
- + "\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u1fc4\0\u04c0\0\u04c0\0\u2010"
- + "\0\u205c\0\u20a8\0\u20f4\0\u2140\0\u04c0\0\u218c\0\u21d8\0\u2224"
- + "\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0\0\u23ec\0\u2438\0\u2484"
- + "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344"
- + "\0\u0344\0\u24d0\0\u251c\0\u0344\0\u2568\0\u0344\0\u0344\0\u0344"
- + "\0\u0344\0\u0344\0\u0344\0\u251c\0\u0344\0\u1184\0\u0344\0\u11d0"
- + "\0\u0344\0\u121c\0\u0344\0\u0344\0\u12b4\0\u25b4\0\u2600\0\u264c"
- + "\0\u2698\0\u26e4\0\u2730\0\u277c\0\u27c8\0\u0344\0\u2814\0\u2860"
- + "\0\u0344\0\u28ac\0\u28f8\0\u0344\0\u0344\0\u0344\0\u2944\0\u0344"
- + "\0\u2990\0\u2990\0\u0344\0\u29dc\0\u1858\0\u2a28\0\u2a74\0\u04c0"
- + "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4"
- + "\0\u2d20\0\u2d6c\0\u2db8\0\u04c0\0\u2e04\0\u2e50\0\u2e9c\0\u2ee8"
- + "\0\u04c0\0\u2f34\0\u2f80\0\u2fcc\0\u3018\0\u04c0\0\u3064\0\u30b0"
- + "\0\u30fc\0\u3148\0\u3194\0\u31e0\0\u04c0\0\u322c\0\u3278\0\u32c4"
- + "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u04c0"
- + "\0\u3524\0\u04c0\0\u3570\0\u04c0\0\u35bc\0\u0344\0\u25b4\0\u0344"
- + "\0\u0344\0\u0344\0\u3608\0\u0344\0\u3654\0\u36a0\0\u36ec\0\u0344"
- + "\0\u0344\0\u3738\0\u0344\0\u3784\0\u37d0\0\u381c\0\u3868\0\u38b4"
- + "\0\u3900\0\u04c0\0\u04c0\0\u394c\0\u3998\0\u04c0\0\u39e4\0\u3a30"
- + "\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u3bac\0\u3bf8\0\u3c44\0\u3c90"
- + "\0\u04c0\0\u04c0\0\u3cdc\0\u04c0\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c"
- + "\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c\0\u3f88\0\u04c0\0\u3fd4\0\u4020"
- + "\0\u406c\0\u40b8\0\u4104\0\u04c0\0\u4150\0\u0344\0\u419c\0\u0344"
- + "\0\u0344\0\u41e8\0\u4234\0\u4280\0\u04c0\0\u42cc\0\u4318\0\u4364"
- + "\0\u04c0\0\u43b0\0\u04c0\0\u04c0\0\u43fc\0\u04c0\0\u4448\0\u04c0"
- + "\0\u4494\0\u44e0\0\u452c\0\u4578\0\u04c0\0\u45c4\0\u4610\0\u465c"
- + "\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u04c0\0\u4870"
- + "\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0"
- + "\0\u4b1c\0\u4b68\0\u04c0\0\u4bb4\0\u04c0\0\u04c0\0\u4c00\0\u04c0"
- + "\0\u4c4c\0\u04c0\0\u4c98\0\u4ce4\0\u4d30\0\u04c0\0\u4d7c\0\u4dc8"
- + "\0\u4e14\0\u04c0\0\u4e60\0\u4eac\0\u4ef8\0\u4f44\0\u04c0\0\u4f90"
- + "\0\u4fdc\0\u5028\0\u5074\0\u04c0\0\u50c0\0\u04c0\0\u510c\0\u5158"
- + "\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320\0\u04c0\0\u04c0"
- + "\0\u536c\0\u04c0\0\u04c0\0\u53b8\0\u5404\0\u5450\0\u549c\0\u04c0"
- + "\0\u04c0\0\u04c0\0\u54e8\0\u5534\0\u5580\0\u04c0\0\u55cc\0\u5618"
- + "\0\u5664\0\u04c0\0\u56b0\0\u56fc\0\u5748\0\u04c0\0\u5794\0\u04c0"
- + "\0\u57e0\0\u04c0\0\u04c0\0\u0344\0\u0344\0\u582c\0\u04c0\0\u04c0"
- + "\0\u5878\0\u58c4\0\u5910\0\u595c\0\u59a8\0\u17c0";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\14"+
+ "\1\22\1\23\1\24\1\17\1\25\1\26\1\27\1\30"+
+ "\1\22\1\31\1\14\1\32\1\33\4\22\1\34\1\35"+
+ "\1\36\1\37\1\40\2\22\1\41\2\31\1\22\1\42"+
+ "\1\43\1\14\1\44\1\45\1\46\1\47\1\22\1\50"+
+ "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\22"+
+ "\1\60\1\22\1\61\2\22\1\62\1\63\1\64\1\65"+
+ "\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75"+
+ "\1\76\1\77\1\100\1\101\1\22\1\14\1\102\1\103"+
+ "\1\104\30\102\1\105\12\102\1\106\45\102\1\107\1\110"+
+ "\1\111\31\107\1\105\11\107\1\112\45\107\1\14\1\113"+
+ "\1\114\1\115\1\116\3\14\1\117\2\14\1\115\2\14"+
+ "\1\120\2\117\4\14\4\117\5\14\3\117\2\14\2\117"+
+ "\3\14\26\117\2\14\1\121\46\14\1\122\44\14\1\123"+
+ "\14\14\1\113\1\114\1\115\4\14\1\124\2\14\1\115"+
+ "\3\14\2\124\2\14\1\125\1\14\4\124\5\14\3\124"+
+ "\2\14\2\124\3\14\26\124\2\14\1\126\46\14\1\127"+
+ "\44\14\1\130\13\14\1\131\1\113\1\114\26\131\1\132"+
+ "\63\131\1\133\1\134\12\131\1\135\77\131\1\113\1\114"+
+ "\7\131\1\136\65\131\1\137\13\131\1\140\1\110\1\111"+
+ "\43\140\1\141\1\142\44\140\116\0\1\16\114\0\1\17"+
+ "\7\0\1\17\104\0\1\143\1\144\24\0\1\145\113\0"+
+ "\1\146\67\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\26\22\14\0\1\22\12\0\1\147\1\150"+
+ "\6\0\1\151\13\0\1\151\3\0\2\151\33\0\1\152"+
+ "\25\0\1\153\1\0\1\154\4\0\2\153\4\0\4\153"+
+ "\1\0\1\155\3\0\3\153\2\0\2\153\3\0\26\153"+
+ "\2\0\1\156\45\0\1\157\76\0\1\160\14\0\1\161"+
+ "\77\0\1\162\13\0\1\163\100\0\1\164\105\0\1\151"+
+ "\7\0\1\31\13\0\1\31\3\0\2\31\2\165\101\0"+
+ "\1\166\72\0\1\151\7\0\1\167\13\0\1\170\2\171"+
+ "\1\0\1\172\1\173\2\165\55\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\2\22\1\174\3\22"+
+ "\1\175\2\22\1\176\1\177\13\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\1\22\1\200"+
+ "\6\22\3\0\2\22\1\201\11\22\1\202\11\22\14\0"+
+ "\1\22\33\0\1\203\12\0\1\204\54\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\205"+
+ "\24\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\206\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\5\22\1\207\20\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22"+
+ "\1\210\3\22\1\211\5\22\1\212\11\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\213\3\0\10\22\1\214\1\22\1\215\2\22\1\216"+
+ "\10\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\22\22\1\217\3\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\7\22\1\220\3\0\2\22\1\221\7\22\1\222\13\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\1\22\1\223\14\22\1\224\1\22"+
+ "\1\225\5\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\3\22\1\226\4\22\3\0\5\22"+
+ "\1\227\1\22\1\230\11\22\1\231\4\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\5\22\1\232\1\22\1\233\16\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\234\3\0\6\22\1\235\11\22\1\236\5\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\11\22\1\237\4\22\1\240\7\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\1\22\1\241\1\242\7\22\1\243\13\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\2\22\1\244\3\22\1\245\17\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\7\22\1\246\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\7\22\1\247\16\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\250"+
+ "\23\22\14\0\1\22\33\0\1\251\52\0\1\252\40\0"+
+ "\1\253\53\0\1\254\37\0\1\255\113\0\1\256\61\0"+
+ "\1\102\2\0\30\102\1\0\12\102\1\0\45\102\2\0"+
+ "\1\104\111\0\1\257\3\0\27\257\1\260\1\261\1\257"+
+ "\1\262\1\257\1\263\5\257\1\264\1\257\1\265\1\266"+
+ "\5\257\1\267\1\270\1\257\1\271\30\257\1\0\1\107"+
+ "\2\0\31\107\1\0\11\107\1\0\45\107\2\0\1\111"+
+ "\111\0\1\272\3\0\27\272\1\260\1\261\1\272\1\273"+
+ "\1\272\1\263\5\272\1\264\1\272\1\265\1\266\5\272"+
+ "\1\267\1\270\1\272\1\274\30\272\3\0\1\114\114\0"+
+ "\1\115\7\0\1\115\116\0\1\275\105\0\2\276\3\0"+
+ "\1\276\1\0\4\276\2\0\4\276\1\0\1\277\2\0"+
+ "\10\276\3\0\26\276\16\0\1\300\2\0\30\300\1\301"+
+ "\60\300\10\0\2\302\3\0\1\302\1\0\4\302\2\0"+
+ "\4\302\1\0\1\303\2\0\10\302\3\0\26\302\34\0"+
+ "\1\304\75\0\1\305\2\0\30\305\1\306\1\307\57\305"+
+ "\31\0\1\310\64\0\1\134\126\0\1\311\102\0\1\312"+
+ "\3\0\1\313\3\0\1\314\2\0\2\313\2\0\1\315"+
+ "\1\0\4\313\5\0\3\313\2\0\2\313\3\0\26\313"+
+ "\2\0\1\316\13\0\1\140\2\0\43\140\2\0\44\140"+
+ "\1\257\3\0\32\257\1\262\1\257\1\263\5\257\1\264"+
+ "\1\257\1\265\1\266\5\257\1\267\1\270\1\257\1\271"+
+ "\27\257\1\317\1\0\1\143\1\320\1\321\111\143\5\322"+
+ "\1\323\106\322\11\0\1\324\123\0\1\151\13\0\1\151"+
+ "\3\0\2\151\2\165\57\0\2\153\3\0\1\153\1\0"+
+ "\4\153\2\0\4\153\4\0\10\153\3\0\26\153\50\0"+
+ "\1\325\113\0\1\326\77\0\1\327\13\0\1\330\76\0"+
+ "\1\331\3\0\1\332\13\0\1\332\3\0\2\332\2\0"+
+ "\1\331\100\0\1\333\72\0\1\151\7\0\1\167\13\0"+
+ "\1\167\3\0\2\167\2\165\60\0\1\151\7\0\1\167"+
+ "\13\0\1\170\3\0\1\172\1\173\2\165\67\0\2\334"+
+ "\3\0\3\334\5\0\1\335\2\0\5\334\3\0\1\334"+
+ "\1\0\1\334\1\0\1\334\6\0\1\334\41\0\1\151"+
+ "\7\0\1\167\13\0\1\173\3\0\2\173\2\165\60\0"+
+ "\1\151\7\0\1\167\13\0\1\336\3\0\2\336\2\165"+
+ "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\14\22\1\337\11\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22"+
+ "\1\340\24\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\7\22\1\341\16\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\7\22\1\342\16\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\10\22\1\343\15\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"+
+ "\1\344\21\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\5\22\1\345\20\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\7\22\1\346\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\10\22\1\347\15\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\350"+
+ "\2\22\1\351\15\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\352"+
+ "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\2\22\1\353\23\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\10\22\1\354\15\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\2\22\1\355\23\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\17\22\1\356"+
+ "\6\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\11\22\1\357\14\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\7\22\1\360\3\0\26\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\15\22"+
+ "\1\361\10\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\10\22\1\362\10\22"+
+ "\1\363\4\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\14\22\1\364\11\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\12\22\1\365\5\22\1\366\5\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\1\22\1\367\7\22\1\370\14\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\17\22\1\371\6\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\5\22\1\372\2\22\1\373\15\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\17\22\1\374\6\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\7\22\1\375\3\0"+
+ "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\13\22\1\376\12\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\3\22\1\377\4\22\3\0\14\22\1\u0100\11\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\7\22\1\u0101\16\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\10\22\1\u0102\15\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\11\22\1\u0103"+
+ "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\6\22\1\u0104\2\22\1\u0105"+
+ "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\4\22\1\u0106\21\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\1\u0107\25\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22"+
+ "\1\u0108\24\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\11\22\1\u0109\14\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\10\22\1\u010a\15\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\3\22"+
+ "\1\u010b\4\22\3\0\26\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\25\22"+
+ "\1\u010c\14\0\1\22\21\0\2\u010d\3\0\3\u010d\5\0"+
+ "\1\u010d\2\0\5\u010d\3\0\1\u010d\1\0\1\u010d\1\0"+
+ "\1\u010d\6\0\1\u010d\50\0\2\u010e\3\0\3\u010e\5\0"+
+ "\1\u010e\2\0\5\u010e\3\0\1\u010e\1\0\1\u010e\1\0"+
+ "\1\u010e\6\0\1\u010e\30\0\1\u010f\2\0\30\u010f\1\306"+
+ "\1\0\57\u010f\1\307\2\0\30\307\1\u0110\60\307\16\0"+
+ "\1\u0111\113\0\1\u0112\105\0\1\u0113\6\0\2\u0113\4\0"+
+ "\4\u0113\5\0\3\u0113\2\0\2\u0113\3\0\26\u0113\2\0"+
+ "\1\u0114\23\0\2\313\3\0\1\313\1\0\4\313\2\0"+
+ "\4\313\4\0\10\313\3\0\26\313\33\0\1\u0115\6\0"+
+ "\1\u0116\77\0\1\u0117\6\0\2\u0117\4\0\4\u0117\5\0"+
+ "\3\u0117\2\0\2\u0117\3\0\26\u0117\2\0\1\u0118\62\0"+
+ "\1\u0119\46\0\1\321\111\0\5\322\1\u011a\106\322\4\0"+
+ "\1\321\1\323\140\0\1\u011b\102\0\1\332\13\0\1\332"+
+ "\3\0\2\332\71\0\2\u011c\3\0\3\u011c\5\0\1\u011c"+
+ "\2\0\5\u011c\3\0\1\u011c\1\0\1\u011c\1\0\1\u011c"+
+ "\6\0\1\u011c\41\0\1\151\7\0\1\167\13\0\1\u011d"+
+ "\3\0\2\u011d\2\165\55\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\5\22\1\u011e\20\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\2\22\1\u011f\23\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\4\22\1\u0120\21\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\7\22\1\u0121\3\0\26\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\16\22\1\u0122\7\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\u0123\3\0\26\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\u0124"+
+ "\23\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\12\22\1\u0125\13\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\7\22\1\u0126\3\0\26\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"+
+ "\1\u0127\21\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\5\22\1\u0128\2\22"+
+ "\1\u0129\15\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\5\22\1\u012a\20\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\10\22\1\u012b\15\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\u012c\3\0\26\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u012d"+
+ "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\1\22\1\u012e\24\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\11\22\1\u012f\14\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0130"+
+ "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\14\22\1\u0131\11\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\7\22\1\u0132\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\6\22\1\u0133\17\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\u0134"+
+ "\20\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\u0135\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\10\22\1\u0136\15\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0137\3\0"+
+ "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\6\22\1\u0138\5\22\1\u0139"+
+ "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\u013a\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\2\22\1\u013b\23\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\7\22\1\u013c\3\0"+
+ "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\2\22\1\u013d\23\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\16\22\1\u013e\7\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\14\22\1\u013f\11\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u0140"+
+ "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\22\22\1\u0141\3\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\3\22\1\u0142\22\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\14\22\1\u0143\11\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\13\22\1\u0144"+
+ "\12\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\11\22\1\u0145\14\22\14\0"+
+ "\1\22\21\0\2\u0146\3\0\3\u0146\5\0\1\u0146\2\0"+
+ "\5\u0146\3\0\1\u0146\1\0\1\u0146\1\0\1\u0146\6\0"+
+ "\1\u0146\50\0\2\u0147\3\0\3\u0147\5\0\1\u0147\2\0"+
+ "\5\u0147\3\0\1\u0147\1\0\1\u0147\1\0\1\u0147\6\0"+
+ "\1\u0147\31\0\2\u0148\5\0\2\u0113\1\0\1\u0148\1\0"+
+ "\1\u0113\1\u0149\4\u0113\2\0\4\u0113\4\0\10\u0113\3\0"+
+ "\26\u0113\33\0\1\u014a\123\0\1\u014b\76\0\2\u0117\3\0"+
+ "\1\u0117\1\0\4\u0117\2\0\4\u0117\4\0\10\u0117\3\0"+
+ "\26\u0117\16\0\4\322\1\321\1\u011a\106\322\20\0\2\u014c"+
+ "\3\0\3\u014c\5\0\1\u014c\2\0\5\u014c\3\0\1\u014c"+
+ "\1\0\1\u014c\1\0\1\u014c\6\0\1\u014c\41\0\1\151"+
+ "\7\0\1\167\13\0\1\u014d\3\0\2\u014d\2\165\55\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u014e"+
+ "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\14\22\1\u014f\11\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\10\22\1\u0150\15\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\7\22\1\u0151\16\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\3\22"+
+ "\1\u0152\22\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\1\22\1\u0153\24\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\16\22\1\u0154\7\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\10\22\1\u0155\15\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22"+
+ "\1\u0156\14\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\5\22\1\u0157\20\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\11\22\1\u0158\14\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\1\22\1\u0159\24\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"+
+ "\1\u015a\21\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\1\22\1\u015b\24\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\22\22\1\u015c\3\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\5\22\1\u015d\20\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\15\22"+
+ "\1\u015e\10\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\6\22\1\u015f\17\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\2\22\1\u0160\23\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\1\22\1\u0161\24\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22"+
+ "\1\u0162\24\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\7\22\1\u0163\3\0\26\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\3\22\1\u0164\4\22\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\12\22\1\u0165\13\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u0166"+
+ "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\21\22\1\u0167\4\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\7\22\1\u0168\3\0\26\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0169\3\0"+
+ "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\2\22\1\u016a\23\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\2\22\1\u016b\23\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\11\22\1\u016c\14\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u016d"+
+ "\16\22\14\0\1\22\2\0\2\u0148\10\0\1\u0148\2\0"+
+ "\1\u0149\123\0\1\u016e\105\0\2\u016f\3\0\3\u016f\5\0"+
+ "\1\u016f\2\0\5\u016f\3\0\1\u016f\1\0\1\u016f\1\0"+
+ "\1\u016f\6\0\1\u016f\41\0\1\151\7\0\1\167\13\0"+
+ "\1\u0170\3\0\2\u0170\2\165\55\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\14\22\1\u0171\11\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\11\22\1\u0172\14\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\13\22\1\u0173\12\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22"+
+ "\1\u0174\16\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\7\22\1\u0175\16\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\4\22\1\u0176\21\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\16\22\1\u0177\7\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22"+
+ "\1\u0178\14\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\7\22\1\u0179\3\0\26\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\17\22\1\u017a\6\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\3\22\1\u017b"+
+ "\4\22\3\0\26\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u017c"+
+ "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\3\22\1\u017d\4\22\3\0\7\22\1\u017e"+
+ "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\10\22\1\u017f\15\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\21\22\1\u0180\4\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\11\22\1\u0181\14\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u0182"+
+ "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\u0183\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\11\22\1\u0184\14\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"+
+ "\1\u0185\21\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\10\22\1\u0186\15\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\23\22\1\u0187\2\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\4\22\1\u0188\21\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22"+
+ "\1\u0189\14\22\14\0\1\22\30\0\1\u018a\104\0\2\u018b"+
+ "\3\0\3\u018b\5\0\1\u018b\2\0\5\u018b\3\0\1\u018b"+
+ "\1\0\1\u018b\1\0\1\u018b\6\0\1\u018b\41\0\1\151"+
+ "\7\0\1\167\13\0\1\u018c\3\0\2\u018c\2\165\55\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\20\22\1\u018d\5\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\6\22\1\u018e"+
+ "\17\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\5\22\1\u018f\20\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\12\22\1\u0190\13\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\13\22\1\u0191\12\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\u0192"+
+ "\23\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\4\22\1\u0193\21\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\2\22\1\u0194\23\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"+
+ "\2\22\1\u0195\23\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\7\22\1\u0196\3\0\26\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\7\22\1\u0197\16\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\10\22\1\u0198\15\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"+
+ "\1\u0199\21\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\10\22\1\u019a\15\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\7\22\1\u019b\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u019c"+
+ "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\10\22\1\u019d\15\22"+
+ "\14\0\1\22\31\0\1\u019e\103\0\2\u019f\3\0\3\u019f"+
+ "\5\0\1\u019f\2\0\5\u019f\3\0\1\u019f\1\0\1\u019f"+
+ "\1\0\1\u019f\6\0\1\u019f\41\0\1\151\7\0\1\167"+
+ "\13\0\1\u01a0\3\0\2\u01a0\2\165\55\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u01a1"+
+ "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\u01a2\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\u01a3\3\0\26\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\4\22\1\u01a4"+
+ "\21\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\7\22\1\u01a5\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\4\22\1\u01a6\21\22\14\0\1\22\7\0\3\22"+
+ "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\14\22"+
+ "\1\u01a7\11\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\7\22\1\u01a8\16\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\7\22\1\u01a9\3\0\26\22\14\0\1\22\7\0"+
+ "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u01aa"+
+ "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"+
+ "\3\0\4\22\4\0\10\22\3\0\20\22\1\u01ab\5\22"+
+ "\14\0\1\22\30\0\1\u01ac\104\0\2\u01ad\3\0\3\u01ad"+
+ "\5\0\1\u01ad\2\0\5\u01ad\3\0\1\u01ad\1\0\1\u01ad"+
+ "\1\0\1\u01ad\6\0\1\u01ad\41\0\1\151\7\0\1\167"+
+ "\13\0\1\u01ae\3\0\2\u01ae\2\165\55\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\7\22\1\u01af\3\0\26\22"+
+ "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\10\22\3\0\6\22\1\u01b0\17\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"+
+ "\1\u01b1\3\0\26\22\14\0\1\22\7\0\3\22\7\0"+
+ "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u01b2"+
+ "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"+
+ "\4\22\4\0\10\22\3\0\13\22\1\u01b3\12\22\14\0"+
+ "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"+
+ "\10\22\3\0\13\22\1\u01b4\12\22\14\0\1\22\25\0"+
+ "\1\u01b5\107\0\2\u01b6\3\0\3\u01b6\5\0\1\u01b6\2\0"+
+ "\5\u01b6\3\0\1\u01b6\1\0\1\u01b6\1\0\1\u01b6\6\0"+
+ "\1\u01b6\41\0\1\151\7\0\1\167\13\0\1\u01b7\3\0"+
+ "\2\u01b7\2\165\55\0\3\22\7\0\2\22\3\0\4\22"+
+ "\4\0\3\22\1\u01b8\4\22\3\0\26\22\14\0\1\22"+
+ "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"+
+ "\3\0\5\22\1\u01b9\20\22\14\0\1\22\12\0\1\151"+
+ "\7\0\1\167\13\0\1\u01ba\3\0\2\u01ba\2\165\60\0"+
+ "\1\151\7\0\1\167\13\0\1\u01bb\3\0\2\u01bb\2\165"+
+ "\60\0\1\151\7\0\1\167\13\0\1\u01bc\3\0\2\u01bc"+
+ "\2\165\60\0\1\151\7\0\1\167\13\0\1\u01bd\3\0"+
+ "\2\u01bd\2\165\60\0\1\151\7\0\1\167\13\0\1\u01be"+
+ "\3\0\2\u01be\2\165\60\0\1\151\7\0\1\167\13\0"+
+ "\1\u01bf\3\0\2\u01bf\2\165\47\0";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[446];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[23028];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\13\0\1\11\1\1\1\11\13\1\3\11\1\1\2\11"+
+ "\4\1\1\11\21\1\7\11\4\1\1\11\2\1\2\11"+
+ "\3\1\1\11\2\1\1\11\3\1\2\11\1\1\1\11"+
+ "\2\1\1\11\1\1\2\11\2\1\1\11\2\1\1\11"+
+ "\2\1\1\11\1\1\1\0\2\11\1\1\1\11\1\1"+
+ "\1\11\2\1\2\11\1\1\2\11\1\1\2\11\1\0"+
+ "\3\1\1\0\11\1\2\11\44\1\11\11\1\1\6\11"+
+ "\1\1\1\11\2\1\1\11\1\0\1\11\1\0\1\11"+
+ "\1\0\2\11\1\0\1\1\4\0\1\1\2\0\1\11"+
+ "\2\1\1\11\2\0\3\11\1\1\1\11\1\0\1\1"+
+ "\1\11\61\1\3\0\3\11\1\0\1\11\2\0\1\1"+
+ "\2\11\1\0\1\11\52\1\1\11\2\0\2\11\1\0"+
+ "\42\1\1\0\33\1\1\0\23\1\1\0\15\1\1\0"+
+ "\10\1\2\11\11\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[447];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\14"
- + "\1\22\1\23\1\24\1\17\1\25\1\26\1\27\1\30"
- + "\1\22\1\31\1\14\1\32\1\33\4\22\1\34\1\35"
- + "\1\36\1\37\1\40\2\22\1\41\2\31\1\22\1\42"
- + "\1\43\1\14\1\44\1\45\1\46\1\47\1\22\1\50"
- + "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\22"
- + "\1\60\1\22\1\61\2\22\1\62\1\63\1\64\1\65"
- + "\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75"
- + "\1\76\1\77\1\100\1\101\1\22\1\14\1\102\1\103"
- + "\1\104\30\102\1\105\12\102\1\106\45\102\1\107\1\110"
- + "\1\111\31\107\1\105\11\107\1\112\45\107\1\14\1\113"
- + "\1\114\1\115\1\116\3\14\1\117\2\14\1\115\2\14"
- + "\1\120\2\117\4\14\4\117\5\14\3\117\2\14\2\117"
- + "\3\14\26\117\2\14\1\121\46\14\1\122\44\14\1\123"
- + "\14\14\1\113\1\114\1\115\4\14\1\124\2\14\1\115"
- + "\3\14\2\124\2\14\1\125\1\14\4\124\5\14\3\124"
- + "\2\14\2\124\3\14\26\124\2\14\1\126\46\14\1\127"
- + "\44\14\1\130\13\14\1\131\1\113\1\114\26\131\1\132"
- + "\63\131\1\133\1\134\12\131\1\135\77\131\1\113\1\114"
- + "\7\131\1\136\65\131\1\137\13\131\1\140\1\110\1\111"
- + "\43\140\1\141\1\142\44\140\116\0\1\16\114\0\1\17"
- + "\7\0\1\17\104\0\1\143\1\144\24\0\1\145\113\0"
- + "\1\146\67\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\26\22\14\0\1\22\12\0\1\147\1\150"
- + "\6\0\1\151\13\0\1\151\3\0\2\151\33\0\1\152"
- + "\25\0\1\153\1\0\1\154\4\0\2\153\4\0\4\153"
- + "\1\0\1\155\3\0\3\153\2\0\2\153\3\0\26\153"
- + "\2\0\1\156\45\0\1\157\76\0\1\160\14\0\1\161"
- + "\77\0\1\162\13\0\1\163\100\0\1\164\105\0\1\151"
- + "\7\0\1\31\13\0\1\31\3\0\2\31\2\165\101\0"
- + "\1\166\72\0\1\151\7\0\1\167\13\0\1\170\2\171"
- + "\1\0\1\172\1\173\2\165\55\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\2\22\1\174\3\22"
- + "\1\175\2\22\1\176\1\177\13\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\1\22\1\200"
- + "\6\22\3\0\2\22\1\201\11\22\1\202\11\22\14\0"
- + "\1\22\33\0\1\203\12\0\1\204\54\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\205"
- + "\24\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\7\22\1\206\3\0\26\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\5\22\1\207\20\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22"
- + "\1\210\3\22\1\211\5\22\1\212\11\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\213\3\0\10\22\1\214\1\22\1\215\2\22\1\216"
- + "\10\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\22\22\1\217\3\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\220\3\0\2\22\1\221\7\22\1\222\13\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\1\22\1\223\14\22\1\224\1\22"
- + "\1\225\5\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\3\22\1\226\4\22\3\0\5\22"
- + "\1\227\1\22\1\230\11\22\1\231\4\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\5\22\1\232\1\22\1\233\16\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\234\3\0\6\22\1\235\11\22\1\236\5\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\11\22\1\237\4\22\1\240\7\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\1\22\1\241\1\242\7\22\1\243\13\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\2\22\1\244\3\22\1\245\17\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\7\22\1\246\3\0\26\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\7\22\1\247\16\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\250"
- + "\23\22\14\0\1\22\33\0\1\251\52\0\1\252\40\0"
- + "\1\253\53\0\1\254\37\0\1\255\113\0\1\256\61\0"
- + "\1\102\2\0\30\102\1\0\12\102\1\0\45\102\2\0"
- + "\1\104\111\0\1\257\3\0\27\257\1\260\1\261\1\262"
- + "\1\263\1\257\1\264\1\262\1\265\3\257\1\266\1\257"
- + "\1\267\1\270\5\257\1\271\1\272\32\257\1\0\1\107"
- + "\2\0\31\107\1\0\11\107\1\0\45\107\2\0\1\111"
- + "\111\0\1\273\3\0\27\273\1\260\1\261\1\262\1\274"
- + "\1\273\1\264\1\262\1\265\3\273\1\266\1\273\1\267"
- + "\1\270\5\273\1\271\1\272\32\273\3\0\1\114\114\0"
- + "\1\115\7\0\1\115\116\0\1\275\105\0\2\276\3\0"
- + "\1\276\1\0\4\276\2\0\4\276\1\0\1\277\2\0"
- + "\10\276\3\0\26\276\16\0\1\300\2\0\30\300\1\301"
- + "\60\300\10\0\2\302\3\0\1\302\1\0\4\302\2\0"
- + "\4\302\1\0\1\303\2\0\10\302\3\0\26\302\34\0"
- + "\1\304\75\0\1\305\2\0\30\305\1\306\1\307\57\305"
- + "\31\0\1\310\64\0\1\134\126\0\1\311\102\0\1\312"
- + "\3\0\1\313\3\0\1\314\2\0\2\313\2\0\1\315"
- + "\1\0\4\313\5\0\3\313\2\0\2\313\3\0\26\313"
- + "\2\0\1\316\13\0\1\140\2\0\43\140\2\0\44\140"
- + "\1\257\3\0\32\257\1\263\1\257\1\264\5\257\1\266"
- + "\1\257\1\267\1\270\5\257\1\271\1\272\31\257\1\317"
- + "\1\0\1\143\1\320\1\321\111\143\5\322\1\323\106\322"
- + "\11\0\1\324\123\0\1\151\13\0\1\151\3\0\2\151"
- + "\2\165\57\0\2\153\3\0\1\153\1\0\4\153\2\0"
- + "\4\153\4\0\10\153\3\0\26\153\50\0\1\325\113\0"
- + "\1\326\77\0\1\327\13\0\1\330\76\0\1\331\3\0"
- + "\1\332\13\0\1\332\3\0\2\332\2\0\1\331\100\0"
- + "\1\333\72\0\1\151\7\0\1\167\13\0\1\167\3\0"
- + "\2\167\2\165\60\0\1\151\7\0\1\167\13\0\1\170"
- + "\3\0\1\172\1\173\2\165\67\0\2\334\3\0\3\334"
- + "\5\0\1\335\2\0\5\334\3\0\1\334\1\0\1\334"
- + "\1\0\1\334\6\0\1\334\41\0\1\151\7\0\1\167"
- + "\13\0\1\173\3\0\2\173\2\165\60\0\1\151\7\0"
- + "\1\167\13\0\1\336\3\0\2\336\2\165\55\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\14\22"
- + "\1\337\11\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\1\22\1\340\24\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\7\22\1\341\16\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\7\22\1\342\16\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22"
- + "\1\343\15\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\4\22\1\344\21\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\5\22\1\345\20\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\346\3\0\26\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\347"
- + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\5\22\1\350\2\22\1\351"
- + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\7\22\1\352\16\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\2\22\1\353\23\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\10\22\1\354\15\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\355"
- + "\23\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\17\22\1\356\6\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\11\22\1\357\14\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\360"
- + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\15\22\1\361\10\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\10\22\1\362\10\22\1\363\4\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\14\22\1\364\11\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\12\22\1\365\5\22\1\366\5\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\1\22\1\367\7\22\1\370\14\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\17\22\1\371\6\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22"
- + "\1\372\2\22\1\373\15\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\17\22"
- + "\1\374\6\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\7\22\1\375\3\0\26\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\13\22\1\376\12\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\3\22\1\377"
- + "\4\22\3\0\14\22\1\u0100\11\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\7\22\1\u0101\16\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u0102"
- + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\11\22\1\u0103\14\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\6\22\1\u0104\2\22\1\u0105\14\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\4\22\1\u0106\21\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\1\u0107\25\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\1\22\1\u0108\24\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\11\22\1\u0109\14\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\10\22\1\u010a\15\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\3\22\1\u010b\4\22"
- + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\25\22\1\u010c\14\0"
- + "\1\22\36\0\1\265\3\0\2\265\71\0\2\u010d\3\0"
- + "\3\u010d\5\0\1\u010d\2\0\5\u010d\3\0\1\u010d\1\0"
- + "\1\u010d\1\0\1\u010d\6\0\1\u010d\65\0\1\u010e\3\0"
- + "\2\u010e\51\0\1\u010f\2\0\30\u010f\1\306\1\0\57\u010f"
- + "\1\307\2\0\30\307\1\u0110\60\307\16\0\1\u0111\113\0"
- + "\1\u0112\105\0\1\u0113\6\0\2\u0113\4\0\4\u0113\5\0"
- + "\3\u0113\2\0\2\u0113\3\0\26\u0113\2\0\1\u0114\23\0"
- + "\2\313\3\0\1\313\1\0\4\313\2\0\4\313\4\0"
- + "\10\313\3\0\26\313\33\0\1\u0115\6\0\1\u0116\77\0"
- + "\1\u0117\6\0\2\u0117\4\0\4\u0117\5\0\3\u0117\2\0"
- + "\2\u0117\3\0\26\u0117\2\0\1\u0118\62\0\1\u0119\46\0"
- + "\1\321\111\0\5\322\1\u011a\106\322\4\0\1\321\1\323"
- + "\140\0\1\u011b\102\0\1\332\13\0\1\332\3\0\2\332"
- + "\71\0\2\u011c\3\0\3\u011c\5\0\1\u011c\2\0\5\u011c"
- + "\3\0\1\u011c\1\0\1\u011c\1\0\1\u011c\6\0\1\u011c"
- + "\41\0\1\151\7\0\1\167\13\0\1\u011d\3\0\2\u011d"
- + "\2\165\55\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\5\22\1\u011e\20\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\2\22\1\u011f\23\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\4\22\1\u0120"
- + "\21\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\7\22\1\u0121\3\0\26\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\16\22\1\u0122\7\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0123\3\0"
- + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\2\22\1\u0124\23\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\12\22\1\u0125\13\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0126"
- + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0127\21\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\5\22\1\u0128\2\22\1\u0129\15\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\5\22\1\u012a\20\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\10\22\1\u012b\15\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u012c\3\0"
- + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\10\22\1\u012d\15\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\1\22\1\u012e\24\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\11\22\1\u012f\14\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\7\22\1\u0130\3\0\26\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\14\22\1\u0131\11\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\u0132\3\0\26\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\6\22\1\u0133"
- + "\17\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\5\22\1\u0134\20\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\u0135\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22"
- + "\1\u0136\15\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\7\22\1\u0137\3\0\26\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\6\22\1\u0138\5\22\1\u0139\11\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\u013a\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22"
- + "\1\u013b\23\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\7\22\1\u013c\3\0\26\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\2\22\1\u013d\23\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\16\22\1\u013e\7\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u013f"
- + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\10\22\1\u0140\15\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\22\22\1\u0141\3\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\3\22\1\u0142\22\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u0143"
- + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\13\22\1\u0144\12\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\11\22\1\u0145\14\22\14\0\1\22\21\0"
- + "\2\u0146\3\0\3\u0146\5\0\1\u0146\2\0\5\u0146\3\0"
- + "\1\u0146\1\0\1\u0146\1\0\1\u0146\6\0\1\u0146\31\0"
- + "\2\u0147\5\0\2\u0113\1\0\1\u0147\1\0\1\u0113\1\u0148"
- + "\4\u0113\2\0\4\u0113\4\0\10\u0113\3\0\26\u0113\33\0"
- + "\1\u0149\123\0\1\u014a\76\0\2\u0117\3\0\1\u0117\1\0"
- + "\4\u0117\2\0\4\u0117\4\0\10\u0117\3\0\26\u0117\16\0"
- + "\4\322\1\321\1\u011a\106\322\20\0\2\u014b\3\0\3\u014b"
- + "\5\0\1\u014b\2\0\5\u014b\3\0\1\u014b\1\0\1\u014b"
- + "\1\0\1\u014b\6\0\1\u014b\41\0\1\151\7\0\1\167"
- + "\13\0\1\u014c\3\0\2\u014c\2\165\55\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\7\22\1\u014d\3\0\26\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\14\22\1\u014e\11\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\10\22\1\u014f\15\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22"
- + "\1\u0150\16\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\3\22\1\u0151\22\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\1\22\1\u0152\24\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\16\22\1\u0153\7\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22"
- + "\1\u0154\15\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\11\22\1\u0155\14\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\5\22\1\u0156\20\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\11\22\1\u0157\14\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22"
- + "\1\u0158\24\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0159\21\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\1\22\1\u015a\24\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\22\22\1\u015b\3\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22"
- + "\1\u015c\20\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\15\22\1\u015d\10\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\6\22\1\u015e\17\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\2\22\1\u015f\23\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22"
- + "\1\u0160\24\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\1\22\1\u0161\24\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\7\22\1\u0162\3\0\26\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\3\22\1\u0163"
- + "\4\22\3\0\26\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\12\22\1\u0164"
- + "\13\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\10\22\1\u0165\15\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\21\22\1\u0166\4\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0167"
- + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\7\22\1\u0168\3\0\26\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\2\22\1\u0169\23\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\2\22\1\u016a\23\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\11\22\1\u016b"
- + "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\7\22\1\u016c\16\22\14\0"
- + "\1\22\2\0\2\u0147\10\0\1\u0147\2\0\1\u0148\123\0"
- + "\1\u016d\105\0\2\u016e\3\0\3\u016e\5\0\1\u016e\2\0"
- + "\5\u016e\3\0\1\u016e\1\0\1\u016e\1\0\1\u016e\6\0"
- + "\1\u016e\41\0\1\151\7\0\1\167\13\0\1\u016f\3\0"
- + "\2\u016f\2\165\55\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\14\22\1\u0170\11\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\11\22\1\u0171\14\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\13\22"
- + "\1\u0172\12\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\7\22\1\u0173\16\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\7\22\1\u0174\16\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\4\22\1\u0175\21\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\16\22"
- + "\1\u0176\7\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\11\22\1\u0177\14\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\7\22\1\u0178\3\0\26\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\17\22\1\u0179\6\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\3\22\1\u017a\4\22\3\0"
- + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\7\22\1\u017b\16\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\3\22\1\u017c\4\22\3\0\7\22\1\u017d\16\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\10\22\1\u017e\15\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\21\22\1\u017f\4\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\11\22\1\u0180"
- + "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\14\22\1\u0181\11\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\u0182\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22"
- + "\1\u0183\14\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0184\21\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\10\22\1\u0185\15\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\23\22\1\u0186\2\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"
- + "\1\u0187\21\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\11\22\1\u0188\14\22"
- + "\14\0\1\22\30\0\1\u0189\104\0\2\u018a\3\0\3\u018a"
- + "\5\0\1\u018a\2\0\5\u018a\3\0\1\u018a\1\0\1\u018a"
- + "\1\0\1\u018a\6\0\1\u018a\41\0\1\151\7\0\1\167"
- + "\13\0\1\u018b\3\0\2\u018b\2\165\55\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\20\22\1\u018c"
- + "\5\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\6\22\1\u018d\17\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\5\22\1\u018e\20\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\12\22\1\u018f\13\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\13\22\1\u0190"
- + "\12\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\2\22\1\u0191\23\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\4\22\1\u0192\21\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\2\22\1\u0193\23\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\u0194"
- + "\23\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\7\22\1\u0195\3\0\26\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\7\22\1\u0196\16\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22"
- + "\1\u0197\15\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0198\21\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\10\22\1\u0199\15\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\u019a\3\0\26\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\7\22\1\u019b\3\0\26\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\10\22\1\u019c\15\22\14\0\1\22"
- + "\31\0\1\u019d\103\0\2\u019e\3\0\3\u019e\5\0\1\u019e"
- + "\2\0\5\u019e\3\0\1\u019e\1\0\1\u019e\1\0\1\u019e"
- + "\6\0\1\u019e\41\0\1\151\7\0\1\167\13\0\1\u019f"
- + "\3\0\2\u019f\2\165\55\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\7\22\1\u01a0\16\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\u01a1\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u01a2\3\0"
- + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\4\22\1\u01a3\21\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\7\22\1\u01a4\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22"
- + "\1\u01a5\21\22\14\0\1\22\7\0\3\22\7\0\2\22"
- + "\3\0\4\22\4\0\10\22\3\0\14\22\1\u01a6\11\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\7\22\1\u01a7\16\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22"
- + "\1\u01a8\3\0\26\22\14\0\1\22\7\0\3\22\7\0"
- + "\2\22\3\0\4\22\4\0\7\22\1\u01a9\3\0\26\22"
- + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22"
- + "\4\0\10\22\3\0\20\22\1\u01aa\5\22\14\0\1\22"
- + "\30\0\1\u01ab\104\0\2\u01ac\3\0\3\u01ac\5\0\1\u01ac"
- + "\2\0\5\u01ac\3\0\1\u01ac\1\0\1\u01ac\1\0\1\u01ac"
- + "\6\0\1\u01ac\41\0\1\151\7\0\1\167\13\0\1\u01ad"
- + "\3\0\2\u01ad\2\165\55\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\7\22\1\u01ae\3\0\26\22\14\0\1\22"
- + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22"
- + "\3\0\6\22\1\u01af\17\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u01b0\3\0"
- + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0"
- + "\4\22\4\0\10\22\3\0\10\22\1\u01b1\15\22\14\0"
- + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0"
- + "\10\22\3\0\13\22\1\u01b2\12\22\14\0\1\22\7\0"
- + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0"
- + "\13\22\1\u01b3\12\22\14\0\1\22\25\0\1\u01b4\107\0"
- + "\2\u01b5\3\0\3\u01b5\5\0\1\u01b5\2\0\5\u01b5\3\0"
- + "\1\u01b5\1\0\1\u01b5\1\0\1\u01b5\6\0\1\u01b5\41\0"
- + "\1\151\7\0\1\167\13\0\1\u01b6\3\0\2\u01b6\2\165"
- + "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\3\22"
- + "\1\u01b7\4\22\3\0\26\22\14\0\1\22\7\0\3\22"
- + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22"
- + "\1\u01b8\20\22\14\0\1\22\12\0\1\151\7\0\1\167"
- + "\13\0\1\u01b9\3\0\2\u01b9\2\165\60\0\1\151\7\0"
- + "\1\167\13\0\1\u01ba\3\0\2\u01ba\2\165\60\0\1\151"
- + "\7\0\1\167\13\0\1\u01bb\3\0\2\u01bb\2\165\60\0"
- + "\1\151\7\0\1\167\13\0\1\u01bc\3\0\2\u01bc\2\165"
- + "\60\0\1\151\7\0\1\167\13\0\1\u01bd\3\0\2\u01bd"
- + "\2\165\60\0\1\151\7\0\1\167\13\0\1\u01be\3\0"
- + "\2\u01be\2\165\47\0";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[23028];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\13\0\1\11\1\1\1\11\13\1\3\11\1\1\2\11"
- + "\4\1\1\11\21\1\7\11\4\1\1\11\2\1\2\11"
- + "\3\1\1\11\2\1\1\11\3\1\2\11\1\1\1\11"
- + "\2\1\1\11\1\1\2\11\2\1\1\11\2\1\1\11"
- + "\2\1\1\11\1\1\1\0\2\11\1\1\1\11\1\1"
- + "\1\11\2\1\2\11\1\1\2\11\1\1\2\11\1\0"
- + "\3\1\1\0\11\1\2\11\44\1\11\11\2\1\1\11"
- + "\1\1\6\11\1\1\1\11\1\0\1\11\1\0\1\11"
- + "\1\0\2\11\1\0\1\1\4\0\1\1\2\0\1\11"
- + "\2\1\1\11\2\0\3\11\1\1\1\11\1\0\1\1"
- + "\1\11\61\1\1\0\1\11\1\0\3\11\1\0\1\11"
- + "\2\0\1\1\2\11\1\0\1\11\52\1\1\11\1\0"
- + "\2\11\1\0\42\1\1\0\33\1\1\0\23\1\1\0"
- + "\15\1\1\0\10\1\2\11\11\1";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[446];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
private String sourceCode;
- public ActionScriptLexer(String sourceCode) {
+ public ActionScriptLexer(String sourceCode){
this(new StringReader(sourceCode));
- this.sourceCode = sourceCode;
+ this.sourceCode = sourceCode;
}
- public void yypushbackstr(String s, int state) {
+ public void yypushbackstr(String s, int state)
+ {
sourceCode = s + sourceCode.substring(yychar + yylength());
yyreset(new StringReader(sourceCode));
yybegin(state);
}
- public void yypushbackstr(String s) {
+ public void yypushbackstr(String s)
+ {
yypushbackstr(s, YYINITIAL);
}
@@ -1031,24 +995,24 @@ public final class ActionScriptLexer {
return yyline + 1;
}
- private List listeners = new ArrayList<>();
+ private List listeners=new ArrayList<>();
- public void addListener(LexListener listener) {
+ public void addListener(LexListener listener){
listeners.add(listener);
}
- public void removeListener(LexListener listener) {
+ public void removeListener(LexListener listener){
listeners.remove(listener);
}
- public void informListenersLex(ParsedSymbol s) {
- for (LexListener l : listeners) {
+ public void informListenersLex(ParsedSymbol s){
+ for(LexListener l:listeners){
l.onLex(s);
}
}
- public void informListenersPushBack(ParsedSymbol s) {
- for (LexListener l : listeners) {
+ public void informListenersPushBack(ParsedSymbol s){
+ for(LexListener l:listeners){
l.onPushBack(s);
}
}
@@ -1060,10 +1024,9 @@ public final class ActionScriptLexer {
}
ParsedSymbol last;
-
- public ParsedSymbol lex() throws java.io.IOException, AVM2ParseException {
+ public ParsedSymbol lex() throws java.io.IOException, AVM2ParseException{
ParsedSymbol ret = null;
- if (!pushedBack.isEmpty()) {
+ if (!pushedBack.isEmpty()){
ret = last = pushedBack.pop();
} else {
ret = last = yylex();
@@ -1072,1269 +1035,1090 @@ public final class ActionScriptLexer {
return ret;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public ActionScriptLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public ActionScriptLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 3140) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 3140) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
- }
+ if (zzReader != null)
+ zzReader.close();
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- }
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
- // totalRead = 0: End of stream
- return true;
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
}
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
+ throw new Error(message);
+ }
- zzEndRead = zzStartRead; /* invalidate buffer */
- if (zzReader != null) {
- zzReader.close();
- }
- }
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
+ zzMarkedPos -= number;
+ }
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ParsedSymbol yylex() throws java.io.IOException, AVM2ParseException {
+ int zzInput;
+ int zzAction;
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
+ yychar+= zzMarkedPosL-zzStartRead;
- throw new Error(message);
- }
+ zzAction = -1;
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- zzMarkedPos -= number;
- }
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException
- */
- public ParsedSymbol yylex() throws java.io.IOException, AVM2ParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- zzAction = -1;
-
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 165:
- break;
- case 2: {
- yyline++;
- }
- case 166:
- break;
- case 3: { /*ignore*/
-
- }
- case 167:
- break;
- case 4: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext());
- }
- case 168:
- break;
- case 5: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext());
- }
- case 169:
- break;
- case 6: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext());
- }
- case 170:
- break;
- case 7: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext());
- }
- case 171:
- break;
- case 8: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext());
- }
- case 172:
- break;
- case 9: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext());
- }
- case 173:
- break;
- case 10: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext());
- }
- case 174:
- break;
- case 11: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext());
- }
- case 175:
- break;
- case 12: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext());
- }
- case 176:
- break;
- case 13: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong((yytext())));
- }
- case 177:
- break;
- case 14: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext());
- }
- case 178:
- break;
- case 15: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext());
- }
- case 179:
- break;
- case 16: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext());
- }
- case 180:
- break;
- case 17: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext());
- }
- case 181:
- break;
- case 18: {
- string.setLength(0);
- yybegin(STRING);
- }
- case 182:
- break;
- case 19: {
- string.setLength(0);
- yybegin(CHARLITERAL);
- }
- case 183:
- break;
- case 20: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext());
- }
- case 184:
- break;
- case 21: {
- string.setLength(0);
- yybegin(OIDENTIFIER);
- }
- case 185:
- break;
- case 22: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext());
- }
- case 186:
- break;
- case 23: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext());
- }
- case 187:
- break;
- case 24: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext());
- }
- case 188:
- break;
- case 25: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext());
- }
- case 189:
- break;
- case 26: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext());
- }
- case 190:
- break;
- case 27: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext());
- }
- case 191:
- break;
- case 28: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext());
- }
- case 192:
- break;
- case 29: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext());
- }
- case 193:
- break;
- case 30: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext());
- }
- case 194:
- break;
- case 31: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext());
- }
- case 195:
- break;
- case 32: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext());
- }
- case 196:
- break;
- case 33: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext());
- }
- case 197:
- break;
- case 34: {
- string.append(yytext());
- }
- case 198:
- break;
- case 35: {
- yybegin(YYINITIAL);
- yyline++;
- }
- case 199:
- break;
- case 36: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString());
- }
- case 200:
- break;
- case 37: {
- yybegin(YYINITIAL);
- yyline++;
- }
- case 201:
- break;
- case 38: {
- string.append(yytext());
- yyline++;
- }
- case 202:
- break;
- case 39: {
- yybegin(XML);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_END, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 203:
- break;
- case 40: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRNAMEVAR_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 204:
- break;
- case 41: {
- yybegin(YYINITIAL);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRVALVAR_BEGIN, yytext());
- }
- case 205:
- break;
- case 42: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRATTRNAMEVAR_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 206:
- break;
- case 43: {
- yybegin(YYINITIAL);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRATTRVALVAR_BEGIN, yytext());
- }
- case 207:
- break;
- case 44: {
- string.append(yytext());
- yyline++;
- }
- case 208:
- break;
- case 45: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_VAR_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 209:
- break;
- case 46: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, string.toString());
- }
- case 210:
- break;
- case 47: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext());
- }
- case 211:
- break;
- case 48: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext());
- }
- case 212:
- break;
- case 49: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DESCENDANTS, yytext());
- }
- case 213:
- break;
- case 50: {
- return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, yytext());
- }
- case 214:
- break;
- case 51: {
- return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, Double.parseDouble((yytext())));
- }
- case 215:
- break;
- case 52: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FILTER, yytext());
- }
- case 216:
- break;
- case 53: {
- yybegin(XMLOPENTAG);
- string.setLength(0);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_BEGIN, yytext());
- }
- case 217:
- break;
- case 54: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext());
- }
- case 218:
- break;
- case 55: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext());
- }
- case 219:
- break;
- case 56: {
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTVARTAG_BEGIN, yytext());
- }
- case 220:
- break;
- case 57: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext());
- }
- case 221:
- break;
- case 58: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext());
- }
- case 222:
- break;
- case 59: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext());
- }
- case 223:
- break;
- case 60: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext());
- }
- case 224:
- break;
- case 61: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext());
- }
- case 225:
- break;
- case 62: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext());
- }
- case 226:
- break;
- case 63: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext());
- }
- case 227:
- break;
- case 64: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext(), 8));
- }
- case 228:
- break;
- case 65: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext());
- }
- case 229:
- break;
- case 66: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext());
- }
- case 230:
- break;
- case 67: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext());
- }
- case 231:
- break;
- case 68: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext());
- }
- case 232:
- break;
- case 69: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext());
- }
- case 233:
- break;
- case 70: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext());
- }
- case 234:
- break;
- case 71: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext());
- }
- case 235:
- break;
- case 72: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext());
- }
- case 236:
- break;
- case 73: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext());
- }
- case 237:
- break;
- case 74: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext());
- }
- case 238:
- break;
- case 75: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext());
- }
- case 239:
- break;
- case 76: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext());
- }
- case 240:
- break;
- case 77: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext());
- }
- case 241:
- break;
- case 78: {
- throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 242:
- break;
- case 79: {
- string.append('\"');
- }
- case 243:
- break;
- case 80: {
- string.append('\'');
- }
- case 244:
- break;
- case 81: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 245:
- break;
- case 82: {
- string.append('\f');
- }
- case 246:
- break;
- case 83: {
- string.append('\\');
- }
- case 247:
- break;
- case 84: {
- string.append('\b');
- }
- case 248:
- break;
- case 85: {
- string.append('\r');
- }
- case 249:
- break;
- case 86: {
- string.append('\n');
- }
- case 250:
- break;
- case 87: {
- string.append('\t');
- }
- case 251:
- break;
- case 88: {
- throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 252:
- break;
- case 89: {
- yybegin(XML);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTFINISHTAG_END, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 253:
- break;
- case 90: {
- yybegin(XMLOPENTAGATTRIB);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTENAME, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 254:
- break;
- case 91: {
- yybegin(XMLOPENTAG);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext());
- }
- case 255:
- break;
- case 92: {
- yybegin(XMLINSTRATTRIB);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTENAME, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 256:
- break;
- case 93: {
- yybegin(XML);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTR_END, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 257:
- break;
- case 94: {
- yybegin(XMLINSTROPENTAG);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext());
- }
- case 258:
- break;
- case 95: {
- yybegin(XMLOPENTAG);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 259:
- break;
- case 96: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTVARTAG_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 260:
- break;
- case 97: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext());
- }
- case 261:
- break;
- case 98: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext());
- }
- case 262:
- break;
- case 99: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext());
- }
- case 263:
- break;
- case 100: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext());
- }
- case 264:
- break;
- case 101: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext());
- }
- case 265:
- break;
- case 102: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext());
- }
- case 266:
- break;
- case 103: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext().substring(2), 16));
- }
- case 267:
- break;
- case 104: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext());
- }
- case 268:
- break;
- case 105: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.SET, yytext());
- }
- case 269:
- break;
- case 106: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext());
- }
- case 270:
- break;
- case 107: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext());
- }
- case 271:
- break;
- case 108: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext());
- }
- case 272:
- break;
- case 109: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext());
- }
- case 273:
- break;
- case 110: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.GET, yytext());
- }
- case 274:
- break;
- case 111: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext());
- }
- case 275:
- break;
- case 112: {
- string.append(yytext());
- yybegin(XML);
- String ret = string.toString();
- string.setLength(0);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_CDATA, ret);
- }
- case 276:
- break;
- case 113: {
- string.append(yytext());
- yybegin(XML);
- String ret = string.toString();
- string.setLength(0);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_COMMENT, ret);
- }
- case 277:
- break;
- case 114: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHVARTAG_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 278:
- break;
- case 115: {
- yybegin(XMLINSTROPENTAG);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTR_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 279:
- break;
- case 116: {
- yybegin(YYINITIAL);
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRVARTAG_BEGIN, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 280:
- break;
- case 117: {
- string.append('\u00A7');
- }
- case 281:
- break;
- case 118: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext());
- }
- case 282:
- break;
- case 119: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.EACH, yytext());
- }
- case 283:
- break;
- case 120: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext());
- }
- case 284:
- break;
- case 121: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext());
- }
- case 285:
- break;
- case 122: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext());
- }
- case 286:
- break;
- case 123: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext());
- }
- case 287:
- break;
- case 124: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext());
- }
- case 288:
- break;
- case 125: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext());
- }
- case 289:
- break;
- case 126: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext());
- }
- case 290:
- break;
- case 127: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 291:
- break;
- case 128: {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHTAG, yytext()));
- if (string.length() > 0) {
- pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
- string.setLength(0);
- }
- return lex();
- }
- case 292:
- break;
- case 129: {
- String ret = string.toString();
- string.setLength(0);
- string.append(yytext());
- yybegin(XMLCOMMENT);
- if (!ret.isEmpty()) {
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret);
- }
- }
- case 293:
- break;
- case 130: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext());
- }
- case 294:
- break;
- case 131: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.FINAL, yytext());
- }
- case 295:
- break;
- case 132: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext());
- }
- case 296:
- break;
- case 133: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext());
- }
- case 297:
- break;
- case 134: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext());
- }
- case 298:
- break;
- case 135: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext());
- }
- case 299:
- break;
- case 136: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext());
- }
- case 300:
- break;
- case 137: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext());
- }
- case 301:
- break;
- case 138: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext());
- }
- case 302:
- break;
- case 139: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext());
- }
- case 303:
- break;
- case 140: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.STATIC, yytext());
- }
- case 304:
- break;
- case 141: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext());
- }
- case 305:
- break;
- case 142: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NATIVE, yytext());
- }
- case 306:
- break;
- case 143: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext());
- }
- case 307:
- break;
- case 144: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext());
- }
- case 308:
- break;
- case 145: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext());
- }
- case 309:
- break;
- case 146: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext());
- }
- case 310:
- break;
- case 147: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext());
- }
- case 311:
- break;
- case 148: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext());
- }
- case 312:
- break;
- case 149: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext());
- }
- case 313:
- break;
- case 150: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.DYNAMIC, yytext());
- }
- case 314:
- break;
- case 151: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext());
- }
- case 315:
- break;
- case 152: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext());
- }
- case 316:
- break;
- case 153: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext());
- }
- case 317:
- break;
- case 154: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext());
- }
- case 318:
- break;
- case 155: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.OVERRIDE, yytext());
- }
- case 319:
- break;
- case 156: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext());
- }
- case 320:
- break;
- case 157: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext());
- }
- case 321:
- break;
- case 158: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NAMESPACE, yytext());
- }
- case 322:
- break;
- case 159: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext());
- }
- case 323:
- break;
- case 160: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext());
- }
- case 324:
- break;
- case 161: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext());
- }
- case 325:
- break;
- case 162: {
- String ret = string.toString();
- string.setLength(0);
- string.append(yytext());
- yybegin(XMLCDATA);
- if (!ret.isEmpty()) {
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret);
- }
- }
- case 326:
- break;
- case 163: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext());
- }
- case 327:
- break;
- case 164: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext());
- }
- case 328:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return new ParsedSymbol(SymbolGroup.EOF, SymbolType.EOF, null);
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 164: break;
+ case 2:
+ { yyline++;
+ }
+ case 165: break;
+ case 3:
+ { /*ignore*/
+ }
+ case 166: break;
+ case 4:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext());
+ }
+ case 167: break;
+ case 5:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext());
+ }
+ case 168: break;
+ case 6:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext());
+ }
+ case 169: break;
+ case 7:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext());
+ }
+ case 170: break;
+ case 8:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext());
+ }
+ case 171: break;
+ case 9:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext());
+ }
+ case 172: break;
+ case 10:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext());
+ }
+ case 173: break;
+ case 11:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext());
+ }
+ case 174: break;
+ case 12:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext());
+ }
+ case 175: break;
+ case 13:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong((yytext())));
+ }
+ case 176: break;
+ case 14:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext());
+ }
+ case 177: break;
+ case 15:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext());
+ }
+ case 178: break;
+ case 16:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext());
+ }
+ case 179: break;
+ case 17:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext());
+ }
+ case 180: break;
+ case 18:
+ { string.setLength(0);
+ yybegin(STRING);
+ }
+ case 181: break;
+ case 19:
+ { string.setLength(0);
+ yybegin(CHARLITERAL);
+ }
+ case 182: break;
+ case 20:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext());
+ }
+ case 183: break;
+ case 21:
+ { string.setLength(0);
+ yybegin(OIDENTIFIER);
+ }
+ case 184: break;
+ case 22:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext());
+ }
+ case 185: break;
+ case 23:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext());
+ }
+ case 186: break;
+ case 24:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext());
+ }
+ case 187: break;
+ case 25:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext());
+ }
+ case 188: break;
+ case 26:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext());
+ }
+ case 189: break;
+ case 27:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext());
+ }
+ case 190: break;
+ case 28:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext());
+ }
+ case 191: break;
+ case 29:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext());
+ }
+ case 192: break;
+ case 30:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext());
+ }
+ case 193: break;
+ case 31:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext());
+ }
+ case 194: break;
+ case 32:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext());
+ }
+ case 195: break;
+ case 33:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext());
+ }
+ case 196: break;
+ case 34:
+ { string.append(yytext());
+ }
+ case 197: break;
+ case 35:
+ { yybegin(YYINITIAL); yyline++;
+ }
+ case 198: break;
+ case 36:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString());
+ }
+ case 199: break;
+ case 37:
+ { yybegin(YYINITIAL); yyline++;
+ }
+ case 200: break;
+ case 38:
+ { string.append(yytext()); yyline++;
+ }
+ case 201: break;
+ case 39:
+ { yybegin(XML);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_END, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 202: break;
+ case 40:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRNAMEVAR_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 203: break;
+ case 41:
+ { yybegin(YYINITIAL);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRVALVAR_BEGIN, yytext());
+ }
+ case 204: break;
+ case 42:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRATTRNAMEVAR_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 205: break;
+ case 43:
+ { yybegin(YYINITIAL);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRATTRVALVAR_BEGIN, yytext());
+ }
+ case 206: break;
+ case 44:
+ { string.append(yytext()); yyline++;
+ }
+ case 207: break;
+ case 45:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_VAR_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 208: break;
+ case 46:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, string.toString());
+ }
+ case 209: break;
+ case 47:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext());
+ }
+ case 210: break;
+ case 48:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext());
+ }
+ case 211: break;
+ case 49:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DESCENDANTS, yytext());
+ }
+ case 212: break;
+ case 50:
+ { return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, yytext());
+ }
+ case 213: break;
+ case 51:
+ { return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, Double.parseDouble((yytext())));
+ }
+ case 214: break;
+ case 52:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FILTER, yytext());
+ }
+ case 215: break;
+ case 53:
+ { yybegin(XMLOPENTAG);
+ string.setLength(0);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_BEGIN, yytext());
+ }
+ case 216: break;
+ case 54:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext());
+ }
+ case 217: break;
+ case 55:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext());
+ }
+ case 218: break;
+ case 56:
+ { return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTVARTAG_BEGIN, yytext());
+ }
+ case 219: break;
+ case 57:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext());
+ }
+ case 220: break;
+ case 58:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext());
+ }
+ case 221: break;
+ case 59:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext());
+ }
+ case 222: break;
+ case 60:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext());
+ }
+ case 223: break;
+ case 61:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext());
+ }
+ case 224: break;
+ case 62:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext());
+ }
+ case 225: break;
+ case 63:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext());
+ }
+ case 226: break;
+ case 64:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext(), 8));
+ }
+ case 227: break;
+ case 65:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext());
+ }
+ case 228: break;
+ case 66:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext());
+ }
+ case 229: break;
+ case 67:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext());
+ }
+ case 230: break;
+ case 68:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext());
+ }
+ case 231: break;
+ case 69:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext());
+ }
+ case 232: break;
+ case 70:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext());
+ }
+ case 233: break;
+ case 71:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext());
+ }
+ case 234: break;
+ case 72:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext());
+ }
+ case 235: break;
+ case 73:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext());
+ }
+ case 236: break;
+ case 74:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext());
+ }
+ case 237: break;
+ case 75:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext());
+ }
+ case 238: break;
+ case 76:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext());
+ }
+ case 239: break;
+ case 77:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext());
+ }
+ case 240: break;
+ case 78:
+ { throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 241: break;
+ case 79:
+ { string.append('\"');
+ }
+ case 242: break;
+ case 80:
+ { string.append('\'');
+ }
+ case 243: break;
+ case 81:
+ { string.append('\f');
+ }
+ case 244: break;
+ case 82:
+ { string.append('\\');
+ }
+ case 245: break;
+ case 83:
+ { string.append('\b');
+ }
+ case 246: break;
+ case 84:
+ { string.append('\r');
+ }
+ case 247: break;
+ case 85:
+ { string.append('\n');
+ }
+ case 248: break;
+ case 86:
+ { string.append('\t');
+ }
+ case 249: break;
+ case 87:
+ { throw new AVM2ParseException("Illegal escape sequence \""+ yytext() +"\"", yyline + 1);
+ }
+ case 250: break;
+ case 88:
+ { yybegin(XML);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTFINISHTAG_END, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 251: break;
+ case 89:
+ { yybegin(XMLOPENTAGATTRIB);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTENAME, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 252: break;
+ case 90:
+ { yybegin(XMLOPENTAG);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext());
+ }
+ case 253: break;
+ case 91:
+ { yybegin(XMLINSTRATTRIB);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTENAME, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 254: break;
+ case 92:
+ { yybegin(XML);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTR_END, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 255: break;
+ case 93:
+ { yybegin(XMLINSTROPENTAG);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext());
+ }
+ case 256: break;
+ case 94:
+ { yybegin(XMLOPENTAG);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 257: break;
+ case 95:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTVARTAG_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 258: break;
+ case 96:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext());
+ }
+ case 259: break;
+ case 97:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext());
+ }
+ case 260: break;
+ case 98:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext());
+ }
+ case 261: break;
+ case 99:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext());
+ }
+ case 262: break;
+ case 100:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext());
+ }
+ case 263: break;
+ case 101:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext());
+ }
+ case 264: break;
+ case 102:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext().substring(2), 16));
+ }
+ case 265: break;
+ case 103:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext());
+ }
+ case 266: break;
+ case 104:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.SET, yytext());
+ }
+ case 267: break;
+ case 105:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext());
+ }
+ case 268: break;
+ case 106:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext());
+ }
+ case 269: break;
+ case 107:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext());
+ }
+ case 270: break;
+ case 108:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext());
+ }
+ case 271: break;
+ case 109:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.GET, yytext());
+ }
+ case 272: break;
+ case 110:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext());
+ }
+ case 273: break;
+ case 111:
+ { string.append(yytext());
+ yybegin(XML);
+ String ret = string.toString();
+ string.setLength(0);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_CDATA, ret);
+ }
+ case 274: break;
+ case 112:
+ { string.append(yytext());
+ yybegin(XML);
+ String ret = string.toString();
+ string.setLength(0);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_COMMENT, ret);
+ }
+ case 275: break;
+ case 113:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHVARTAG_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 276: break;
+ case 114:
+ { yybegin(XMLINSTROPENTAG);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTR_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 277: break;
+ case 115:
+ { yybegin(YYINITIAL);
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRVARTAG_BEGIN, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 278: break;
+ case 116:
+ { string.append('\u00A7');
+ }
+ case 279: break;
+ case 117:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext());
+ }
+ case 280: break;
+ case 118:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.EACH, yytext());
+ }
+ case 281: break;
+ case 119:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext());
+ }
+ case 282: break;
+ case 120:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext());
+ }
+ case 283: break;
+ case 121:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext());
+ }
+ case 284: break;
+ case 122:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext());
+ }
+ case 285: break;
+ case 123:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext());
+ }
+ case 286: break;
+ case 124:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext());
+ }
+ case 287: break;
+ case 125:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext());
+ }
+ case 288: break;
+ case 126:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 289: break;
+ case 127:
+ { pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHTAG, yytext()));
+ if (string.length() > 0){
+ pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString()));
+ string.setLength(0);
+ }
+ return lex();
+ }
+ case 290: break;
+ case 128:
+ { String ret = string.toString(); string.setLength(0); string.append(yytext()); yybegin(XMLCOMMENT);
+ if (!ret.isEmpty()) return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret);
+ }
+ case 291: break;
+ case 129:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext());
+ }
+ case 292: break;
+ case 130:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.FINAL, yytext());
+ }
+ case 293: break;
+ case 131:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext());
+ }
+ case 294: break;
+ case 132:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext());
+ }
+ case 295: break;
+ case 133:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext());
+ }
+ case 296: break;
+ case 134:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext());
+ }
+ case 297: break;
+ case 135:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext());
+ }
+ case 298: break;
+ case 136:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext());
+ }
+ case 299: break;
+ case 137:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext());
+ }
+ case 300: break;
+ case 138:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext());
+ }
+ case 301: break;
+ case 139:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.STATIC, yytext());
+ }
+ case 302: break;
+ case 140:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext());
+ }
+ case 303: break;
+ case 141:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NATIVE, yytext());
+ }
+ case 304: break;
+ case 142:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext());
+ }
+ case 305: break;
+ case 143:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext());
+ }
+ case 306: break;
+ case 144:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext());
+ }
+ case 307: break;
+ case 145:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext());
+ }
+ case 308: break;
+ case 146:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext());
+ }
+ case 309: break;
+ case 147:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext());
+ }
+ case 310: break;
+ case 148:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext());
+ }
+ case 311: break;
+ case 149:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.DYNAMIC, yytext());
+ }
+ case 312: break;
+ case 150:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext());
+ }
+ case 313: break;
+ case 151:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext());
+ }
+ case 314: break;
+ case 152:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext());
+ }
+ case 315: break;
+ case 153:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext());
+ }
+ case 316: break;
+ case 154:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.OVERRIDE, yytext());
+ }
+ case 317: break;
+ case 155:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext());
+ }
+ case 318: break;
+ case 156:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext());
+ }
+ case 319: break;
+ case 157:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NAMESPACE, yytext());
+ }
+ case 320: break;
+ case 158:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext());
+ }
+ case 321: break;
+ case 159:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext());
+ }
+ case 322: break;
+ case 160:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext());
+ }
+ case 323: break;
+ case 161:
+ { String ret = string.toString(); string.setLength(0); string.append(yytext() ); yybegin(XMLCDATA);
+ if (!ret.isEmpty()) return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret);
+ }
+ case 324: break;
+ case 162:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext());
+ }
+ case 325: break;
+ case 163:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext());
+ }
+ case 326: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ParsedSymbol(SymbolGroup.EOF, SymbolType.EOF, null);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java
index a67fb0fc5..2580a517e 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java
@@ -19,614 +19,557 @@
/* Method info lexer specification */
package com.jpexs.decompiler.flash.abc.methodinfo_parser;
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex
*/
public final class MethodInfoLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int STRING = 2;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int STRING = 2;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\11\5\1\3\1\2\1\61\1\62\1\1\16\5\4\0\1\3\1\0"
- + "\1\43\1\0\1\4\2\0\1\57\2\0\1\46\1\37\1\45\1\7"
- + "\1\35\1\0\1\6\3\60\4\41\2\10\1\44\2\0\1\47\3\0"
- + "\4\40\1\36\1\40\5\4\1\31\1\4\1\25\1\4\1\17\12\4"
- + "\1\12\1\42\1\13\1\0\1\4\1\0\1\32\1\27\1\51\1\52"
- + "\1\24\1\56\1\54\1\4\1\21\1\4\1\53\1\33\1\11\1\14"
- + "\1\20\1\50\1\4\1\30\1\15\1\22\1\26\1\23\1\4\1\55"
- + "\2\4\1\16\1\0\1\34\1\0\6\5\1\63\32\5\2\0\4\4"
- + "\4\0\1\4\2\0\1\5\7\0\1\4\4\0\1\4\5\0\27\4"
- + "\1\0\37\4\1\0\u01ca\4\4\0\14\4\16\0\5\4\7\0\1\4"
- + "\1\0\1\4\21\0\160\5\5\4\1\0\2\4\2\0\4\4\10\0"
- + "\1\4\1\0\3\4\1\0\1\4\1\0\24\4\1\0\123\4\1\0"
- + "\213\4\1\0\5\5\2\0\236\4\11\0\46\4\2\0\1\4\7\0"
- + "\47\4\7\0\1\4\1\0\55\5\1\0\1\5\1\0\2\5\1\0"
- + "\2\5\1\0\1\5\10\0\33\4\5\0\3\4\15\0\5\5\6\0"
- + "\1\4\4\0\13\5\5\0\53\4\37\5\4\0\2\4\1\5\143\4"
- + "\1\0\1\4\10\5\1\0\6\5\2\4\2\5\1\0\4\5\2\4"
- + "\12\5\3\4\2\0\1\4\17\0\1\5\1\4\1\5\36\4\33\5"
- + "\2\0\131\4\13\5\1\4\16\0\12\5\41\4\11\5\2\4\4\0"
- + "\1\4\5\0\26\4\4\5\1\4\11\5\1\4\3\5\1\4\5\5"
- + "\22\0\31\4\3\5\104\0\1\4\1\0\13\4\67\0\33\5\1\0"
- + "\4\5\66\4\3\5\1\4\22\5\1\4\7\5\12\4\2\5\2\0"
- + "\12\5\1\0\7\4\1\0\7\4\1\0\3\5\1\0\10\4\2\0"
- + "\2\4\2\0\26\4\1\0\7\4\1\0\1\4\3\0\4\4\2\0"
- + "\1\5\1\4\7\5\2\0\2\5\2\0\3\5\1\4\10\0\1\5"
- + "\4\0\2\4\1\0\3\4\2\5\2\0\12\5\4\4\7\0\1\4"
- + "\5\0\3\5\1\0\6\4\4\0\2\4\2\0\26\4\1\0\7\4"
- + "\1\0\2\4\1\0\2\4\1\0\2\4\2\0\1\5\1\0\5\5"
- + "\4\0\2\5\2\0\3\5\3\0\1\5\7\0\4\4\1\0\1\4"
- + "\7\0\14\5\3\4\1\5\13\0\3\5\1\0\11\4\1\0\3\4"
- + "\1\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\2\0\1\5"
- + "\1\4\10\5\1\0\3\5\1\0\3\5\2\0\1\4\17\0\2\4"
- + "\2\5\2\0\12\5\1\0\1\4\17\0\3\5\1\0\10\4\2\0"
- + "\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\2\0"
- + "\1\5\1\4\7\5\2\0\2\5\2\0\3\5\10\0\2\5\4\0"
- + "\2\4\1\0\3\4\2\5\2\0\12\5\1\0\1\4\20\0\1\5"
- + "\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0"
- + "\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\14\4\4\0"
- + "\5\5\3\0\3\5\1\0\4\5\2\0\1\4\6\0\1\5\16\0"
- + "\12\5\11\0\1\4\7\0\3\5\1\0\10\4\1\0\3\4\1\0"
- + "\27\4\1\0\12\4\1\0\5\4\3\0\1\4\7\5\1\0\3\5"
- + "\1\0\4\5\7\0\2\5\1\0\2\4\6\0\2\4\2\5\2\0"
- + "\12\5\22\0\2\5\1\0\10\4\1\0\3\4\1\0\27\4\1\0"
- + "\12\4\1\0\5\4\2\0\1\5\1\4\7\5\1\0\3\5\1\0"
- + "\4\5\7\0\2\5\7\0\1\4\1\0\2\4\2\5\2\0\12\5"
- + "\1\0\2\4\17\0\2\5\1\0\10\4\1\0\3\4\1\0\51\4"
- + "\2\0\1\4\7\5\1\0\3\5\1\0\4\5\1\4\10\0\1\5"
- + "\10\0\2\4\2\5\2\0\12\5\12\0\6\4\2\0\2\5\1\0"
- + "\22\4\3\0\30\4\1\0\11\4\1\0\1\4\2\0\7\4\3\0"
- + "\1\5\4\0\6\5\1\0\1\5\1\0\10\5\22\0\2\5\15\0"
- + "\60\4\1\5\2\4\7\5\4\0\10\4\10\5\1\0\12\5\47\0"
- + "\2\4\1\0\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0"
- + "\4\4\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0"
- + "\2\4\1\0\4\4\1\5\2\4\6\5\1\0\2\5\1\4\2\0"
- + "\5\4\1\0\1\4\1\0\6\5\2\0\12\5\2\0\4\4\40\0"
- + "\1\4\27\0\2\5\6\0\12\5\13\0\1\5\1\0\1\5\1\0"
- + "\1\5\4\0\2\5\10\4\1\0\44\4\4\0\24\5\1\0\2\5"
- + "\5\4\13\5\1\0\44\5\11\0\1\5\71\0\53\4\24\5\1\4"
- + "\12\5\6\0\6\4\4\5\4\4\3\5\1\4\3\5\2\4\7\5"
- + "\3\4\4\5\15\4\14\5\1\4\17\5\2\0\46\4\1\0\1\4"
- + "\5\0\1\4\2\0\53\4\1\0\u014d\4\1\0\4\4\2\0\7\4"
- + "\1\0\1\4\1\0\4\4\2\0\51\4\1\0\4\4\2\0\41\4"
- + "\1\0\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\17\4"
- + "\1\0\71\4\1\0\4\4\2\0\103\4\2\0\3\5\40\0\20\4"
- + "\20\0\125\4\14\0\u026c\4\2\0\21\4\1\0\32\4\5\0\113\4"
- + "\3\0\3\4\17\0\15\4\1\0\4\4\3\5\13\0\22\4\3\5"
- + "\13\0\22\4\2\5\14\0\15\4\1\0\3\4\1\0\2\5\14\0"
- + "\64\4\40\5\3\0\1\4\3\0\2\4\1\5\2\0\12\5\41\0"
- + "\3\5\2\0\12\5\6\0\130\4\10\0\51\4\1\5\1\4\5\0"
- + "\106\4\12\0\35\4\3\0\14\5\4\0\14\5\12\0\12\5\36\4"
- + "\2\0\5\4\13\0\54\4\4\0\21\5\7\4\2\5\6\0\12\5"
- + "\46\0\27\4\5\5\4\0\65\4\12\5\1\0\35\5\2\0\13\5"
- + "\6\0\12\5\15\0\1\4\130\0\5\5\57\4\21\5\7\4\4\0"
- + "\12\5\21\0\11\5\14\0\3\5\36\4\15\5\2\4\12\5\54\4"
- + "\16\5\14\0\44\4\24\5\10\0\12\5\3\0\3\4\12\5\44\4"
- + "\122\0\3\5\1\0\25\5\4\4\1\5\4\4\3\5\2\4\11\0"
- + "\300\4\47\5\25\0\4\5\u0116\4\2\0\6\4\2\0\46\4\2\0"
- + "\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4\1\0"
- + "\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0"
- + "\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4\1\0"
- + "\7\4\16\0\5\5\30\0\1\61\1\61\5\5\20\0\2\4\23\0"
- + "\1\4\13\0\5\5\5\0\6\5\1\0\1\4\15\0\1\4\20\0"
- + "\15\4\3\0\33\4\25\0\15\5\4\0\1\5\3\0\14\5\21\0"
- + "\1\4\4\0\1\4\2\0\12\4\1\0\1\4\3\0\5\4\6\0"
- + "\1\4\1\0\1\4\1\0\1\4\1\0\4\4\1\0\13\4\2\0"
- + "\4\4\5\0\5\4\4\0\1\4\21\0\51\4\u0a77\0\57\4\1\0"
- + "\57\4\1\0\205\4\6\0\4\4\3\5\2\4\14\0\46\4\1\0"
- + "\1\4\5\0\1\4\2\0\70\4\7\0\1\4\17\0\1\5\27\4"
- + "\11\0\7\4\1\0\7\4\1\0\7\4\1\0\7\4\1\0\7\4"
- + "\1\0\7\4\1\0\7\4\1\0\7\4\1\0\40\5\57\0\1\4"
- + "\u01d5\0\3\4\31\0\11\4\6\5\1\0\5\4\2\0\5\4\4\0"
- + "\126\4\2\0\2\5\2\0\3\4\1\0\132\4\1\0\4\4\5\0"
- + "\51\4\3\0\136\4\21\0\33\4\65\0\20\4\u0200\0\u19b6\4\112\0"
- + "\u51cd\4\63\0\u048d\4\103\0\56\4\2\0\u010d\4\3\0\20\4\12\5"
- + "\2\4\24\0\57\4\1\5\4\0\12\5\1\0\31\4\7\0\1\5"
- + "\120\4\2\5\45\0\11\4\2\0\147\4\2\0\4\4\1\0\4\4"
- + "\14\0\13\4\115\0\12\4\1\5\3\4\1\5\4\4\1\5\27\4"
- + "\5\5\20\0\1\4\7\0\64\4\14\0\2\5\62\4\21\5\13\0"
- + "\12\5\6\0\22\5\6\4\3\0\1\4\4\0\12\5\34\4\10\5"
- + "\2\0\27\4\15\5\14\0\35\4\3\0\4\5\57\4\16\5\16\0"
- + "\1\4\12\5\46\0\51\4\16\5\11\0\3\4\1\5\10\4\2\5"
- + "\2\0\12\5\6\0\27\4\3\0\1\4\1\5\4\0\60\4\1\5"
- + "\1\4\3\5\2\4\2\5\5\4\2\5\1\4\1\5\1\4\30\0"
- + "\3\4\2\0\13\4\5\5\2\0\3\4\2\5\12\0\6\4\2\0"
- + "\6\4\2\0\6\4\11\0\7\4\1\0\7\4\221\0\43\4\10\5"
- + "\1\0\2\5\2\0\12\5\6\0\u2ba4\4\14\0\27\4\4\0\61\4"
- + "\u2104\0\u016e\4\2\0\152\4\46\0\7\4\14\0\5\4\5\0\1\4"
- + "\1\5\12\4\1\0\15\4\1\0\5\4\1\0\1\4\1\0\2\4"
- + "\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4"
- + "\50\0\15\4\3\0\20\5\20\0\7\5\14\0\2\4\30\0\3\4"
- + "\31\0\1\4\6\0\5\4\1\0\207\4\2\0\1\5\4\0\1\4"
- + "\13\0\12\5\7\0\32\4\4\0\1\4\1\0\32\4\13\0\131\4"
- + "\3\0\6\4\2\0\6\4\2\0\6\4\2\0\3\4\3\0\2\4"
- + "\3\0\2\4\22\0\3\5\4\0\14\4\1\0\32\4\1\0\23\4"
- + "\1\0\2\4\1\0\17\4\2\0\16\4\42\0\173\4\105\0\65\4"
- + "\210\0\1\5\202\0\35\4\3\0\61\4\57\0\37\4\21\0\33\4"
- + "\65\0\36\4\2\0\44\4\4\0\10\4\1\0\5\4\52\0\236\4"
- + "\2\0\12\5\u0356\0\6\4\2\0\1\4\1\0\54\4\1\0\2\4"
- + "\3\0\1\4\2\0\27\4\252\0\26\4\12\0\32\4\106\0\70\4"
- + "\6\0\2\4\100\0\1\4\3\5\1\0\2\5\5\0\4\5\4\4"
- + "\1\0\3\4\1\0\33\4\4\0\3\5\4\0\1\5\40\0\35\4"
- + "\203\0\66\4\12\0\26\4\12\0\23\4\215\0\111\4\u03b7\0\3\5"
- + "\65\4\17\5\37\0\12\5\20\0\3\5\55\4\13\5\2\0\1\5"
- + "\22\0\31\4\7\0\12\5\6\0\3\5\44\4\16\5\1\0\12\5"
- + "\100\0\3\5\60\4\16\5\4\4\13\0\12\5\u04a6\0\53\4\15\5"
- + "\10\0\12\5\u0936\0\u036f\4\221\0\143\4\u0b9d\0\u042f\4\u33d1\0\u0239\4"
- + "\u04c7\0\105\4\13\0\1\4\56\5\20\0\4\5\15\4\u4060\0\2\4"
- + "\u2163\0\5\5\3\0\26\5\2\0\7\5\36\0\4\5\224\0\3\5"
- + "\u01bb\0\125\4\1\0\107\4\1\0\2\4\2\0\1\4\2\0\2\4"
- + "\2\0\4\4\1\0\14\4\1\0\1\4\1\0\7\4\1\0\101\4"
- + "\1\0\4\4\2\0\10\4\1\0\7\4\1\0\34\4\1\0\4\4"
- + "\1\0\5\4\1\0\1\4\3\0\7\4\1\0\u0154\4\2\0\31\4"
- + "\1\0\31\4\1\0\37\4\1\0\31\4\1\0\37\4\1\0\31\4"
- + "\1\0\37\4\1\0\31\4\1\0\37\4\1\0\31\4\1\0\10\4"
- + "\2\0\62\5\u1600\0\4\4\1\0\33\4\1\0\2\4\1\0\1\4"
- + "\2\0\1\4\1\0\12\4\1\0\4\4\1\0\1\4\1\0\1\4"
- + "\6\0\1\4\4\0\1\4\1\0\1\4\1\0\1\4\1\0\3\4"
- + "\1\0\2\4\1\0\1\4\2\0\1\4\1\0\1\4\1\0\1\4"
- + "\1\0\1\4\1\0\1\4\1\0\2\4\1\0\1\4\2\0\4\4"
- + "\1\0\7\4\1\0\4\4\1\0\4\4\1\0\1\4\1\0\12\4"
- + "\1\0\21\4\5\0\3\4\1\0\5\4\1\0\21\4\u1144\0\ua6d7\4"
- + "\51\0\u1035\4\13\0\336\4\u3fe2\0\u021e\4\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"
- + "\1\5\36\0\140\5\200\0\360\5\uffff\0\uffff\0\ufe12\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\5\1\3\1\2\1\57\1\60\1\1\16\5\4\0\1\3\1\0"+
+ "\1\42\1\0\1\4\2\0\1\56\2\0\1\45\1\37\1\44\1\7"+
+ "\1\35\1\0\1\6\11\10\1\43\2\0\1\46\3\0\4\40\1\36"+
+ "\1\40\5\4\1\31\1\4\1\25\1\4\1\17\12\4\1\12\1\41"+
+ "\1\13\1\0\1\4\1\0\1\32\1\27\1\50\1\51\1\24\1\55"+
+ "\1\53\1\4\1\21\1\4\1\52\1\33\1\11\1\14\1\20\1\47"+
+ "\1\4\1\30\1\15\1\22\1\26\1\23\1\4\1\54\2\4\1\16"+
+ "\1\0\1\34\1\0\6\5\1\61\32\5\2\0\4\4\4\0\1\4"+
+ "\2\0\1\5\7\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4"+
+ "\1\0\u01ca\4\4\0\14\4\16\0\5\4\7\0\1\4\1\0\1\4"+
+ "\21\0\160\5\5\4\1\0\2\4\2\0\4\4\10\0\1\4\1\0"+
+ "\3\4\1\0\1\4\1\0\24\4\1\0\123\4\1\0\213\4\1\0"+
+ "\5\5\2\0\236\4\11\0\46\4\2\0\1\4\7\0\47\4\7\0"+
+ "\1\4\1\0\55\5\1\0\1\5\1\0\2\5\1\0\2\5\1\0"+
+ "\1\5\10\0\33\4\5\0\3\4\15\0\5\5\6\0\1\4\4\0"+
+ "\13\5\5\0\53\4\37\5\4\0\2\4\1\5\143\4\1\0\1\4"+
+ "\10\5\1\0\6\5\2\4\2\5\1\0\4\5\2\4\12\5\3\4"+
+ "\2\0\1\4\17\0\1\5\1\4\1\5\36\4\33\5\2\0\131\4"+
+ "\13\5\1\4\16\0\12\5\41\4\11\5\2\4\4\0\1\4\5\0"+
+ "\26\4\4\5\1\4\11\5\1\4\3\5\1\4\5\5\22\0\31\4"+
+ "\3\5\104\0\1\4\1\0\13\4\67\0\33\5\1\0\4\5\66\4"+
+ "\3\5\1\4\22\5\1\4\7\5\12\4\2\5\2\0\12\5\1\0"+
+ "\7\4\1\0\7\4\1\0\3\5\1\0\10\4\2\0\2\4\2\0"+
+ "\26\4\1\0\7\4\1\0\1\4\3\0\4\4\2\0\1\5\1\4"+
+ "\7\5\2\0\2\5\2\0\3\5\1\4\10\0\1\5\4\0\2\4"+
+ "\1\0\3\4\2\5\2\0\12\5\4\4\7\0\1\4\5\0\3\5"+
+ "\1\0\6\4\4\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4"+
+ "\1\0\2\4\1\0\2\4\2\0\1\5\1\0\5\5\4\0\2\5"+
+ "\2\0\3\5\3\0\1\5\7\0\4\4\1\0\1\4\7\0\14\5"+
+ "\3\4\1\5\13\0\3\5\1\0\11\4\1\0\3\4\1\0\26\4"+
+ "\1\0\7\4\1\0\2\4\1\0\5\4\2\0\1\5\1\4\10\5"+
+ "\1\0\3\5\1\0\3\5\2\0\1\4\17\0\2\4\2\5\2\0"+
+ "\12\5\1\0\1\4\17\0\3\5\1\0\10\4\2\0\2\4\2\0"+
+ "\26\4\1\0\7\4\1\0\2\4\1\0\5\4\2\0\1\5\1\4"+
+ "\7\5\2\0\2\5\2\0\3\5\10\0\2\5\4\0\2\4\1\0"+
+ "\3\4\2\5\2\0\12\5\1\0\1\4\20\0\1\5\1\4\1\0"+
+ "\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0\1\4\1\0"+
+ "\2\4\3\0\2\4\3\0\3\4\3\0\14\4\4\0\5\5\3\0"+
+ "\3\5\1\0\4\5\2\0\1\4\6\0\1\5\16\0\12\5\11\0"+
+ "\1\4\7\0\3\5\1\0\10\4\1\0\3\4\1\0\27\4\1\0"+
+ "\12\4\1\0\5\4\3\0\1\4\7\5\1\0\3\5\1\0\4\5"+
+ "\7\0\2\5\1\0\2\4\6\0\2\4\2\5\2\0\12\5\22\0"+
+ "\2\5\1\0\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0"+
+ "\5\4\2\0\1\5\1\4\7\5\1\0\3\5\1\0\4\5\7\0"+
+ "\2\5\7\0\1\4\1\0\2\4\2\5\2\0\12\5\1\0\2\4"+
+ "\17\0\2\5\1\0\10\4\1\0\3\4\1\0\51\4\2\0\1\4"+
+ "\7\5\1\0\3\5\1\0\4\5\1\4\10\0\1\5\10\0\2\4"+
+ "\2\5\2\0\12\5\12\0\6\4\2\0\2\5\1\0\22\4\3\0"+
+ "\30\4\1\0\11\4\1\0\1\4\2\0\7\4\3\0\1\5\4\0"+
+ "\6\5\1\0\1\5\1\0\10\5\22\0\2\5\15\0\60\4\1\5"+
+ "\2\4\7\5\4\0\10\4\10\5\1\0\12\5\47\0\2\4\1\0"+
+ "\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0"+
+ "\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0"+
+ "\4\4\1\5\2\4\6\5\1\0\2\5\1\4\2\0\5\4\1\0"+
+ "\1\4\1\0\6\5\2\0\12\5\2\0\4\4\40\0\1\4\27\0"+
+ "\2\5\6\0\12\5\13\0\1\5\1\0\1\5\1\0\1\5\4\0"+
+ "\2\5\10\4\1\0\44\4\4\0\24\5\1\0\2\5\5\4\13\5"+
+ "\1\0\44\5\11\0\1\5\71\0\53\4\24\5\1\4\12\5\6\0"+
+ "\6\4\4\5\4\4\3\5\1\4\3\5\2\4\7\5\3\4\4\5"+
+ "\15\4\14\5\1\4\17\5\2\0\46\4\1\0\1\4\5\0\1\4"+
+ "\2\0\53\4\1\0\u014d\4\1\0\4\4\2\0\7\4\1\0\1\4"+
+ "\1\0\4\4\2\0\51\4\1\0\4\4\2\0\41\4\1\0\4\4"+
+ "\2\0\7\4\1\0\1\4\1\0\4\4\2\0\17\4\1\0\71\4"+
+ "\1\0\4\4\2\0\103\4\2\0\3\5\40\0\20\4\20\0\125\4"+
+ "\14\0\u026c\4\2\0\21\4\1\0\32\4\5\0\113\4\3\0\3\4"+
+ "\17\0\15\4\1\0\4\4\3\5\13\0\22\4\3\5\13\0\22\4"+
+ "\2\5\14\0\15\4\1\0\3\4\1\0\2\5\14\0\64\4\40\5"+
+ "\3\0\1\4\3\0\2\4\1\5\2\0\12\5\41\0\3\5\2\0"+
+ "\12\5\6\0\130\4\10\0\51\4\1\5\1\4\5\0\106\4\12\0"+
+ "\35\4\3\0\14\5\4\0\14\5\12\0\12\5\36\4\2\0\5\4"+
+ "\13\0\54\4\4\0\21\5\7\4\2\5\6\0\12\5\46\0\27\4"+
+ "\5\5\4\0\65\4\12\5\1\0\35\5\2\0\13\5\6\0\12\5"+
+ "\15\0\1\4\130\0\5\5\57\4\21\5\7\4\4\0\12\5\21\0"+
+ "\11\5\14\0\3\5\36\4\15\5\2\4\12\5\54\4\16\5\14\0"+
+ "\44\4\24\5\10\0\12\5\3\0\3\4\12\5\44\4\122\0\3\5"+
+ "\1\0\25\5\4\4\1\5\4\4\3\5\2\4\11\0\300\4\47\5"+
+ "\25\0\4\5\u0116\4\2\0\6\4\2\0\46\4\2\0\6\4\2\0"+
+ "\10\4\1\0\1\4\1\0\1\4\1\0\1\4\1\0\37\4\2\0"+
+ "\65\4\1\0\7\4\1\0\1\4\3\0\3\4\1\0\7\4\3\0"+
+ "\4\4\2\0\6\4\4\0\15\4\5\0\3\4\1\0\7\4\16\0"+
+ "\5\5\30\0\1\57\1\57\5\5\20\0\2\4\23\0\1\4\13\0"+
+ "\5\5\5\0\6\5\1\0\1\4\15\0\1\4\20\0\15\4\3\0"+
+ "\33\4\25\0\15\5\4\0\1\5\3\0\14\5\21\0\1\4\4\0"+
+ "\1\4\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0"+
+ "\1\4\1\0\1\4\1\0\4\4\1\0\13\4\2\0\4\4\5\0"+
+ "\5\4\4\0\1\4\21\0\51\4\u0a77\0\57\4\1\0\57\4\1\0"+
+ "\205\4\6\0\4\4\3\5\2\4\14\0\46\4\1\0\1\4\5\0"+
+ "\1\4\2\0\70\4\7\0\1\4\17\0\1\5\27\4\11\0\7\4"+
+ "\1\0\7\4\1\0\7\4\1\0\7\4\1\0\7\4\1\0\7\4"+
+ "\1\0\7\4\1\0\7\4\1\0\40\5\57\0\1\4\u01d5\0\3\4"+
+ "\31\0\11\4\6\5\1\0\5\4\2\0\5\4\4\0\126\4\2\0"+
+ "\2\5\2\0\3\4\1\0\132\4\1\0\4\4\5\0\51\4\3\0"+
+ "\136\4\21\0\33\4\65\0\20\4\u0200\0\u19b6\4\112\0\u51cd\4\63\0"+
+ "\u048d\4\103\0\56\4\2\0\u010d\4\3\0\20\4\12\5\2\4\24\0"+
+ "\57\4\1\5\4\0\12\5\1\0\31\4\7\0\1\5\120\4\2\5"+
+ "\45\0\11\4\2\0\147\4\2\0\4\4\1\0\4\4\14\0\13\4"+
+ "\115\0\12\4\1\5\3\4\1\5\4\4\1\5\27\4\5\5\20\0"+
+ "\1\4\7\0\64\4\14\0\2\5\62\4\21\5\13\0\12\5\6\0"+
+ "\22\5\6\4\3\0\1\4\4\0\12\5\34\4\10\5\2\0\27\4"+
+ "\15\5\14\0\35\4\3\0\4\5\57\4\16\5\16\0\1\4\12\5"+
+ "\46\0\51\4\16\5\11\0\3\4\1\5\10\4\2\5\2\0\12\5"+
+ "\6\0\27\4\3\0\1\4\1\5\4\0\60\4\1\5\1\4\3\5"+
+ "\2\4\2\5\5\4\2\5\1\4\1\5\1\4\30\0\3\4\2\0"+
+ "\13\4\5\5\2\0\3\4\2\5\12\0\6\4\2\0\6\4\2\0"+
+ "\6\4\11\0\7\4\1\0\7\4\221\0\43\4\10\5\1\0\2\5"+
+ "\2\0\12\5\6\0\u2ba4\4\14\0\27\4\4\0\61\4\u2104\0\u016e\4"+
+ "\2\0\152\4\46\0\7\4\14\0\5\4\5\0\1\4\1\5\12\4"+
+ "\1\0\15\4\1\0\5\4\1\0\1\4\1\0\2\4\1\0\2\4"+
+ "\1\0\154\4\41\0\u016b\4\22\0\100\4\2\0\66\4\50\0\15\4"+
+ "\3\0\20\5\20\0\7\5\14\0\2\4\30\0\3\4\31\0\1\4"+
+ "\6\0\5\4\1\0\207\4\2\0\1\5\4\0\1\4\13\0\12\5"+
+ "\7\0\32\4\4\0\1\4\1\0\32\4\13\0\131\4\3\0\6\4"+
+ "\2\0\6\4\2\0\6\4\2\0\3\4\3\0\2\4\3\0\2\4"+
+ "\22\0\3\5\4\0\14\4\1\0\32\4\1\0\23\4\1\0\2\4"+
+ "\1\0\17\4\2\0\16\4\42\0\173\4\105\0\65\4\210\0\1\5"+
+ "\202\0\35\4\3\0\61\4\57\0\37\4\21\0\33\4\65\0\36\4"+
+ "\2\0\44\4\4\0\10\4\1\0\5\4\52\0\236\4\2\0\12\5"+
+ "\u0356\0\6\4\2\0\1\4\1\0\54\4\1\0\2\4\3\0\1\4"+
+ "\2\0\27\4\252\0\26\4\12\0\32\4\106\0\70\4\6\0\2\4"+
+ "\100\0\1\4\3\5\1\0\2\5\5\0\4\5\4\4\1\0\3\4"+
+ "\1\0\33\4\4\0\3\5\4\0\1\5\40\0\35\4\203\0\66\4"+
+ "\12\0\26\4\12\0\23\4\215\0\111\4\u03b7\0\3\5\65\4\17\5"+
+ "\37\0\12\5\20\0\3\5\55\4\13\5\2\0\1\5\22\0\31\4"+
+ "\7\0\12\5\6\0\3\5\44\4\16\5\1\0\12\5\100\0\3\5"+
+ "\60\4\16\5\4\4\13\0\12\5\u04a6\0\53\4\15\5\10\0\12\5"+
+ "\u0936\0\u036f\4\221\0\143\4\u0b9d\0\u042f\4\u33d1\0\u0239\4\u04c7\0\105\4"+
+ "\13\0\1\4\56\5\20\0\4\5\15\4\u4060\0\2\4\u2163\0\5\5"+
+ "\3\0\26\5\2\0\7\5\36\0\4\5\224\0\3\5\u01bb\0\125\4"+
+ "\1\0\107\4\1\0\2\4\2\0\1\4\2\0\2\4\2\0\4\4"+
+ "\1\0\14\4\1\0\1\4\1\0\7\4\1\0\101\4\1\0\4\4"+
+ "\2\0\10\4\1\0\7\4\1\0\34\4\1\0\4\4\1\0\5\4"+
+ "\1\0\1\4\3\0\7\4\1\0\u0154\4\2\0\31\4\1\0\31\4"+
+ "\1\0\37\4\1\0\31\4\1\0\37\4\1\0\31\4\1\0\37\4"+
+ "\1\0\31\4\1\0\37\4\1\0\31\4\1\0\10\4\2\0\62\5"+
+ "\u1600\0\4\4\1\0\33\4\1\0\2\4\1\0\1\4\2\0\1\4"+
+ "\1\0\12\4\1\0\4\4\1\0\1\4\1\0\1\4\6\0\1\4"+
+ "\4\0\1\4\1\0\1\4\1\0\1\4\1\0\3\4\1\0\2\4"+
+ "\1\0\1\4\2\0\1\4\1\0\1\4\1\0\1\4\1\0\1\4"+
+ "\1\0\1\4\1\0\2\4\1\0\1\4\2\0\4\4\1\0\7\4"+
+ "\1\0\4\4\1\0\4\4\1\0\1\4\1\0\12\4\1\0\21\4"+
+ "\5\0\3\4\1\0\5\4\1\0\21\4\u1144\0\ua6d7\4\51\0\u1035\4"+
+ "\13\0\336\4\u3fe2\0\u021e\4\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+
+ "\1\5\36\0\140\5\200\0\360\5\uffff\0\uffff\0\ufe12\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\2\0\2\1\1\2\1\3\1\1\1\3\7\2\1\1"
- + "\1\4\1\5\1\6\1\7\1\10\2\2\1\11\2\12"
- + "\1\1\1\13\1\14\1\0\1\14\2\0\7\2\1\0"
- + "\3\2\1\15\1\16\1\17\1\20\1\21\1\22\1\16"
- + "\1\23\1\24\1\15\1\25\1\26\1\14\4\0\6\2"
- + "\1\27\4\2\1\16\3\0\1\30\2\2\1\31\6\2"
- + "\1\32\1\33\1\0\7\2\1\34\1\0\1\35\6\2"
- + "\1\0\4\2\1\36\1\37\1\0\1\40\1\41\2\2"
- + "\1\0\1\42\1\43\20\0\1\44";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\2\0\2\1\1\2\1\3\1\1\1\3\7\2\1\1"+
+ "\1\4\1\5\1\6\1\7\1\10\2\2\1\11\2\12"+
+ "\1\1\1\13\1\14\1\0\1\14\2\0\7\2\1\0"+
+ "\3\2\1\15\1\16\1\17\1\15\1\20\1\21\1\22"+
+ "\1\23\1\15\1\24\1\25\1\14\4\0\6\2\1\26"+
+ "\4\2\4\0\1\27\2\2\1\30\6\2\1\0\1\31"+
+ "\1\32\1\0\7\2\1\33\1\0\1\34\6\2\1\0"+
+ "\4\2\1\35\1\36\1\0\1\37\1\40\2\2\1\0"+
+ "\1\41\1\42\20\0\1\43";
- private static int[] zzUnpackAction() {
- int[] result = new int[137];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[137];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\62\0\144\0\226\0\310\0\372\0\u012c\0\u015e"+
+ "\0\u0190\0\u01c2\0\u01f4\0\u0226\0\u0258\0\u028a\0\u02bc\0\u02ee"+
+ "\0\144\0\144\0\144\0\144\0\144\0\u0320\0\u0352\0\u0384"+
+ "\0\u03b6\0\144\0\u03e8\0\144\0\372\0\u041a\0\u044c\0\u047e"+
+ "\0\u04b0\0\u04e2\0\u0514\0\u0546\0\u0578\0\u05aa\0\u05dc\0\u060e"+
+ "\0\u0640\0\u0672\0\u06a4\0\u06d6\0\144\0\144\0\144\0\u0708"+
+ "\0\144\0\144\0\144\0\144\0\u073a\0\144\0\144\0\u076c"+
+ "\0\u076c\0\u079e\0\u07d0\0\u0802\0\u0834\0\u0866\0\u0898\0\u08ca"+
+ "\0\u08fc\0\u092e\0\144\0\u0960\0\u0992\0\u09c4\0\u09f6\0\u0a28"+
+ "\0\u0a5a\0\u0a8c\0\u0abe\0\310\0\u0af0\0\u0b22\0\310\0\u0b54"+
+ "\0\u0b86\0\u0bb8\0\u0bea\0\u0c1c\0\u0c4e\0\u073a\0\144\0\144"+
+ "\0\u0c80\0\u0cb2\0\u0ce4\0\u0d16\0\u0d48\0\u0d7a\0\u0dac\0\u0dde"+
+ "\0\310\0\u0e10\0\310\0\u0e42\0\u0e74\0\u0ea6\0\u0ed8\0\u0f0a"+
+ "\0\u0f3c\0\u0f6e\0\u0fa0\0\u0fd2\0\u1004\0\u1036\0\310\0\310"+
+ "\0\u1068\0\310\0\310\0\u109a\0\u10cc\0\u10fe\0\310\0\310"+
+ "\0\u1130\0\u1162\0\u1194\0\u11c6\0\u11f8\0\u122a\0\u125c\0\u128e"+
+ "\0\u12c0\0\u12f2\0\u1324\0\u1356\0\u1388\0\u13ba\0\u13ec\0\u141e"+
+ "\0\144";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[137];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\64\0\150\0\234\0\320\0\u0104\0\u0138\0\u016c"
- + "\0\u01a0\0\u01d4\0\u0208\0\u023c\0\u0270\0\u02a4\0\u02d8\0\u030c"
- + "\0\150\0\150\0\150\0\150\0\150\0\u0340\0\u0374\0\u03a8"
- + "\0\u03dc\0\150\0\u0410\0\150\0\u0104\0\u0444\0\u0478\0\u04ac"
- + "\0\u04e0\0\u0514\0\u0548\0\u057c\0\u05b0\0\u05e4\0\u0618\0\u064c"
- + "\0\u0680\0\u06b4\0\u06e8\0\u071c\0\150\0\u0750\0\150\0\150"
- + "\0\150\0\150\0\u0784\0\150\0\150\0\u07b8\0\150\0\150"
- + "\0\u07ec\0\u07ec\0\u0820\0\u0854\0\u0888\0\u08bc\0\u08f0\0\u0924"
- + "\0\u0958\0\u098c\0\u09c0\0\150\0\u09f4\0\u0a28\0\u0a5c\0\u0a90"
- + "\0\150\0\u0ac4\0\u0af8\0\u0b2c\0\320\0\u0b60\0\u0b94\0\320"
- + "\0\u0bc8\0\u0bfc\0\u0c30\0\u0c64\0\u0c98\0\u0ccc\0\150\0\150"
- + "\0\u0d00\0\u0d34\0\u0d68\0\u0d9c\0\u0dd0\0\u0e04\0\u0e38\0\u0e6c"
- + "\0\320\0\u0ea0\0\320\0\u0ed4\0\u0f08\0\u0f3c\0\u0f70\0\u0fa4"
- + "\0\u0fd8\0\u100c\0\u1040\0\u1074\0\u10a8\0\u10dc\0\320\0\320"
- + "\0\u1110\0\320\0\320\0\u1144\0\u1178\0\u11ac\0\320\0\320"
- + "\0\u11e0\0\u1214\0\u1248\0\u127c\0\u12b0\0\u12e4\0\u1318\0\u134c"
- + "\0\u1380\0\u13b4\0\u13e8\0\u141c\0\u1450\0\u1484\0\u14b8\0\u14ec"
- + "\0\150";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\3\3\1\4\1\5\1\3\1\6\1\7\1\10\1\11"+
+ "\2\3\1\12\1\13\1\3\2\5\1\14\1\15\1\5"+
+ "\1\16\1\5\1\17\5\5\1\3\1\20\1\5\1\3"+
+ "\1\5\1\3\1\21\1\22\1\23\1\24\1\25\1\26"+
+ "\5\5\1\27\2\3\1\4\1\3\1\30\1\31\1\32"+
+ "\36\30\1\33\1\34\17\30\65\0\1\4\54\0\1\4"+
+ "\5\0\3\5\1\0\2\5\2\0\2\5\1\0\15\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\6\0\1\35\1\0\1\35\13\0\1\36\10\0\1\37"+
+ "\1\36\31\0\1\35\1\0\1\10\24\0\1\40\32\0"+
+ "\1\10\1\0\1\10\13\0\1\36\10\0\1\37\1\36"+
+ "\27\0\3\5\1\0\2\5\1\41\1\0\2\5\1\0"+
+ "\15\5\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\4\0\3\5\1\0\2\5\2\0\1\5\1\42"+
+ "\1\0\7\5\1\43\5\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\3\5\1\44\11\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\1\45\1\5\1\0\15\5\2\0"+
+ "\1\5\1\0\1\5\6\0\7\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\0\11\5\1\46"+
+ "\3\5\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"+
+ "\15\5\2\0\1\5\1\0\1\5\6\0\5\5\1\47"+
+ "\1\5\3\0\1\5\4\0\3\5\1\0\2\5\2\0"+
+ "\1\50\1\5\1\0\15\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\6\0\1\37\1\0\1\37"+
+ "\24\0\1\51\30\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\11\5\1\52\1\5\1\53\1\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\13\5\1\54\1\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\1\30\2\0\36\30\2\0\17\30\2\0\1\32\57\0"+
+ "\1\55\2\0\11\55\1\56\5\55\1\57\3\55\1\60"+
+ "\1\61\1\62\10\55\1\63\1\64\11\55\1\65\1\66"+
+ "\1\67\11\0\1\70\1\71\1\70\26\0\1\71\30\0"+
+ "\1\37\1\0\1\37\13\0\1\36\11\0\1\36\31\0"+
+ "\1\37\1\0\1\37\57\0\1\72\1\0\1\73\55\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\74\15\5\2\0"+
+ "\1\5\1\0\1\5\6\0\7\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\0\14\5\1\75"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\13\5"+
+ "\1\76\1\5\2\0\1\5\1\0\1\5\6\0\7\5"+
+ "\3\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\3\5\1\77\11\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\7\5\1\100\5\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\15\5\2\0\1\5"+
+ "\1\0\1\5\6\0\1\101\6\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\0\15\5\2\0"+
+ "\1\5\1\0\1\5\6\0\2\5\1\102\4\5\3\0"+
+ "\1\5\35\0\1\103\30\0\3\5\1\0\2\5\2\0"+
+ "\2\5\1\0\1\5\1\104\1\105\12\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\15\5\2\0\1\5"+
+ "\1\0\1\5\6\0\1\5\1\106\5\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\14\5"+
+ "\1\107\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\6\0\1\110\1\0\1\110\13\0\1\110\2\0"+
+ "\1\110\2\0\1\110\3\0\1\110\1\0\1\110\7\0"+
+ "\2\110\3\0\1\110\12\0\1\111\1\0\1\111\13\0"+
+ "\1\111\2\0\1\111\2\0\1\111\3\0\1\111\1\0"+
+ "\1\111\7\0\2\111\3\0\1\111\12\0\1\70\1\0"+
+ "\1\70\64\0\1\112\54\0\1\73\1\0\1\73\2\0"+
+ "\1\112\65\0\1\113\46\0\3\5\1\0\2\5\2\0"+
+ "\2\5\1\0\14\5\1\114\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\3\5\1\115\11\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\5\5\1\116\7\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\5\5"+
+ "\1\117\7\5\2\0\1\5\1\0\1\5\6\0\7\5"+
+ "\3\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\14\5\1\120\2\0\1\5\1\0\1\5\6\0"+
+ "\7\5\3\0\1\5\4\0\3\5\1\0\2\5\2\0"+
+ "\2\5\1\0\5\5\1\121\7\5\2\0\1\5\1\0"+
+ "\1\5\6\0\7\5\3\0\1\5\4\0\3\5\1\0"+
+ "\2\5\2\0\2\5\1\0\3\5\1\122\11\5\2\0"+
+ "\1\5\1\0\1\5\6\0\7\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\0\4\5\1\123"+
+ "\10\5\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"+
+ "\15\5\2\0\1\5\1\0\1\5\6\0\3\5\1\124"+
+ "\3\5\3\0\1\5\4\0\3\5\1\0\2\5\2\0"+
+ "\1\5\1\125\1\0\15\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\6\0\1\126\1\0\1\126"+
+ "\13\0\1\126\2\0\1\126\2\0\1\126\3\0\1\126"+
+ "\1\0\1\126\7\0\2\126\3\0\1\126\12\0\1\127"+
+ "\1\0\1\127\13\0\1\127\2\0\1\127\2\0\1\127"+
+ "\3\0\1\127\1\0\1\127\7\0\2\127\3\0\1\127"+
+ "\46\0\1\130\37\0\1\131\45\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\2\5\1\132\12\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\11\5\1\133\3\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\2\5"+
+ "\1\134\12\5\2\0\1\5\1\0\1\5\6\0\7\5"+
+ "\3\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\15\5\2\0\1\5\1\0\1\5\6\0\6\5"+
+ "\1\135\3\0\1\5\4\0\3\5\1\0\2\5\2\0"+
+ "\2\5\1\0\5\5\1\136\7\5\2\0\1\5\1\0"+
+ "\1\5\6\0\7\5\3\0\1\5\4\0\3\5\1\0"+
+ "\2\5\2\0\2\5\1\0\13\5\1\137\1\5\2\0"+
+ "\1\5\1\0\1\5\6\0\7\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\2\5\1\0\13\5\1\140"+
+ "\1\5\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"+
+ "\5\5\1\141\7\5\2\0\1\5\1\0\1\5\6\0"+
+ "\7\5\3\0\1\5\15\0\1\142\50\0\3\5\1\0"+
+ "\2\5\2\0\2\5\1\0\15\5\2\0\1\5\1\0"+
+ "\1\5\6\0\1\5\1\143\5\5\3\0\1\5\4\0"+
+ "\3\5\1\0\2\5\2\0\1\144\1\5\1\0\15\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\15\5"+
+ "\2\0\1\5\1\0\1\5\6\0\1\5\1\145\5\5"+
+ "\3\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\2\5\1\146\12\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\15\5\2\0\1\5\1\0\1\5"+
+ "\6\0\1\5\1\147\5\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\3\5\1\150\11\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\15\5"+
+ "\2\0\1\5\1\0\1\5\6\0\4\5\1\151\2\5"+
+ "\3\0\1\5\21\0\1\152\44\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\13\5\1\153\1\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\2\5\1\154\12\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\4\0\3\5\1\0\2\5\2\0\1\155\1\5\1\0"+
+ "\15\5\2\0\1\5\1\0\1\5\6\0\7\5\3\0"+
+ "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"+
+ "\3\5\1\156\11\5\2\0\1\5\1\0\1\5\6\0"+
+ "\7\5\3\0\1\5\4\0\3\5\1\0\2\5\2\0"+
+ "\2\5\1\0\5\5\1\157\7\5\2\0\1\5\1\0"+
+ "\1\5\6\0\7\5\3\0\1\5\4\0\3\5\1\0"+
+ "\2\5\2\0\2\5\1\0\5\5\1\160\7\5\2\0"+
+ "\1\5\1\0\1\5\6\0\7\5\3\0\1\5\22\0"+
+ "\1\161\43\0\3\5\1\0\2\5\2\0\2\5\1\0"+
+ "\14\5\1\162\2\0\1\5\1\0\1\5\6\0\7\5"+
+ "\3\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\3\5\1\163\11\5\2\0\1\5\1\0\1\5"+
+ "\6\0\7\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\5\5\1\164\7\5\2\0\1\5"+
+ "\1\0\1\5\6\0\7\5\3\0\1\5\4\0\3\5"+
+ "\1\0\2\5\2\0\2\5\1\0\5\5\1\165\7\5"+
+ "\2\0\1\5\1\0\1\5\6\0\7\5\3\0\1\5"+
+ "\21\0\1\166\44\0\3\5\1\0\2\5\2\0\2\5"+
+ "\1\0\15\5\2\0\1\5\1\0\1\5\6\0\2\5"+
+ "\1\167\4\5\3\0\1\5\4\0\3\5\1\0\2\5"+
+ "\2\0\2\5\1\0\15\5\2\0\1\5\1\0\1\5"+
+ "\6\0\2\5\1\170\4\5\3\0\1\5\23\0\1\171"+
+ "\62\0\1\172\62\0\1\173\62\0\1\174\44\0\1\175"+
+ "\77\0\1\176\56\0\1\177\65\0\1\200\62\0\1\201"+
+ "\51\0\1\202\62\0\1\203\63\0\1\204\65\0\1\205"+
+ "\63\0\1\206\62\0\1\207\62\0\1\210\40\0\1\211"+
+ "\46\0";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[137];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[5200];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\2\0\1\11\15\1\5\11\4\1\1\11\1\1\1\11"+
+ "\1\1\1\0\1\1\2\0\7\1\1\0\3\1\3\11"+
+ "\1\1\4\11\1\1\2\11\1\1\4\0\6\1\1\11"+
+ "\4\1\4\0\12\1\1\0\2\11\1\0\10\1\1\0"+
+ "\7\1\1\0\6\1\1\0\4\1\1\0\2\1\20\0"+
+ "\1\11";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[137];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\3\3\1\4\1\5\1\3\1\6\1\7\1\10\1\11"
- + "\2\3\1\12\1\13\1\3\2\5\1\14\1\15\1\5"
- + "\1\16\1\5\1\17\5\5\1\3\1\20\1\5\1\3"
- + "\1\5\1\10\1\3\1\21\1\22\1\23\1\24\1\25"
- + "\1\26\5\5\1\27\1\3\1\10\1\3\1\4\1\3"
- + "\1\30\1\31\1\32\37\30\1\33\1\34\20\30\67\0"
- + "\1\4\56\0\1\4\5\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\15\5\2\0\1\5\1\0\2\5\6\0"
- + "\7\5\1\0\1\5\2\0\1\5\6\0\1\35\1\0"
- + "\1\35\13\0\1\36\10\0\1\37\1\36\2\0\1\35"
- + "\16\0\1\35\11\0\1\35\1\0\1\10\24\0\1\40"
- + "\3\0\1\10\16\0\1\10\11\0\1\10\1\0\1\10"
- + "\13\0\1\36\10\0\1\37\1\36\2\0\1\10\16\0"
- + "\1\10\7\0\3\5\1\0\2\5\1\41\1\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\1\5\1\42\1\0\7\5\1\43\5\5\2\0"
- + "\1\5\1\0\2\5\6\0\7\5\1\0\1\5\2\0"
- + "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"
- + "\3\5\1\44\11\5\2\0\1\5\1\0\2\5\6\0"
- + "\7\5\1\0\1\5\2\0\1\5\4\0\3\5\1\0"
- + "\2\5\2\0\1\45\1\5\1\0\15\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\11\5"
- + "\1\46\3\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\15\5\2\0\1\5\1\0\2\5"
- + "\6\0\5\5\1\47\1\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\1\50\1\5\1\0"
- + "\15\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\6\0\1\37\1\0\1\37\24\0"
- + "\1\51\3\0\1\37\16\0\1\37\7\0\3\5\1\0"
- + "\2\5\2\0\2\5\1\0\11\5\1\52\1\5\1\53"
- + "\1\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\13\5\1\54\1\5\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\1\30"
- + "\2\0\37\30\2\0\20\30\2\0\1\32\61\0\1\55"
- + "\2\0\3\55\1\56\5\55\1\57\5\55\1\60\4\55"
- + "\1\61\1\62\10\55\1\63\1\64\1\65\11\55\1\66"
- + "\1\67\1\70\1\56\11\0\1\71\1\72\1\71\26\0"
- + "\1\72\1\0\1\71\16\0\1\71\11\0\1\37\1\0"
- + "\1\37\13\0\1\36\11\0\1\36\2\0\1\37\16\0"
- + "\1\37\11\0\1\37\1\0\1\37\30\0\1\37\16\0"
- + "\1\37\11\0\1\73\1\0\1\74\30\0\1\74\16\0"
- + "\1\74\7\0\3\5\1\0\2\5\2\0\2\5\1\75"
- + "\15\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\14\5\1\76\2\0\1\5\1\0\2\5"
- + "\6\0\7\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\13\5\1\77\1\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\3\5\1\100\11\5\2\0\1\5\1\0\2\5"
- + "\6\0\7\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\7\5\1\101\5\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\1\102"
- + "\6\5\1\0\1\5\2\0\1\5\4\0\3\5\1\0"
- + "\2\5\2\0\2\5\1\0\15\5\2\0\1\5\1\0"
- + "\2\5\6\0\2\5\1\103\4\5\1\0\1\5\2\0"
- + "\1\5\35\0\1\104\32\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\1\5\1\105\1\106\12\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\15\5"
- + "\2\0\1\5\1\0\2\5\6\0\1\5\1\107\5\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\14\5\1\110\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\6\0"
- + "\1\63\32\0\1\63\16\0\1\63\11\0\1\111\32\0"
- + "\1\111\16\0\1\111\11\0\1\112\1\0\1\112\13\0"
- + "\1\112\2\0\1\112\2\0\1\112\3\0\1\112\1\0"
- + "\2\112\7\0\2\112\3\0\1\112\1\0\1\112\11\0"
- + "\1\71\1\0\1\71\30\0\1\71\16\0\1\71\16\0"
- + "\1\113\56\0\1\74\1\0\1\74\2\0\1\113\25\0"
- + "\1\74\16\0\1\74\22\0\1\114\50\0\3\5\1\0"
- + "\2\5\2\0\2\5\1\0\14\5\1\115\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\3\5"
- + "\1\116\11\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\5\5\1\117\7\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\5\5"
- + "\1\120\7\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\14\5\1\121\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\4\0"
- + "\3\5\1\0\2\5\2\0\2\5\1\0\5\5\1\122"
- + "\7\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\3\5\1\123\11\5\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\4\0"
- + "\3\5\1\0\2\5\2\0\2\5\1\0\4\5\1\124"
- + "\10\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\15\5\2\0\1\5\1\0\2\5\6\0"
- + "\3\5\1\125\3\5\1\0\1\5\2\0\1\5\4\0"
- + "\3\5\1\0\2\5\2\0\1\5\1\126\1\0\15\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\6\0\1\127\1\0\1\127\13\0\1\127"
- + "\2\0\1\127\2\0\1\127\3\0\1\127\1\0\2\127"
- + "\7\0\2\127\3\0\1\127\1\0\1\127\46\0\1\130"
- + "\40\0\1\131\47\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\2\5\1\132\12\5\2\0\1\5\1\0\2\5"
- + "\6\0\7\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\11\5\1\133\3\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\2\5\1\134\12\5\2\0\1\5\1\0\2\5"
- + "\6\0\7\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\15\5\2\0\1\5"
- + "\1\0\2\5\6\0\6\5\1\135\1\0\1\5\2\0"
- + "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"
- + "\5\5\1\136\7\5\2\0\1\5\1\0\2\5\6\0"
- + "\7\5\1\0\1\5\2\0\1\5\4\0\3\5\1\0"
- + "\2\5\2\0\2\5\1\0\13\5\1\137\1\5\2\0"
- + "\1\5\1\0\2\5\6\0\7\5\1\0\1\5\2\0"
- + "\1\5\4\0\3\5\1\0\2\5\2\0\2\5\1\0"
- + "\13\5\1\140\1\5\2\0\1\5\1\0\2\5\6\0"
- + "\7\5\1\0\1\5\2\0\1\5\4\0\3\5\1\0"
- + "\2\5\2\0\2\5\1\0\5\5\1\141\7\5\2\0"
- + "\1\5\1\0\2\5\6\0\7\5\1\0\1\5\2\0"
- + "\1\5\15\0\1\142\52\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\15\5\2\0\1\5\1\0\2\5\6\0"
- + "\1\5\1\143\5\5\1\0\1\5\2\0\1\5\4\0"
- + "\3\5\1\0\2\5\2\0\1\144\1\5\1\0\15\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\1\5"
- + "\1\145\5\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\2\5\1\146\12\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\1\5"
- + "\1\147\5\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\3\5\1\150\11\5"
- + "\2\0\1\5\1\0\2\5\6\0\7\5\1\0\1\5"
- + "\2\0\1\5\4\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\4\5"
- + "\1\151\2\5\1\0\1\5\2\0\1\5\21\0\1\152"
- + "\46\0\3\5\1\0\2\5\2\0\2\5\1\0\13\5"
- + "\1\153\1\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\2\5\1\154\12\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\1\155\1\5\1\0"
- + "\15\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\3\5\1\156\11\5\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\4\0"
- + "\3\5\1\0\2\5\2\0\2\5\1\0\5\5\1\157"
- + "\7\5\2\0\1\5\1\0\2\5\6\0\7\5\1\0"
- + "\1\5\2\0\1\5\4\0\3\5\1\0\2\5\2\0"
- + "\2\5\1\0\5\5\1\160\7\5\2\0\1\5\1\0"
- + "\2\5\6\0\7\5\1\0\1\5\2\0\1\5\22\0"
- + "\1\161\45\0\3\5\1\0\2\5\2\0\2\5\1\0"
- + "\14\5\1\162\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\3\5\1\163\11\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\4\0\3\5\1\0\2\5\2\0\2\5\1\0\5\5"
- + "\1\164\7\5\2\0\1\5\1\0\2\5\6\0\7\5"
- + "\1\0\1\5\2\0\1\5\4\0\3\5\1\0\2\5"
- + "\2\0\2\5\1\0\5\5\1\165\7\5\2\0\1\5"
- + "\1\0\2\5\6\0\7\5\1\0\1\5\2\0\1\5"
- + "\21\0\1\166\46\0\3\5\1\0\2\5\2\0\2\5"
- + "\1\0\15\5\2\0\1\5\1\0\2\5\6\0\2\5"
- + "\1\167\4\5\1\0\1\5\2\0\1\5\4\0\3\5"
- + "\1\0\2\5\2\0\2\5\1\0\15\5\2\0\1\5"
- + "\1\0\2\5\6\0\2\5\1\170\4\5\1\0\1\5"
- + "\2\0\1\5\23\0\1\171\64\0\1\172\64\0\1\173"
- + "\64\0\1\174\46\0\1\175\101\0\1\176\60\0\1\177"
- + "\67\0\1\200\64\0\1\201\53\0\1\202\64\0\1\203"
- + "\65\0\1\204\67\0\1\205\65\0\1\206\64\0\1\207"
- + "\64\0\1\210\42\0\1\211\50\0";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[5408];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\2\0\1\11\15\1\5\11\4\1\1\11\1\1\1\11"
- + "\1\1\1\0\1\1\2\0\7\1\1\0\3\1\1\11"
- + "\1\1\4\11\1\1\2\11\1\1\2\11\1\1\4\0"
- + "\6\1\1\11\4\1\1\11\3\0\12\1\2\11\1\0"
- + "\10\1\1\0\7\1\1\0\6\1\1\0\4\1\1\0"
- + "\2\1\20\0\1\11";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[137];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
StringBuffer string = new StringBuffer();
boolean isMultiname = false;
long multinameId = 0;
@@ -647,582 +590,542 @@ public final class MethodInfoLexer {
return yyline + 1;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public MethodInfoLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public MethodInfoLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 2868) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 2872) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ParsedSymbol yylex() throws java.io.IOException, MethodInfoParseException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
}
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
}
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
-
- // totalRead = 0: End of stream
- return true;
- }
-
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
-
- zzEndRead = zzStartRead; /* invalidate buffer */
-
- if (zzReader != null) {
- zzReader.close();
- }
- }
-
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
-
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
-
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
-
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
-
- zzMarkedPos -= number;
- }
-
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.abc.methodinfo_parser.MethodInfoParseException
- */
- public ParsedSymbol yylex() throws java.io.IOException, MethodInfoParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- boolean zzR = false;
- int zzCh;
- int zzCharCount;
- for (zzCurrentPosL = zzStartRead;
- zzCurrentPosL < zzMarkedPosL;
- zzCurrentPosL += zzCharCount) {
- zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
- zzCharCount = Character.charCount(zzCh);
- switch (zzCh) {
- case '\u000B':
- case '\u000C':
- case '\u0085':
- case '\u2028':
- case '\u2029':
- yyline++;
- yycolumn = 0;
- zzR = false;
- break;
- case '\r':
- yyline++;
- yycolumn = 0;
- zzR = true;
- break;
- case '\n':
- if (zzR) {
- zzR = false;
- } else {
- yyline++;
- yycolumn = 0;
- }
- break;
- default:
- zzR = false;
- yycolumn += zzCharCount;
- }
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- if (zzR) {
- // peek one character ahead if it is \n (if we have counted one line too much)
- boolean zzPeek;
- if (zzMarkedPosL < zzEndReadL) {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- } else if (zzAtEOF) {
- zzPeek = false;
- } else {
- boolean eof = zzRefill();
- zzEndReadL = zzEndRead;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- if (eof) {
- zzPeek = false;
- } else {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- }
- }
- if (zzPeek) {
- yyline--;
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
- zzAction = -1;
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- }
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 37:
- break;
- case 2: {
- return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext());
- }
- case 38:
- break;
- case 3: {
- return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
- }
- case 39:
- break;
- case 4: {
- isMultiname = false;
- yybegin(STRING);
- string.setLength(0);
- }
- case 40:
- break;
- case 5: {
- return new ParsedSymbol(ParsedSymbol.TYPE_COLON);
- }
- case 41:
- break;
- case 6: {
- return new ParsedSymbol(ParsedSymbol.TYPE_COMMA);
- }
- case 42:
- break;
- case 7: {
- return new ParsedSymbol(ParsedSymbol.TYPE_STAR);
- }
- case 43:
- break;
- case 8: {
- return new ParsedSymbol(ParsedSymbol.TYPE_ASSIGN);
- }
- case 44:
- break;
- case 9: {
- string.append(yytext());
- }
- case 45:
- break;
- case 10: {
- throw new MethodInfoParseException("Unterminated string at end of line", yyline + 1);
- }
- case 46:
- break;
- case 11: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- if (isMultiname) {
- return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, multinameId);
- } else {
- return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString());
- }
- }
- case 47:
- break;
- case 12: {
- return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
- }
- case 48:
- break;
- case 13: {
- throw new MethodInfoParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 49:
- break;
- case 14: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 50:
- break;
- case 15: {
- string.append('\n');
- }
- case 51:
- break;
- case 16: {
- string.append('\t');
- }
- case 52:
- break;
- case 17: {
- string.append('\b');
- }
- case 53:
- break;
- case 18: {
- string.append('\r');
- }
- case 54:
- break;
- case 19: {
- string.append('\\');
- }
- case 55:
- break;
- case 20: {
- string.append('\"');
- }
- case 56:
- break;
- case 21: {
- string.append('\f');
- }
- case 57:
- break;
- case 22: {
- string.append('\'');
- }
- case 58:
- break;
- case 23: {
- return new ParsedSymbol(ParsedSymbol.TYPE_DOTS);
- }
- case 59:
- break;
- case 24: {
- return new ParsedSymbol(ParsedSymbol.TYPE_NULL);
- }
- case 60:
- break;
- case 25: {
- return new ParsedSymbol(ParsedSymbol.TYPE_TRUE);
- }
- case 61:
- break;
- case 26: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 62:
- break;
- case 27: {
- isMultiname = true;
- String s = yytext();
- multinameId = Long.parseLong(s.substring(2, s.length() - 2));
- yybegin(STRING);
- string.setLength(0);
- }
- case 63:
- break;
- case 28: {
- return new ParsedSymbol(ParsedSymbol.TYPE_FALSE);
- }
- case 64:
- break;
- case 29: {
- return new ParsedSymbol(ParsedSymbol.TYPE_STATIC);
- }
- case 65:
- break;
- case 30: {
- return new ParsedSymbol(ParsedSymbol.TYPE_PRIVATE);
- }
- case 66:
- break;
- case 31: {
- return new ParsedSymbol(ParsedSymbol.TYPE_PACKAGE);
- }
- case 67:
- break;
- case 32: {
- return new ParsedSymbol(ParsedSymbol.TYPE_INTERNAL);
- }
- case 68:
- break;
- case 33: {
- return new ParsedSymbol(ParsedSymbol.TYPE_EXPLICIT);
- }
- case 69:
- break;
- case 34: {
- return new ParsedSymbol(ParsedSymbol.TYPE_UNDEFINED);
- }
- case 70:
- break;
- case 35: {
- return new ParsedSymbol(ParsedSymbol.TYPE_PROTECTED);
- }
- case 71:
- break;
- case 36: {
- String s = yytext();
- long ns = Long.parseLong(s.substring(3, s.length() - 2));
- return new ParsedSymbol(ParsedSymbol.TYPE_NAMESPACE, ns);
- }
- case 72:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return new ParsedSymbol(ParsedSymbol.TYPE_EOF);
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 36: break;
+ case 2:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext());
+ }
+ case 37: break;
+ case 3:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
+ }
+ case 38: break;
+ case 4:
+ { isMultiname = false;
+ yybegin(STRING);
+ string.setLength(0);
+ }
+ case 39: break;
+ case 5:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_COLON);
+ }
+ case 40: break;
+ case 6:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_COMMA);
+ }
+ case 41: break;
+ case 7:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_STAR);
+ }
+ case 42: break;
+ case 8:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_ASSIGN);
+ }
+ case 43: break;
+ case 9:
+ { string.append(yytext());
+ }
+ case 44: break;
+ case 10:
+ { throw new MethodInfoParseException("Unterminated string at end of line", yyline + 1);
+ }
+ case 45: break;
+ case 11:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ if (isMultiname){
+ return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, multinameId);
+ } else {
+ return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString());
+ }
+ }
+ case 46: break;
+ case 12:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
+ }
+ case 47: break;
+ case 13:
+ { throw new MethodInfoParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 48: break;
+ case 14:
+ { string.append('\n');
+ }
+ case 49: break;
+ case 15:
+ { string.append('\t');
+ }
+ case 50: break;
+ case 16:
+ { string.append('\b');
+ }
+ case 51: break;
+ case 17:
+ { string.append('\r');
+ }
+ case 52: break;
+ case 18:
+ { string.append('\\');
+ }
+ case 53: break;
+ case 19:
+ { string.append('\"');
+ }
+ case 54: break;
+ case 20:
+ { string.append('\f');
+ }
+ case 55: break;
+ case 21:
+ { string.append('\'');
+ }
+ case 56: break;
+ case 22:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_DOTS);
+ }
+ case 57: break;
+ case 23:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_NULL);
+ }
+ case 58: break;
+ case 24:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_TRUE);
+ }
+ case 59: break;
+ case 25:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 60: break;
+ case 26:
+ { isMultiname = true;
+ String s = yytext();
+ multinameId = Long.parseLong(s.substring(2, s.length() - 2));
+ yybegin(STRING);
+ string.setLength(0);
+ }
+ case 61: break;
+ case 27:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_FALSE);
+ }
+ case 62: break;
+ case 28:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_STATIC);
+ }
+ case 63: break;
+ case 29:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_PRIVATE);
+ }
+ case 64: break;
+ case 30:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_PACKAGE);
+ }
+ case 65: break;
+ case 31:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_INTERNAL);
+ }
+ case 66: break;
+ case 32:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_EXPLICIT);
+ }
+ case 67: break;
+ case 33:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_UNDEFINED);
+ }
+ case 68: break;
+ case 34:
+ { return new ParsedSymbol(ParsedSymbol.TYPE_PROTECTED);
+ }
+ case 69: break;
+ case 35:
+ { String s = yytext();
+ long ns = Long.parseLong(s.substring(3, s.length() - 2));
+ return new ParsedSymbol(ParsedSymbol.TYPE_NAMESPACE, ns);
+ }
+ case 70: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ParsedSymbol(ParsedSymbol.TYPE_EOF);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java
index b8165d354..d3a673faa 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java
@@ -25,586 +25,542 @@ import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
import com.jpexs.decompiler.flash.ecma.Null;
import com.jpexs.decompiler.flash.ecma.Undefined;
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/pcode.flex
*/
public final class FlasmLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int STRING = 2;
- public static final int PARAMETERS = 4;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int STRING = 2;
+ public static final int PARAMETERS = 4;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1, 2, 2
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\11\6\1\4\1\2\1\53\1\54\1\1\16\6\4\0\1\4\1\0"
- + "\1\46\1\0\1\5\2\0\1\50\3\0\1\37\1\0\1\30\1\35"
- + "\1\0\1\33\3\52\4\41\2\11\1\12\1\3\5\0\4\40\1\36"
- + "\1\40\2\7\1\31\4\7\1\34\14\7\1\0\1\42\2\0\1\10"
- + "\1\0\1\22\1\47\1\44\1\26\1\20\1\21\1\43\1\7\1\27"
- + "\2\7\1\23\1\7\1\25\1\45\2\7\1\16\1\24\1\15\1\17"
- + "\2\7\1\51\1\32\1\7\1\13\1\0\1\14\1\0\6\6\1\55"
- + "\32\6\2\0\4\5\4\0\1\5\2\0\1\6\7\0\1\5\4\0"
- + "\1\5\5\0\27\5\1\0\37\5\1\0\u01ca\5\4\0\14\5\16\0"
- + "\5\5\7\0\1\5\1\0\1\5\21\0\160\6\5\5\1\0\2\5"
- + "\2\0\4\5\10\0\1\5\1\0\3\5\1\0\1\5\1\0\24\5"
- + "\1\0\123\5\1\0\213\5\1\0\5\6\2\0\236\5\11\0\46\5"
- + "\2\0\1\5\7\0\47\5\7\0\1\5\1\0\55\6\1\0\1\6"
- + "\1\0\2\6\1\0\2\6\1\0\1\6\10\0\33\5\5\0\3\5"
- + "\15\0\5\6\6\0\1\5\4\0\13\6\5\0\53\5\37\6\4\0"
- + "\2\5\1\6\143\5\1\0\1\5\10\6\1\0\6\6\2\5\2\6"
- + "\1\0\4\6\2\5\12\6\3\5\2\0\1\5\17\0\1\6\1\5"
- + "\1\6\36\5\33\6\2\0\131\5\13\6\1\5\16\0\12\6\41\5"
- + "\11\6\2\5\4\0\1\5\5\0\26\5\4\6\1\5\11\6\1\5"
- + "\3\6\1\5\5\6\22\0\31\5\3\6\104\0\1\5\1\0\13\5"
- + "\67\0\33\6\1\0\4\6\66\5\3\6\1\5\22\6\1\5\7\6"
- + "\12\5\2\6\2\0\12\6\1\0\7\5\1\0\7\5\1\0\3\6"
- + "\1\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5"
- + "\3\0\4\5\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6"
- + "\1\5\10\0\1\6\4\0\2\5\1\0\3\5\2\6\2\0\12\6"
- + "\4\5\7\0\1\5\5\0\3\6\1\0\6\5\4\0\2\5\2\0"
- + "\26\5\1\0\7\5\1\0\2\5\1\0\2\5\1\0\2\5\2\0"
- + "\1\6\1\0\5\6\4\0\2\6\2\0\3\6\3\0\1\6\7\0"
- + "\4\5\1\0\1\5\7\0\14\6\3\5\1\6\13\0\3\6\1\0"
- + "\11\5\1\0\3\5\1\0\26\5\1\0\7\5\1\0\2\5\1\0"
- + "\5\5\2\0\1\6\1\5\10\6\1\0\3\6\1\0\3\6\2\0"
- + "\1\5\17\0\2\5\2\6\2\0\12\6\1\0\1\5\17\0\3\6"
- + "\1\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\2\5"
- + "\1\0\5\5\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6"
- + "\10\0\2\6\4\0\2\5\1\0\3\5\2\6\2\0\12\6\1\0"
- + "\1\5\20\0\1\6\1\5\1\0\6\5\3\0\3\5\1\0\4\5"
- + "\3\0\2\5\1\0\1\5\1\0\2\5\3\0\2\5\3\0\3\5"
- + "\3\0\14\5\4\0\5\6\3\0\3\6\1\0\4\6\2\0\1\5"
- + "\6\0\1\6\16\0\12\6\11\0\1\5\7\0\3\6\1\0\10\5"
- + "\1\0\3\5\1\0\27\5\1\0\12\5\1\0\5\5\3\0\1\5"
- + "\7\6\1\0\3\6\1\0\4\6\7\0\2\6\1\0\2\5\6\0"
- + "\2\5\2\6\2\0\12\6\22\0\2\6\1\0\10\5\1\0\3\5"
- + "\1\0\27\5\1\0\12\5\1\0\5\5\2\0\1\6\1\5\7\6"
- + "\1\0\3\6\1\0\4\6\7\0\2\6\7\0\1\5\1\0\2\5"
- + "\2\6\2\0\12\6\1\0\2\5\17\0\2\6\1\0\10\5\1\0"
- + "\3\5\1\0\51\5\2\0\1\5\7\6\1\0\3\6\1\0\4\6"
- + "\1\5\10\0\1\6\10\0\2\5\2\6\2\0\12\6\12\0\6\5"
- + "\2\0\2\6\1\0\22\5\3\0\30\5\1\0\11\5\1\0\1\5"
- + "\2\0\7\5\3\0\1\6\4\0\6\6\1\0\1\6\1\0\10\6"
- + "\22\0\2\6\15\0\60\5\1\6\2\5\7\6\4\0\10\5\10\6"
- + "\1\0\12\6\47\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5"
- + "\2\0\1\5\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5"
- + "\1\0\1\5\2\0\2\5\1\0\4\5\1\6\2\5\6\6\1\0"
- + "\2\6\1\5\2\0\5\5\1\0\1\5\1\0\6\6\2\0\12\6"
- + "\2\0\4\5\40\0\1\5\27\0\2\6\6\0\12\6\13\0\1\6"
- + "\1\0\1\6\1\0\1\6\4\0\2\6\10\5\1\0\44\5\4\0"
- + "\24\6\1\0\2\6\5\5\13\6\1\0\44\6\11\0\1\6\71\0"
- + "\53\5\24\6\1\5\12\6\6\0\6\5\4\6\4\5\3\6\1\5"
- + "\3\6\2\5\7\6\3\5\4\6\15\5\14\6\1\5\17\6\2\0"
- + "\46\5\1\0\1\5\5\0\1\5\2\0\53\5\1\0\u014d\5\1\0"
- + "\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\51\5\1\0"
- + "\4\5\2\0\41\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0"
- + "\4\5\2\0\17\5\1\0\71\5\1\0\4\5\2\0\103\5\2\0"
- + "\3\6\40\0\20\5\20\0\125\5\14\0\u026c\5\2\0\21\5\1\0"
- + "\32\5\5\0\113\5\3\0\3\5\17\0\15\5\1\0\4\5\3\6"
- + "\13\0\22\5\3\6\13\0\22\5\2\6\14\0\15\5\1\0\3\5"
- + "\1\0\2\6\14\0\64\5\40\6\3\0\1\5\3\0\2\5\1\6"
- + "\2\0\12\6\41\0\3\6\2\0\12\6\6\0\130\5\10\0\51\5"
- + "\1\6\1\5\5\0\106\5\12\0\35\5\3\0\14\6\4\0\14\6"
- + "\12\0\12\6\36\5\2\0\5\5\13\0\54\5\4\0\21\6\7\5"
- + "\2\6\6\0\12\6\46\0\27\5\5\6\4\0\65\5\12\6\1\0"
- + "\35\6\2\0\13\6\6\0\12\6\15\0\1\5\130\0\5\6\57\5"
- + "\21\6\7\5\4\0\12\6\21\0\11\6\14\0\3\6\36\5\15\6"
- + "\2\5\12\6\54\5\16\6\14\0\44\5\24\6\10\0\12\6\3\0"
- + "\3\5\12\6\44\5\122\0\3\6\1\0\25\6\4\5\1\6\4\5"
- + "\3\6\2\5\11\0\300\5\47\6\25\0\4\6\u0116\5\2\0\6\5"
- + "\2\0\46\5\2\0\6\5\2\0\10\5\1\0\1\5\1\0\1\5"
- + "\1\0\1\5\1\0\37\5\2\0\65\5\1\0\7\5\1\0\1\5"
- + "\3\0\3\5\1\0\7\5\3\0\4\5\2\0\6\5\4\0\15\5"
- + "\5\0\3\5\1\0\7\5\16\0\5\6\30\0\1\53\1\53\5\6"
- + "\20\0\2\5\23\0\1\5\13\0\5\6\5\0\6\6\1\0\1\5"
- + "\15\0\1\5\20\0\15\5\3\0\33\5\25\0\15\6\4\0\1\6"
- + "\3\0\14\6\21\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5"
- + "\3\0\5\5\6\0\1\5\1\0\1\5\1\0\1\5\1\0\4\5"
- + "\1\0\13\5\2\0\4\5\5\0\5\5\4\0\1\5\21\0\51\5"
- + "\u0a77\0\57\5\1\0\57\5\1\0\205\5\6\0\4\5\3\6\2\5"
- + "\14\0\46\5\1\0\1\5\5\0\1\5\2\0\70\5\7\0\1\5"
- + "\17\0\1\6\27\5\11\0\7\5\1\0\7\5\1\0\7\5\1\0"
- + "\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0"
- + "\40\6\57\0\1\5\u01d5\0\3\5\31\0\11\5\6\6\1\0\5\5"
- + "\2\0\5\5\4\0\126\5\2\0\2\6\2\0\3\5\1\0\132\5"
- + "\1\0\4\5\5\0\51\5\3\0\136\5\21\0\33\5\65\0\20\5"
- + "\u0200\0\u19b6\5\112\0\u51cd\5\63\0\u048d\5\103\0\56\5\2\0\u010d\5"
- + "\3\0\20\5\12\6\2\5\24\0\57\5\1\6\4\0\12\6\1\0"
- + "\31\5\7\0\1\6\120\5\2\6\45\0\11\5\2\0\147\5\2\0"
- + "\4\5\1\0\4\5\14\0\13\5\115\0\12\5\1\6\3\5\1\6"
- + "\4\5\1\6\27\5\5\6\20\0\1\5\7\0\64\5\14\0\2\6"
- + "\62\5\21\6\13\0\12\6\6\0\22\6\6\5\3\0\1\5\4\0"
- + "\12\6\34\5\10\6\2\0\27\5\15\6\14\0\35\5\3\0\4\6"
- + "\57\5\16\6\16\0\1\5\12\6\46\0\51\5\16\6\11\0\3\5"
- + "\1\6\10\5\2\6\2\0\12\6\6\0\27\5\3\0\1\5\1\6"
- + "\4\0\60\5\1\6\1\5\3\6\2\5\2\6\5\5\2\6\1\5"
- + "\1\6\1\5\30\0\3\5\2\0\13\5\5\6\2\0\3\5\2\6"
- + "\12\0\6\5\2\0\6\5\2\0\6\5\11\0\7\5\1\0\7\5"
- + "\221\0\43\5\10\6\1\0\2\6\2\0\12\6\6\0\u2ba4\5\14\0"
- + "\27\5\4\0\61\5\u2104\0\u016e\5\2\0\152\5\46\0\7\5\14\0"
- + "\5\5\5\0\1\5\1\6\12\5\1\0\15\5\1\0\5\5\1\0"
- + "\1\5\1\0\2\5\1\0\2\5\1\0\154\5\41\0\u016b\5\22\0"
- + "\100\5\2\0\66\5\50\0\15\5\3\0\20\6\20\0\7\6\14\0"
- + "\2\5\30\0\3\5\31\0\1\5\6\0\5\5\1\0\207\5\2\0"
- + "\1\6\4\0\1\5\13\0\12\6\7\0\32\5\4\0\1\5\1\0"
- + "\32\5\13\0\131\5\3\0\6\5\2\0\6\5\2\0\6\5\2\0"
- + "\3\5\3\0\2\5\3\0\2\5\22\0\3\6\4\0\14\5\1\0"
- + "\32\5\1\0\23\5\1\0\2\5\1\0\17\5\2\0\16\5\42\0"
- + "\173\5\105\0\65\5\210\0\1\6\202\0\35\5\3\0\61\5\57\0"
- + "\37\5\21\0\33\5\65\0\36\5\2\0\44\5\4\0\10\5\1\0"
- + "\5\5\52\0\236\5\2\0\12\6\u0356\0\6\5\2\0\1\5\1\0"
- + "\54\5\1\0\2\5\3\0\1\5\2\0\27\5\252\0\26\5\12\0"
- + "\32\5\106\0\70\5\6\0\2\5\100\0\1\5\3\6\1\0\2\6"
- + "\5\0\4\6\4\5\1\0\3\5\1\0\33\5\4\0\3\6\4\0"
- + "\1\6\40\0\35\5\203\0\66\5\12\0\26\5\12\0\23\5\215\0"
- + "\111\5\u03b7\0\3\6\65\5\17\6\37\0\12\6\20\0\3\6\55\5"
- + "\13\6\2\0\1\6\22\0\31\5\7\0\12\6\6\0\3\6\44\5"
- + "\16\6\1\0\12\6\100\0\3\6\60\5\16\6\4\5\13\0\12\6"
- + "\u04a6\0\53\5\15\6\10\0\12\6\u0936\0\u036f\5\221\0\143\5\u0b9d\0"
- + "\u042f\5\u33d1\0\u0239\5\u04c7\0\105\5\13\0\1\5\56\6\20\0\4\6"
- + "\15\5\u4060\0\2\5\u2163\0\5\6\3\0\26\6\2\0\7\6\36\0"
- + "\4\6\224\0\3\6\u01bb\0\125\5\1\0\107\5\1\0\2\5\2\0"
- + "\1\5\2\0\2\5\2\0\4\5\1\0\14\5\1\0\1\5\1\0"
- + "\7\5\1\0\101\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0"
- + "\34\5\1\0\4\5\1\0\5\5\1\0\1\5\3\0\7\5\1\0"
- + "\u0154\5\2\0\31\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0"
- + "\37\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0"
- + "\31\5\1\0\10\5\2\0\62\6\u1600\0\4\5\1\0\33\5\1\0"
- + "\2\5\1\0\1\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0"
- + "\1\5\1\0\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0"
- + "\1\5\1\0\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0"
- + "\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0"
- + "\1\5\2\0\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0"
- + "\1\5\1\0\12\5\1\0\21\5\5\0\3\5\1\0\5\5\1\0"
- + "\21\5\u1144\0\ua6d7\5\51\0\u1035\5\13\0\336\5\u3fe2\0\u021e\5\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"
- + "\1\6\36\0\140\6\200\0\360\6\uffff\0\uffff\0\ufe12\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\6\1\4\1\2\1\51\1\52\1\1\16\6\4\0\1\4\1\0"+
+ "\1\45\1\0\1\5\2\0\1\47\3\0\1\37\1\0\1\30\1\35"+
+ "\1\0\1\33\11\11\1\12\1\3\5\0\4\40\1\36\1\40\2\7"+
+ "\1\31\4\7\1\34\14\7\1\0\1\41\2\0\1\10\1\0\1\22"+
+ "\1\46\1\43\1\26\1\20\1\21\1\42\1\7\1\27\2\7\1\23"+
+ "\1\7\1\25\1\44\2\7\1\16\1\24\1\15\1\17\2\7\1\50"+
+ "\1\32\1\7\1\13\1\0\1\14\1\0\6\6\1\53\32\6\2\0"+
+ "\4\5\4\0\1\5\2\0\1\6\7\0\1\5\4\0\1\5\5\0"+
+ "\27\5\1\0\37\5\1\0\u01ca\5\4\0\14\5\16\0\5\5\7\0"+
+ "\1\5\1\0\1\5\21\0\160\6\5\5\1\0\2\5\2\0\4\5"+
+ "\10\0\1\5\1\0\3\5\1\0\1\5\1\0\24\5\1\0\123\5"+
+ "\1\0\213\5\1\0\5\6\2\0\236\5\11\0\46\5\2\0\1\5"+
+ "\7\0\47\5\7\0\1\5\1\0\55\6\1\0\1\6\1\0\2\6"+
+ "\1\0\2\6\1\0\1\6\10\0\33\5\5\0\3\5\15\0\5\6"+
+ "\6\0\1\5\4\0\13\6\5\0\53\5\37\6\4\0\2\5\1\6"+
+ "\143\5\1\0\1\5\10\6\1\0\6\6\2\5\2\6\1\0\4\6"+
+ "\2\5\12\6\3\5\2\0\1\5\17\0\1\6\1\5\1\6\36\5"+
+ "\33\6\2\0\131\5\13\6\1\5\16\0\12\6\41\5\11\6\2\5"+
+ "\4\0\1\5\5\0\26\5\4\6\1\5\11\6\1\5\3\6\1\5"+
+ "\5\6\22\0\31\5\3\6\104\0\1\5\1\0\13\5\67\0\33\6"+
+ "\1\0\4\6\66\5\3\6\1\5\22\6\1\5\7\6\12\5\2\6"+
+ "\2\0\12\6\1\0\7\5\1\0\7\5\1\0\3\6\1\0\10\5"+
+ "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5"+
+ "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\1\5\10\0"+
+ "\1\6\4\0\2\5\1\0\3\5\2\6\2\0\12\6\4\5\7\0"+
+ "\1\5\5\0\3\6\1\0\6\5\4\0\2\5\2\0\26\5\1\0"+
+ "\7\5\1\0\2\5\1\0\2\5\1\0\2\5\2\0\1\6\1\0"+
+ "\5\6\4\0\2\6\2\0\3\6\3\0\1\6\7\0\4\5\1\0"+
+ "\1\5\7\0\14\6\3\5\1\6\13\0\3\6\1\0\11\5\1\0"+
+ "\3\5\1\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5\2\0"+
+ "\1\6\1\5\10\6\1\0\3\6\1\0\3\6\2\0\1\5\17\0"+
+ "\2\5\2\6\2\0\12\6\1\0\1\5\17\0\3\6\1\0\10\5"+
+ "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5"+
+ "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\10\0\2\6"+
+ "\4\0\2\5\1\0\3\5\2\6\2\0\12\6\1\0\1\5\20\0"+
+ "\1\6\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5"+
+ "\1\0\1\5\1\0\2\5\3\0\2\5\3\0\3\5\3\0\14\5"+
+ "\4\0\5\6\3\0\3\6\1\0\4\6\2\0\1\5\6\0\1\6"+
+ "\16\0\12\6\11\0\1\5\7\0\3\6\1\0\10\5\1\0\3\5"+
+ "\1\0\27\5\1\0\12\5\1\0\5\5\3\0\1\5\7\6\1\0"+
+ "\3\6\1\0\4\6\7\0\2\6\1\0\2\5\6\0\2\5\2\6"+
+ "\2\0\12\6\22\0\2\6\1\0\10\5\1\0\3\5\1\0\27\5"+
+ "\1\0\12\5\1\0\5\5\2\0\1\6\1\5\7\6\1\0\3\6"+
+ "\1\0\4\6\7\0\2\6\7\0\1\5\1\0\2\5\2\6\2\0"+
+ "\12\6\1\0\2\5\17\0\2\6\1\0\10\5\1\0\3\5\1\0"+
+ "\51\5\2\0\1\5\7\6\1\0\3\6\1\0\4\6\1\5\10\0"+
+ "\1\6\10\0\2\5\2\6\2\0\12\6\12\0\6\5\2\0\2\6"+
+ "\1\0\22\5\3\0\30\5\1\0\11\5\1\0\1\5\2\0\7\5"+
+ "\3\0\1\6\4\0\6\6\1\0\1\6\1\0\10\6\22\0\2\6"+
+ "\15\0\60\5\1\6\2\5\7\6\4\0\10\5\10\6\1\0\12\6"+
+ "\47\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5"+
+ "\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0\1\5"+
+ "\2\0\2\5\1\0\4\5\1\6\2\5\6\6\1\0\2\6\1\5"+
+ "\2\0\5\5\1\0\1\5\1\0\6\6\2\0\12\6\2\0\4\5"+
+ "\40\0\1\5\27\0\2\6\6\0\12\6\13\0\1\6\1\0\1\6"+
+ "\1\0\1\6\4\0\2\6\10\5\1\0\44\5\4\0\24\6\1\0"+
+ "\2\6\5\5\13\6\1\0\44\6\11\0\1\6\71\0\53\5\24\6"+
+ "\1\5\12\6\6\0\6\5\4\6\4\5\3\6\1\5\3\6\2\5"+
+ "\7\6\3\5\4\6\15\5\14\6\1\5\17\6\2\0\46\5\1\0"+
+ "\1\5\5\0\1\5\2\0\53\5\1\0\u014d\5\1\0\4\5\2\0"+
+ "\7\5\1\0\1\5\1\0\4\5\2\0\51\5\1\0\4\5\2\0"+
+ "\41\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0"+
+ "\17\5\1\0\71\5\1\0\4\5\2\0\103\5\2\0\3\6\40\0"+
+ "\20\5\20\0\125\5\14\0\u026c\5\2\0\21\5\1\0\32\5\5\0"+
+ "\113\5\3\0\3\5\17\0\15\5\1\0\4\5\3\6\13\0\22\5"+
+ "\3\6\13\0\22\5\2\6\14\0\15\5\1\0\3\5\1\0\2\6"+
+ "\14\0\64\5\40\6\3\0\1\5\3\0\2\5\1\6\2\0\12\6"+
+ "\41\0\3\6\2\0\12\6\6\0\130\5\10\0\51\5\1\6\1\5"+
+ "\5\0\106\5\12\0\35\5\3\0\14\6\4\0\14\6\12\0\12\6"+
+ "\36\5\2\0\5\5\13\0\54\5\4\0\21\6\7\5\2\6\6\0"+
+ "\12\6\46\0\27\5\5\6\4\0\65\5\12\6\1\0\35\6\2\0"+
+ "\13\6\6\0\12\6\15\0\1\5\130\0\5\6\57\5\21\6\7\5"+
+ "\4\0\12\6\21\0\11\6\14\0\3\6\36\5\15\6\2\5\12\6"+
+ "\54\5\16\6\14\0\44\5\24\6\10\0\12\6\3\0\3\5\12\6"+
+ "\44\5\122\0\3\6\1\0\25\6\4\5\1\6\4\5\3\6\2\5"+
+ "\11\0\300\5\47\6\25\0\4\6\u0116\5\2\0\6\5\2\0\46\5"+
+ "\2\0\6\5\2\0\10\5\1\0\1\5\1\0\1\5\1\0\1\5"+
+ "\1\0\37\5\2\0\65\5\1\0\7\5\1\0\1\5\3\0\3\5"+
+ "\1\0\7\5\3\0\4\5\2\0\6\5\4\0\15\5\5\0\3\5"+
+ "\1\0\7\5\16\0\5\6\30\0\1\51\1\51\5\6\20\0\2\5"+
+ "\23\0\1\5\13\0\5\6\5\0\6\6\1\0\1\5\15\0\1\5"+
+ "\20\0\15\5\3\0\33\5\25\0\15\6\4\0\1\6\3\0\14\6"+
+ "\21\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5"+
+ "\6\0\1\5\1\0\1\5\1\0\1\5\1\0\4\5\1\0\13\5"+
+ "\2\0\4\5\5\0\5\5\4\0\1\5\21\0\51\5\u0a77\0\57\5"+
+ "\1\0\57\5\1\0\205\5\6\0\4\5\3\6\2\5\14\0\46\5"+
+ "\1\0\1\5\5\0\1\5\2\0\70\5\7\0\1\5\17\0\1\6"+
+ "\27\5\11\0\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0"+
+ "\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0\40\6\57\0"+
+ "\1\5\u01d5\0\3\5\31\0\11\5\6\6\1\0\5\5\2\0\5\5"+
+ "\4\0\126\5\2\0\2\6\2\0\3\5\1\0\132\5\1\0\4\5"+
+ "\5\0\51\5\3\0\136\5\21\0\33\5\65\0\20\5\u0200\0\u19b6\5"+
+ "\112\0\u51cd\5\63\0\u048d\5\103\0\56\5\2\0\u010d\5\3\0\20\5"+
+ "\12\6\2\5\24\0\57\5\1\6\4\0\12\6\1\0\31\5\7\0"+
+ "\1\6\120\5\2\6\45\0\11\5\2\0\147\5\2\0\4\5\1\0"+
+ "\4\5\14\0\13\5\115\0\12\5\1\6\3\5\1\6\4\5\1\6"+
+ "\27\5\5\6\20\0\1\5\7\0\64\5\14\0\2\6\62\5\21\6"+
+ "\13\0\12\6\6\0\22\6\6\5\3\0\1\5\4\0\12\6\34\5"+
+ "\10\6\2\0\27\5\15\6\14\0\35\5\3\0\4\6\57\5\16\6"+
+ "\16\0\1\5\12\6\46\0\51\5\16\6\11\0\3\5\1\6\10\5"+
+ "\2\6\2\0\12\6\6\0\27\5\3\0\1\5\1\6\4\0\60\5"+
+ "\1\6\1\5\3\6\2\5\2\6\5\5\2\6\1\5\1\6\1\5"+
+ "\30\0\3\5\2\0\13\5\5\6\2\0\3\5\2\6\12\0\6\5"+
+ "\2\0\6\5\2\0\6\5\11\0\7\5\1\0\7\5\221\0\43\5"+
+ "\10\6\1\0\2\6\2\0\12\6\6\0\u2ba4\5\14\0\27\5\4\0"+
+ "\61\5\u2104\0\u016e\5\2\0\152\5\46\0\7\5\14\0\5\5\5\0"+
+ "\1\5\1\6\12\5\1\0\15\5\1\0\5\5\1\0\1\5\1\0"+
+ "\2\5\1\0\2\5\1\0\154\5\41\0\u016b\5\22\0\100\5\2\0"+
+ "\66\5\50\0\15\5\3\0\20\6\20\0\7\6\14\0\2\5\30\0"+
+ "\3\5\31\0\1\5\6\0\5\5\1\0\207\5\2\0\1\6\4\0"+
+ "\1\5\13\0\12\6\7\0\32\5\4\0\1\5\1\0\32\5\13\0"+
+ "\131\5\3\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0"+
+ "\2\5\3\0\2\5\22\0\3\6\4\0\14\5\1\0\32\5\1\0"+
+ "\23\5\1\0\2\5\1\0\17\5\2\0\16\5\42\0\173\5\105\0"+
+ "\65\5\210\0\1\6\202\0\35\5\3\0\61\5\57\0\37\5\21\0"+
+ "\33\5\65\0\36\5\2\0\44\5\4\0\10\5\1\0\5\5\52\0"+
+ "\236\5\2\0\12\6\u0356\0\6\5\2\0\1\5\1\0\54\5\1\0"+
+ "\2\5\3\0\1\5\2\0\27\5\252\0\26\5\12\0\32\5\106\0"+
+ "\70\5\6\0\2\5\100\0\1\5\3\6\1\0\2\6\5\0\4\6"+
+ "\4\5\1\0\3\5\1\0\33\5\4\0\3\6\4\0\1\6\40\0"+
+ "\35\5\203\0\66\5\12\0\26\5\12\0\23\5\215\0\111\5\u03b7\0"+
+ "\3\6\65\5\17\6\37\0\12\6\20\0\3\6\55\5\13\6\2\0"+
+ "\1\6\22\0\31\5\7\0\12\6\6\0\3\6\44\5\16\6\1\0"+
+ "\12\6\100\0\3\6\60\5\16\6\4\5\13\0\12\6\u04a6\0\53\5"+
+ "\15\6\10\0\12\6\u0936\0\u036f\5\221\0\143\5\u0b9d\0\u042f\5\u33d1\0"+
+ "\u0239\5\u04c7\0\105\5\13\0\1\5\56\6\20\0\4\6\15\5\u4060\0"+
+ "\2\5\u2163\0\5\6\3\0\26\6\2\0\7\6\36\0\4\6\224\0"+
+ "\3\6\u01bb\0\125\5\1\0\107\5\1\0\2\5\2\0\1\5\2\0"+
+ "\2\5\2\0\4\5\1\0\14\5\1\0\1\5\1\0\7\5\1\0"+
+ "\101\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\34\5\1\0"+
+ "\4\5\1\0\5\5\1\0\1\5\3\0\7\5\1\0\u0154\5\2\0"+
+ "\31\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0"+
+ "\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0"+
+ "\10\5\2\0\62\6\u1600\0\4\5\1\0\33\5\1\0\2\5\1\0"+
+ "\1\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0\1\5\1\0"+
+ "\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5\1\0"+
+ "\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0"+
+ "\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0\1\5\2\0"+
+ "\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0"+
+ "\12\5\1\0\21\5\5\0\3\5\1\0\5\5\1\0\21\5\u1144\0"+
+ "\ua6d7\5\51\0\u1035\5\13\0\336\5\u3fe2\0\u021e\5\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+
+ "\1\6\36\0\140\6\200\0\360\6\uffff\0\uffff\0\ufe12\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\3\0\3\1\1\2\1\3\1\4\2\5\1\1\1\6"
- + "\2\7\1\10\1\11\1\12\1\13\5\11\1\1\1\11"
- + "\1\12\1\11\1\1\1\11\1\14\1\0\1\15\1\16"
- + "\1\17\1\20\1\21\1\22\2\23\1\24\1\25\1\26"
- + "\1\27\1\16\1\0\1\30\5\11\1\12\1\0\1\12"
- + "\1\11\1\30\2\11\1\23\1\0\1\30\1\0\5\11"
- + "\1\0\1\11\1\30\1\11\1\31\1\32\3\11\1\33"
- + "\1\0\4\11\1\34\1\0\4\11\1\0\4\11\1\0"
- + "\4\11\1\0\1\11\2\35\1\36\1\30\2\37";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\3\0\3\1\1\2\1\3\1\4\2\5\1\1\1\6"+
+ "\2\7\1\10\1\11\1\12\1\13\5\11\1\1\1\11"+
+ "\1\12\1\11\1\1\1\11\1\14\1\0\1\15\1\16"+
+ "\1\17\1\20\1\16\1\21\1\22\1\23\1\24\1\25"+
+ "\1\26\1\16\1\0\1\27\5\11\1\12\1\0\1\12"+
+ "\1\11\1\27\2\11\2\0\1\27\1\0\5\11\1\0"+
+ "\1\11\1\27\1\11\1\0\1\30\1\31\3\11\1\32"+
+ "\1\0\4\11\1\33\1\0\4\11\1\0\4\11\1\0"+
+ "\4\11\1\0\1\11\2\34\1\35\1\27\2\36";
- private static int[] zzUnpackAction() {
- int[] result = new int[107];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[107];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\54\0\130\0\204\0\260\0\334\0\u0108\0\204"+
+ "\0\u0134\0\u0160\0\204\0\u018c\0\204\0\u01b8\0\204\0\u01e4"+
+ "\0\u0210\0\u023c\0\204\0\u0268\0\u0294\0\u02c0\0\u02ec\0\u0318"+
+ "\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\u0420\0\204\0\334"+
+ "\0\204\0\204\0\204\0\204\0\u044c\0\204\0\204\0\204"+
+ "\0\204\0\204\0\204\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\u0528"+
+ "\0\u0554\0\u0580\0\u05ac\0\u05d8\0\u0604\0\204\0\u0630\0\u039c"+
+ "\0\u065c\0\u0688\0\u06b4\0\u06e0\0\u070c\0\u070c\0\u0738\0\u0764"+
+ "\0\u0790\0\u07bc\0\u07e8\0\u0814\0\u0840\0\u0210\0\u086c\0\u0478"+
+ "\0\204\0\u0210\0\u0898\0\u08c4\0\u08f0\0\u0210\0\u091c\0\u0948"+
+ "\0\u0974\0\u09a0\0\u09cc\0\u0210\0\u09f8\0\u0a24\0\u0a50\0\u0a7c"+
+ "\0\u0aa8\0\u0ad4\0\u0b00\0\u0b2c\0\u0b58\0\u0b84\0\u0bb0\0\u0bdc"+
+ "\0\u0c08\0\u0c34\0\u0c60\0\u0c8c\0\u0cb8\0\u0ce4\0\u0210\0\u0210"+
+ "\0\204\0\u0d10\0\u0210";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[107];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\56\0\134\0\212\0\270\0\346\0\u0114\0\212"
- + "\0\u0142\0\u0170\0\212\0\u019e\0\212\0\u01cc\0\212\0\u01fa"
- + "\0\u0228\0\u0256\0\212\0\u0284\0\u02b2\0\u02e0\0\u030e\0\u033c"
- + "\0\u036a\0\u0398\0\u03c6\0\u03f4\0\u0422\0\u0450\0\212\0\346"
- + "\0\212\0\212\0\212\0\212\0\212\0\212\0\u047e\0\u04ac"
- + "\0\212\0\212\0\212\0\212\0\u04da\0\u0508\0\u0536\0\u0564"
- + "\0\u0592\0\u05c0\0\u05ee\0\u061c\0\u064a\0\u0678\0\212\0\u06a6"
- + "\0\u03c6\0\u06d4\0\u0702\0\212\0\u0730\0\u075e\0\u075e\0\u078c"
- + "\0\u07ba\0\u07e8\0\u0816\0\u0844\0\u0872\0\u08a0\0\u0228\0\u08ce"
- + "\0\212\0\u0228\0\u08fc\0\u092a\0\u0958\0\u0228\0\u0986\0\u09b4"
- + "\0\u09e2\0\u0a10\0\u0a3e\0\u0228\0\u0a6c\0\u0a9a\0\u0ac8\0\u0af6"
- + "\0\u0b24\0\u0b52\0\u0b80\0\u0bae\0\u0bdc\0\u0c0a\0\u0c38\0\u0c66"
- + "\0\u0c94\0\u0cc2\0\u0cf0\0\u0d1e\0\u0d4c\0\u0d7a\0\u0228\0\u0228"
- + "\0\212\0\u0da8\0\u0228";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\4\4\1\5\1\6\1\4\1\7\1\6\3\4\1\10"+
+ "\13\7\1\4\2\7\1\4\1\7\1\4\1\7\1\4"+
+ "\1\7\1\4\3\7\1\4\1\7\1\4\1\7\1\4"+
+ "\1\5\1\4\1\11\1\12\1\13\36\11\1\14\3\11"+
+ "\1\15\6\11\1\4\1\16\1\17\1\20\1\4\1\21"+
+ "\1\4\2\21\1\22\1\4\1\23\1\4\1\24\1\25"+
+ "\1\26\1\21\1\27\3\21\1\30\2\21\1\31\1\32"+
+ "\1\21\1\33\1\34\1\35\1\21\1\4\1\21\1\4"+
+ "\1\21\1\36\1\21\1\37\1\21\1\4\1\21\3\4"+
+ "\60\0\1\5\45\0\1\5\6\0\5\40\1\41\2\0"+
+ "\13\40\1\0\4\40\1\0\1\40\1\0\1\40\1\0"+
+ "\3\40\1\0\1\40\1\0\1\40\2\0\1\40\5\0"+
+ "\2\40\3\7\1\41\2\0\13\7\1\0\4\7\1\0"+
+ "\1\7\1\0\1\7\1\0\3\7\1\0\1\7\1\0"+
+ "\1\7\2\0\1\40\1\11\2\0\36\11\1\0\3\11"+
+ "\1\0\6\11\2\0\1\13\51\0\1\42\2\0\12\42"+
+ "\1\43\1\44\1\45\1\42\1\46\3\42\1\47\13\42"+
+ "\1\50\3\42\1\51\1\52\1\53\1\54\5\0\1\17"+
+ "\51\0\1\20\2\0\51\20\5\0\5\21\3\0\13\21"+
+ "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+
+ "\1\0\1\21\1\0\1\21\2\0\1\21\11\0\1\22"+
+ "\6\0\1\55\12\0\1\22\1\0\1\56\1\55\22\0"+
+ "\5\21\3\0\1\21\1\57\11\21\1\0\4\21\1\0"+
+ "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+
+ "\1\21\2\0\1\21\5\0\5\21\3\0\3\21\1\60"+
+ "\7\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+
+ "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+
+ "\5\21\3\0\10\21\1\61\2\21\1\0\4\21\1\0"+
+ "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+
+ "\1\21\2\0\1\21\5\0\5\21\3\0\5\21\1\62"+
+ "\5\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+
+ "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+
+ "\5\21\3\0\2\21\1\63\10\21\1\0\4\21\1\0"+
+ "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+
+ "\1\21\2\0\1\21\11\0\1\64\17\0\1\65\1\0"+
+ "\1\66\25\0\5\21\3\0\10\21\1\67\2\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\11\0\1\70\6\0"+
+ "\1\55\12\0\1\70\1\0\1\56\1\55\22\0\5\21"+
+ "\3\0\5\21\1\71\5\21\1\0\4\21\1\0\1\21"+
+ "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+
+ "\2\0\1\21\11\0\1\56\21\0\1\56\25\0\5\21"+
+ "\3\0\13\21\1\0\4\21\1\0\1\21\1\0\1\21"+
+ "\1\0\2\21\1\72\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\11\0\1\73\6\0\3\73\3\0\1\73\4\0"+
+ "\1\73\2\0\1\73\1\0\1\73\2\0\1\73\2\0"+
+ "\1\73\16\0\1\74\6\0\3\74\3\0\1\74\4\0"+
+ "\1\74\2\0\1\74\1\0\1\74\2\0\1\74\2\0"+
+ "\1\74\16\0\1\75\16\0\1\76\2\0\1\75\3\0"+
+ "\1\76\25\0\1\56\6\0\1\55\12\0\1\56\2\0"+
+ "\1\55\22\0\5\21\3\0\2\21\1\77\10\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\13\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+
+ "\1\100\2\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\11\21\1\101\1\21\1\0\4\21"+
+ "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+
+ "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\6\21"+
+ "\1\102\4\21\1\0\4\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\6\21\1\103\4\21\1\0\4\21"+
+ "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+
+ "\1\0\1\21\2\0\1\21\11\0\1\64\21\0\1\64"+
+ "\45\0\1\104\33\0\5\21\3\0\4\21\1\105\6\21"+
+ "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+
+ "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+
+ "\3\0\13\21\1\0\3\21\1\106\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\5\0\5\21\3\0\10\21\1\107\2\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\11\0\1\110\6\0"+
+ "\3\110\3\0\1\110\4\0\1\110\2\0\1\110\1\0"+
+ "\1\110\2\0\1\110\2\0\1\110\16\0\1\111\6\0"+
+ "\3\111\3\0\1\111\4\0\1\111\2\0\1\111\1\0"+
+ "\1\111\2\0\1\111\2\0\1\111\16\0\1\75\21\0"+
+ "\1\75\25\0\5\21\3\0\3\21\1\112\7\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\12\21\1\113\1\0\4\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\3\21\1\114\7\21\1\0\4\21"+
+ "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+
+ "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\7\21"+
+ "\1\115\3\21\1\0\4\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\6\21\1\116\4\21\1\0\4\21"+
+ "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+
+ "\1\0\1\21\2\0\1\21\21\0\1\117\37\0\5\21"+
+ "\3\0\12\21\1\120\1\0\4\21\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\5\0\5\21\3\0\7\21\1\121\3\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\7\21\1\122\3\21\1\0\4\21\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\5\0\5\21\3\0\4\21\1\123\6\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\3\21\1\124\7\21\1\0\4\21\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\27\0\1\125\31\0\5\21\3\0\10\21\1\126"+
+ "\2\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+
+ "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+
+ "\5\21\3\0\1\127\12\21\1\0\4\21\1\0\1\21"+
+ "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+
+ "\2\0\1\21\5\0\5\21\3\0\1\130\12\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\12\21\1\131\1\0\4\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\25\0\1\132\33\0\5\21\3\0\12\21\1\133\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\5\21\1\134\5\21\1\0\4\21\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\5\0\5\21\3\0\3\21\1\135\7\21\1\0"+
+ "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+
+ "\10\21\1\136\2\21\1\0\4\21\1\0\1\21\1\0"+
+ "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+
+ "\1\21\27\0\1\137\31\0\5\21\3\0\1\140\12\21"+
+ "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+
+ "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+
+ "\3\0\10\21\1\141\2\21\1\0\4\21\1\0\1\21"+
+ "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+
+ "\2\0\1\21\5\0\5\21\3\0\1\21\1\142\11\21"+
+ "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+
+ "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+
+ "\3\0\3\21\1\143\7\21\1\0\4\21\1\0\1\21"+
+ "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+
+ "\2\0\1\21\15\0\1\144\43\0\5\21\3\0\13\21"+
+ "\1\0\1\21\1\106\2\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\1\145\12\21\1\0\4\21\1\0"+
+ "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+
+ "\1\21\2\0\1\21\5\0\4\21\1\146\3\0\13\21"+
+ "\1\0\2\21\1\147\1\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\5\21\3\0\11\21\1\150\1\21\1\0\4\21"+
+ "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+
+ "\1\0\1\21\2\0\1\21\32\0\1\151\26\0\4\21"+
+ "\1\152\3\0\13\21\1\0\2\21\1\153\1\21\1\0"+
+ "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+
+ "\1\21\2\0\1\21\5\0\4\21\1\146\3\0\13\21"+
+ "\1\0\2\21\1\146\1\21\1\0\1\21\1\0\1\21"+
+ "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+
+ "\5\0\4\21\1\152\3\0\13\21\1\0\2\21\1\152"+
+ "\1\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+
+ "\1\21\1\0\1\21\2\0\1\21";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[107];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[3388];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\3\0\1\11\3\1\1\11\2\1\1\11\1\1\1\11"+
+ "\1\1\1\11\3\1\1\11\13\1\1\11\1\0\4\11"+
+ "\1\1\6\11\1\1\1\0\7\1\1\0\1\11\4\1"+
+ "\2\0\1\1\1\0\5\1\1\0\3\1\1\0\1\11"+
+ "\5\1\1\0\5\1\1\0\4\1\1\0\4\1\1\0"+
+ "\4\1\1\0\4\1\1\11\2\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[107];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\4\4\1\5\1\6\1\4\1\7\1\6\3\4\1\10"
- + "\13\7\1\4\2\7\1\4\1\7\1\4\1\7\1\4"
- + "\1\7\2\4\3\7\1\4\1\7\1\4\1\7\2\4"
- + "\1\5\1\4\1\11\1\12\1\13\37\11\1\14\3\11"
- + "\1\15\7\11\1\4\1\16\1\17\1\20\1\4\1\21"
- + "\1\4\2\21\1\22\1\4\1\23\1\4\1\24\1\25"
- + "\1\26\1\21\1\27\3\21\1\30\2\21\1\31\1\32"
- + "\1\21\1\33\1\34\1\35\1\21\1\4\1\21\1\22"
- + "\1\4\1\21\1\36\1\21\1\37\1\21\1\4\1\21"
- + "\1\22\3\4\62\0\1\5\47\0\1\5\6\0\5\40"
- + "\1\41\2\0\13\40\1\0\4\40\1\0\1\40\1\0"
- + "\2\40\1\0\3\40\1\0\1\40\1\0\2\40\2\0"
- + "\1\40\5\0\2\40\3\7\1\41\2\0\13\7\1\0"
- + "\4\7\1\0\1\7\1\0\2\7\1\0\3\7\1\0"
- + "\1\7\1\0\2\7\2\0\1\40\1\11\2\0\37\11"
- + "\1\0\3\11\1\0\7\11\2\0\1\13\53\0\1\42"
- + "\2\0\12\42\1\43\1\44\2\42\1\45\3\42\1\46"
- + "\5\42\1\47\5\42\1\50\1\51\3\42\1\52\1\53"
- + "\1\54\1\55\1\47\5\0\1\17\53\0\1\20\2\0"
- + "\53\20\5\0\5\21\3\0\13\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\11\0\1\22\6\0\1\56\12\0"
- + "\1\22\1\0\1\57\1\56\2\0\1\22\10\0\1\22"
- + "\10\0\5\21\3\0\1\21\1\60\11\21\1\0\4\21"
- + "\1\0\1\21\1\0\2\21\1\0\3\21\1\0\1\21"
- + "\1\0\2\21\2\0\1\21\5\0\5\21\3\0\3\21"
- + "\1\61\7\21\1\0\4\21\1\0\1\21\1\0\2\21"
- + "\1\0\3\21\1\0\1\21\1\0\2\21\2\0\1\21"
- + "\5\0\5\21\3\0\10\21\1\62\2\21\1\0\4\21"
- + "\1\0\1\21\1\0\2\21\1\0\3\21\1\0\1\21"
- + "\1\0\2\21\2\0\1\21\5\0\5\21\3\0\5\21"
- + "\1\63\5\21\1\0\4\21\1\0\1\21\1\0\2\21"
- + "\1\0\3\21\1\0\1\21\1\0\2\21\2\0\1\21"
- + "\5\0\5\21\3\0\2\21\1\64\10\21\1\0\4\21"
- + "\1\0\1\21\1\0\2\21\1\0\3\21\1\0\1\21"
- + "\1\0\2\21\2\0\1\21\11\0\1\65\17\0\1\66"
- + "\1\0\1\67\5\0\1\65\10\0\1\65\10\0\5\21"
- + "\3\0\10\21\1\70\2\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\11\0\1\71\6\0\1\56\12\0\1\71"
- + "\1\0\1\57\1\56\2\0\1\71\10\0\1\71\10\0"
- + "\5\21\3\0\5\21\1\72\5\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\11\0\1\57\21\0\1\57\5\0"
- + "\1\57\10\0\1\57\10\0\5\21\3\0\13\21\1\0"
- + "\4\21\1\0\1\21\1\0\2\21\1\0\2\21\1\73"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\33\0\1\50"
- + "\5\0\1\50\10\0\1\50\36\0\1\74\5\0\1\74"
- + "\10\0\1\74\14\0\1\75\6\0\3\75\3\0\1\75"
- + "\4\0\1\75\2\0\1\75\1\0\2\75\2\0\1\75"
- + "\2\0\1\75\2\0\1\75\14\0\1\76\16\0\1\77"
- + "\2\0\1\76\3\0\1\77\1\0\1\76\10\0\1\76"
- + "\14\0\1\57\6\0\1\56\12\0\1\57\2\0\1\56"
- + "\2\0\1\57\10\0\1\57\10\0\5\21\3\0\2\21"
- + "\1\100\10\21\1\0\4\21\1\0\1\21\1\0\2\21"
- + "\1\0\3\21\1\0\1\21\1\0\2\21\2\0\1\21"
- + "\5\0\5\21\3\0\13\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\1\101\2\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\5\0\5\21\3\0\11\21\1\102"
- + "\1\21\1\0\4\21\1\0\1\21\1\0\2\21\1\0"
- + "\3\21\1\0\1\21\1\0\2\21\2\0\1\21\5\0"
- + "\5\21\3\0\6\21\1\103\4\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\5\0\5\21\3\0\6\21\1\104"
- + "\4\21\1\0\4\21\1\0\1\21\1\0\2\21\1\0"
- + "\3\21\1\0\1\21\1\0\2\21\2\0\1\21\11\0"
- + "\1\65\21\0\1\65\5\0\1\65\10\0\1\65\30\0"
- + "\1\105\35\0\5\21\3\0\4\21\1\106\6\21\1\0"
- + "\4\21\1\0\1\21\1\0\2\21\1\0\3\21\1\0"
- + "\1\21\1\0\2\21\2\0\1\21\5\0\5\21\3\0"
- + "\13\21\1\0\3\21\1\107\1\0\1\21\1\0\2\21"
- + "\1\0\3\21\1\0\1\21\1\0\2\21\2\0\1\21"
- + "\5\0\5\21\3\0\10\21\1\110\2\21\1\0\4\21"
- + "\1\0\1\21\1\0\2\21\1\0\3\21\1\0\1\21"
- + "\1\0\2\21\2\0\1\21\11\0\1\111\6\0\3\111"
- + "\3\0\1\111\4\0\1\111\2\0\1\111\1\0\2\111"
- + "\2\0\1\111\2\0\1\111\2\0\1\111\14\0\1\76"
- + "\21\0\1\76\5\0\1\76\10\0\1\76\10\0\5\21"
- + "\3\0\3\21\1\112\7\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\12\21\1\113\1\0"
- + "\4\21\1\0\1\21\1\0\2\21\1\0\3\21\1\0"
- + "\1\21\1\0\2\21\2\0\1\21\5\0\5\21\3\0"
- + "\3\21\1\114\7\21\1\0\4\21\1\0\1\21\1\0"
- + "\2\21\1\0\3\21\1\0\1\21\1\0\2\21\2\0"
- + "\1\21\5\0\5\21\3\0\7\21\1\115\3\21\1\0"
- + "\4\21\1\0\1\21\1\0\2\21\1\0\3\21\1\0"
- + "\1\21\1\0\2\21\2\0\1\21\5\0\5\21\3\0"
- + "\6\21\1\116\4\21\1\0\4\21\1\0\1\21\1\0"
- + "\2\21\1\0\3\21\1\0\1\21\1\0\2\21\2\0"
- + "\1\21\21\0\1\117\41\0\5\21\3\0\12\21\1\120"
- + "\1\0\4\21\1\0\1\21\1\0\2\21\1\0\3\21"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\5\0\5\21"
- + "\3\0\7\21\1\121\3\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\7\21\1\122\3\21"
- + "\1\0\4\21\1\0\1\21\1\0\2\21\1\0\3\21"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\5\0\5\21"
- + "\3\0\4\21\1\123\6\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\3\21\1\124\7\21"
- + "\1\0\4\21\1\0\1\21\1\0\2\21\1\0\3\21"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\27\0\1\125"
- + "\33\0\5\21\3\0\10\21\1\126\2\21\1\0\4\21"
- + "\1\0\1\21\1\0\2\21\1\0\3\21\1\0\1\21"
- + "\1\0\2\21\2\0\1\21\5\0\5\21\3\0\1\127"
- + "\12\21\1\0\4\21\1\0\1\21\1\0\2\21\1\0"
- + "\3\21\1\0\1\21\1\0\2\21\2\0\1\21\5\0"
- + "\5\21\3\0\1\130\12\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\12\21\1\131\1\0"
- + "\4\21\1\0\1\21\1\0\2\21\1\0\3\21\1\0"
- + "\1\21\1\0\2\21\2\0\1\21\25\0\1\132\35\0"
- + "\5\21\3\0\12\21\1\133\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\5\21\1\134\5\21"
- + "\1\0\4\21\1\0\1\21\1\0\2\21\1\0\3\21"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\5\0\5\21"
- + "\3\0\3\21\1\135\7\21\1\0\4\21\1\0\1\21"
- + "\1\0\2\21\1\0\3\21\1\0\1\21\1\0\2\21"
- + "\2\0\1\21\5\0\5\21\3\0\10\21\1\136\2\21"
- + "\1\0\4\21\1\0\1\21\1\0\2\21\1\0\3\21"
- + "\1\0\1\21\1\0\2\21\2\0\1\21\27\0\1\137"
- + "\33\0\5\21\3\0\1\140\12\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\5\0\5\21\3\0\10\21\1\141"
- + "\2\21\1\0\4\21\1\0\1\21\1\0\2\21\1\0"
- + "\3\21\1\0\1\21\1\0\2\21\2\0\1\21\5\0"
- + "\5\21\3\0\1\21\1\142\11\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\5\0\5\21\3\0\3\21\1\143"
- + "\7\21\1\0\4\21\1\0\1\21\1\0\2\21\1\0"
- + "\3\21\1\0\1\21\1\0\2\21\2\0\1\21\15\0"
- + "\1\144\45\0\5\21\3\0\13\21\1\0\1\21\1\107"
- + "\2\21\1\0\1\21\1\0\2\21\1\0\3\21\1\0"
- + "\1\21\1\0\2\21\2\0\1\21\5\0\5\21\3\0"
- + "\1\145\12\21\1\0\4\21\1\0\1\21\1\0\2\21"
- + "\1\0\3\21\1\0\1\21\1\0\2\21\2\0\1\21"
- + "\5\0\4\21\1\146\3\0\13\21\1\0\2\21\1\147"
- + "\1\21\1\0\1\21\1\0\1\21\1\146\1\0\3\21"
- + "\1\0\1\21\1\0\1\21\1\146\2\0\1\21\5\0"
- + "\5\21\3\0\11\21\1\150\1\21\1\0\4\21\1\0"
- + "\1\21\1\0\2\21\1\0\3\21\1\0\1\21\1\0"
- + "\2\21\2\0\1\21\32\0\1\151\30\0\4\21\1\152"
- + "\3\0\13\21\1\0\2\21\1\153\1\21\1\0\1\21"
- + "\1\0\1\21\1\152\1\0\3\21\1\0\1\21\1\0"
- + "\1\21\1\152\2\0\1\21\5\0\4\21\1\146\3\0"
- + "\13\21\1\0\2\21\1\146\1\21\1\0\1\21\1\0"
- + "\1\21\1\146\1\0\3\21\1\0\1\21\1\0\1\21"
- + "\1\146\2\0\1\21\5\0\4\21\1\152\3\0\13\21"
- + "\1\0\2\21\1\152\1\21\1\0\1\21\1\0\1\21"
- + "\1\152\1\0\3\21\1\0\1\21\1\0\1\21\1\152"
- + "\2\0\1\21";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[3542];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\3\0\1\11\3\1\1\11\2\1\1\11\1\1\1\11"
- + "\1\1\1\11\3\1\1\11\13\1\1\11\1\0\6\11"
- + "\2\1\4\11\1\1\1\0\7\1\1\0\1\11\4\1"
- + "\1\11\1\0\1\1\1\0\5\1\1\0\3\1\1\11"
- + "\5\1\1\0\5\1\1\0\4\1\1\0\4\1\1\0"
- + "\4\1\1\0\4\1\1\11\2\1";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[107];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
StringBuffer string = new StringBuffer();
/**
@@ -623,550 +579,513 @@ public final class FlasmLexer {
return yyline + 1;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public FlasmLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public FlasmLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 2854) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 2858) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ASMParsedSymbol yylex() throws java.io.IOException, ActionParseException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
}
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
}
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
-
- // totalRead = 0: End of stream
- return true;
- }
-
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
-
- zzEndRead = zzStartRead; /* invalidate buffer */
-
- if (zzReader != null) {
- zzReader.close();
- }
- }
-
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
-
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
-
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
-
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
-
- zzMarkedPos -= number;
- }
-
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.action.parser.ActionParseException
- */
- public ASMParsedSymbol yylex() throws java.io.IOException, ActionParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- boolean zzR = false;
- int zzCh;
- int zzCharCount;
- for (zzCurrentPosL = zzStartRead;
- zzCurrentPosL < zzMarkedPosL;
- zzCurrentPosL += zzCharCount) {
- zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
- zzCharCount = Character.charCount(zzCh);
- switch (zzCh) {
- case '\u000B':
- case '\u000C':
- case '\u0085':
- case '\u2028':
- case '\u2029':
- yyline++;
- yycolumn = 0;
- zzR = false;
- break;
- case '\r':
- yyline++;
- yycolumn = 0;
- zzR = true;
- break;
- case '\n':
- if (zzR) {
- zzR = false;
- } else {
- yyline++;
- yycolumn = 0;
- }
- break;
- default:
- zzR = false;
- yycolumn += zzCharCount;
- }
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- if (zzR) {
- // peek one character ahead if it is \n (if we have counted one line too much)
- boolean zzPeek;
- if (zzMarkedPosL < zzEndReadL) {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- } else if (zzAtEOF) {
- zzPeek = false;
- } else {
- boolean eof = zzRefill();
- zzEndReadL = zzEndRead;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- if (eof) {
- zzPeek = false;
- } else {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- }
- }
- if (zzPeek) {
- yyline--;
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
- zzAction = -1;
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- }
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 32:
- break;
- case 2: {
- yybegin(PARAMETERS);
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
- }
- case 33:
- break;
- case 3: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END);
- }
- case 34:
- break;
- case 4: {
- string.append(yytext());
- }
- case 35:
- break;
- case 5: {
- throw new ActionParseException("Unterminated string at end of line", yyline + 1);
- }
- case 36:
- break;
- case 6: {
- yybegin(PARAMETERS);
- // length also includes the trailing quote
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString());
- }
- case 37:
- break;
- case 7: {
- yybegin(YYINITIAL);
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL);
- }
- case 38:
- break;
- case 8: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1));
- }
- case 39:
- break;
- case 9: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext());
- }
- case 40:
- break;
- case 10: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
- }
- case 41:
- break;
- case 11: {
- yybegin(YYINITIAL);
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START);
- }
- case 42:
- break;
- case 12: {
- yybegin(STRING);
- string.setLength(0);
- }
- case 43:
- break;
- case 13: {
- String s = yytext();
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
- }
- case 44:
- break;
- case 14: {
- throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 45:
- break;
- case 15: {
- string.append('\t');
- }
- case 46:
- break;
- case 16: {
- string.append('\r');
- }
- case 47:
- break;
- case 17: {
- string.append('\f');
- }
- case 48:
- break;
- case 18: {
- string.append('\n');
- }
- case 49:
- break;
- case 19: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 50:
- break;
- case 20: {
- string.append('\\');
- }
- case 51:
- break;
- case 21: {
- string.append('\"');
- }
- case 52:
- break;
- case 22: {
- string.append('\b');
- }
- case 53:
- break;
- case 23: {
- string.append('\'');
- }
- case 54:
- break;
- case 24: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
- }
- case 55:
- break;
- case 25: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 56:
- break;
- case 26: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.TRUE);
- }
- case 57:
- break;
- case 27: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, new Null());
- }
- case 58:
- break;
- case 28: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.FALSE);
- }
- case 59:
- break;
- case 29: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8))));
- }
- case 60:
- break;
- case 30: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, new Undefined());
- }
- case 61:
- break;
- case 31: {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8))));
- }
- case 62:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF);
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 31: break;
+ case 2:
+ { yybegin(PARAMETERS);
+ return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
+ }
+ case 32: break;
+ case 3:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END);
+ }
+ case 33: break;
+ case 4:
+ { string.append(yytext());
+ }
+ case 34: break;
+ case 5:
+ { throw new ActionParseException("Unterminated string at end of line", yyline + 1);
+ }
+ case 35: break;
+ case 6:
+ { yybegin(PARAMETERS);
+ // length also includes the trailing quote
+ return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString());
+ }
+ case 36: break;
+ case 7:
+ { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL);
+ }
+ case 37: break;
+ case 8:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1));
+ }
+ case 38: break;
+ case 9:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext());
+ }
+ case 39: break;
+ case 10:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext())));
+ }
+ case 40: break;
+ case 11:
+ { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START);
+ }
+ case 41: break;
+ case 12:
+ { yybegin(STRING);
+ string.setLength(0);
+ }
+ case 42: break;
+ case 13:
+ { String s=yytext();
+ return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
+ }
+ case 43: break;
+ case 14:
+ { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 44: break;
+ case 15:
+ { string.append('\t');
+ }
+ case 45: break;
+ case 16:
+ { string.append('\r');
+ }
+ case 46: break;
+ case 17:
+ { string.append('\f');
+ }
+ case 47: break;
+ case 18:
+ { string.append('\n');
+ }
+ case 48: break;
+ case 19:
+ { string.append('\\');
+ }
+ case 49: break;
+ case 20:
+ { string.append('\"');
+ }
+ case 50: break;
+ case 21:
+ { string.append('\b');
+ }
+ case 51: break;
+ case 22:
+ { string.append('\'');
+ }
+ case 52: break;
+ case 23:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext())));
+ }
+ case 53: break;
+ case 24:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 54: break;
+ case 25:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE);
+ }
+ case 55: break;
+ case 26:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, new Null());
+ }
+ case 56: break;
+ case 27:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE);
+ }
+ case 57: break;
+ case 28:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8))));
+ }
+ case 58: break;
+ case 29:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, new Undefined());
+ }
+ case 59: break;
+ case 30:
+ { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8))));
+ }
+ case 60: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
index 87420390e..dee0c58e0 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
@@ -17,1236 +17,1199 @@
* License along with this library.
*/
package com.jpexs.decompiler.flash.action.parser.script;
-
import com.jpexs.decompiler.flash.action.parser.ActionParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript.flex
*/
public final class ActionScriptLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int STRING = 2;
- public static final int CHARLITERAL = 4;
- public static final int XMLSTARTTAG = 6;
- public static final int XML = 8;
- public static final int OIDENTIFIER = 10;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int STRING = 2;
+ public static final int CHARLITERAL = 4;
+ public static final int XMLSTARTTAG = 6;
+ public static final int XML = 8;
+ public static final int OIDENTIFIER = 10;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\11\7\1\3\1\2\1\121\1\122\1\1\16\7\4\0\1\14\1\110"
- + "\1\16\1\0\1\6\1\117\1\113\1\30\1\100\1\101\1\5\1\115"
- + "\1\107\1\26\1\11\1\4\1\17\3\23\4\24\2\20\1\10\1\106"
- + "\1\12\1\15\1\13\1\112\1\120\1\62\1\22\1\72\1\73\1\25"
- + "\1\64\1\6\1\66\1\77\2\6\1\70\1\71\1\76\1\6\1\75"
- + "\1\67\1\6\1\63\1\65\1\61\1\74\1\6\1\21\2\6\1\104"
- + "\1\27\1\105\1\116\1\6\1\0\1\35\1\32\1\37\1\46\1\34"
- + "\1\47\1\60\1\52\1\44\1\6\1\36\1\50\1\55\1\42\1\41"
- + "\1\53\1\6\1\33\1\40\1\43\1\45\1\56\1\51\1\57\1\54"
- + "\1\6\1\102\1\114\1\103\1\111\6\7\1\123\32\7\2\0\4\6"
- + "\1\0\1\31\2\0\1\6\2\0\1\7\7\0\1\6\4\0\1\6"
- + "\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6"
- + "\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0"
- + "\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6\1\0"
- + "\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6\2\0"
- + "\1\6\7\0\47\6\7\0\1\6\1\0\55\7\1\0\1\7\1\0"
- + "\2\7\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0"
- + "\5\7\6\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6"
- + "\1\7\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0"
- + "\4\7\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7"
- + "\36\6\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7"
- + "\2\6\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7"
- + "\1\6\5\7\22\0\31\6\3\7\104\0\1\6\1\0\13\6\67\0"
- + "\33\7\1\0\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"
- + "\2\7\2\0\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0"
- + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0"
- + "\4\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6"
- + "\10\0\1\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6"
- + "\7\0\1\6\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6"
- + "\1\0\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7"
- + "\1\0\5\7\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6"
- + "\1\0\1\6\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6"
- + "\1\0\3\6\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6"
- + "\2\0\1\7\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6"
- + "\17\0\2\6\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0"
- + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"
- + "\5\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0"
- + "\2\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6"
- + "\20\0\1\7\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0"
- + "\2\6\1\0\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0"
- + "\14\6\4\0\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0"
- + "\1\7\16\0\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0"
- + "\3\6\1\0\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7"
- + "\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6"
- + "\2\7\2\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0"
- + "\27\6\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0"
- + "\3\7\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7"
- + "\2\0\12\7\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6"
- + "\1\0\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6"
- + "\10\0\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0"
- + "\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0"
- + "\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0"
- + "\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0"
- + "\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0"
- + "\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0"
- + "\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7"
- + "\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0"
- + "\4\6\40\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0"
- + "\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7"
- + "\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6"
- + "\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7"
- + "\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6"
- + "\1\0\1\6\5\0\1\6\2\0\53\6\1\0\u014d\6\1\0\4\6"
- + "\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0\4\6"
- + "\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6"
- + "\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0\3\7"
- + "\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0\32\6"
- + "\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7\13\0"
- + "\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6\1\0"
- + "\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7\2\0"
- + "\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6\1\7"
- + "\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7\12\0"
- + "\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6\2\7"
- + "\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0\35\7"
- + "\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6\21\7"
- + "\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\15\7\2\6"
- + "\12\7\54\6\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6"
- + "\12\7\44\6\122\0\3\7\1\0\25\7\4\6\1\7\4\6\3\7"
- + "\2\6\11\0\300\6\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0"
- + "\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0\1\6\1\0"
- + "\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0\1\6\3\0"
- + "\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0\15\6\5\0"
- + "\3\6\1\0\7\6\16\0\5\7\30\0\1\121\1\121\5\7\20\0"
- + "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"
- + "\1\6\20\0\15\6\3\0\33\6\25\0\15\7\4\0\1\7\3\0"
- + "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"
- + "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"
- + "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"
- + "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\2\6\14\0"
- + "\46\6\1\0\1\6\5\0\1\6\2\0\70\6\7\0\1\6\17\0"
- + "\1\7\27\6\11\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"
- + "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\40\7"
- + "\57\0\1\6\u01d5\0\3\6\31\0\11\6\6\7\1\0\5\6\2\0"
- + "\5\6\4\0\126\6\2\0\2\7\2\0\3\6\1\0\132\6\1\0"
- + "\4\6\5\0\51\6\3\0\136\6\21\0\33\6\65\0\20\6\u0200\0"
- + "\u19b6\6\112\0\u51cd\6\63\0\u048d\6\103\0\56\6\2\0\u010d\6\3\0"
- + "\20\6\12\7\2\6\24\0\57\6\1\7\4\0\12\7\1\0\31\6"
- + "\7\0\1\7\120\6\2\7\45\0\11\6\2\0\147\6\2\0\4\6"
- + "\1\0\4\6\14\0\13\6\115\0\12\6\1\7\3\6\1\7\4\6"
- + "\1\7\27\6\5\7\20\0\1\6\7\0\64\6\14\0\2\7\62\6"
- + "\21\7\13\0\12\7\6\0\22\7\6\6\3\0\1\6\4\0\12\7"
- + "\34\6\10\7\2\0\27\6\15\7\14\0\35\6\3\0\4\7\57\6"
- + "\16\7\16\0\1\6\12\7\46\0\51\6\16\7\11\0\3\6\1\7"
- + "\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\1\7\4\0"
- + "\60\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6\1\7"
- + "\1\6\30\0\3\6\2\0\13\6\5\7\2\0\3\6\2\7\12\0"
- + "\6\6\2\0\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0"
- + "\43\6\10\7\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6"
- + "\4\0\61\6\u2104\0\u016e\6\2\0\152\6\46\0\7\6\14\0\5\6"
- + "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"
- + "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"
- + "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"
- + "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"
- + "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"
- + "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"
- + "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"
- + "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"
- + "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"
- + "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"
- + "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"
- + "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"
- + "\106\0\70\6\6\0\2\6\100\0\1\6\3\7\1\0\2\7\5\0"
- + "\4\7\4\6\1\0\3\6\1\0\33\6\4\0\3\7\4\0\1\7"
- + "\40\0\35\6\203\0\66\6\12\0\26\6\12\0\23\6\215\0\111\6"
- + "\u03b7\0\3\7\65\6\17\7\37\0\12\7\20\0\3\7\55\6\13\7"
- + "\2\0\1\7\22\0\31\6\7\0\12\7\6\0\3\7\44\6\16\7"
- + "\1\0\12\7\100\0\3\7\60\6\16\7\4\6\13\0\12\7\u04a6\0"
- + "\53\6\15\7\10\0\12\7\u0936\0\u036f\6\221\0\143\6\u0b9d\0\u042f\6"
- + "\u33d1\0\u0239\6\u04c7\0\105\6\13\0\1\6\56\7\20\0\4\7\15\6"
- + "\u4060\0\2\6\u2163\0\5\7\3\0\26\7\2\0\7\7\36\0\4\7"
- + "\224\0\3\7\u01bb\0\125\6\1\0\107\6\1\0\2\6\2\0\1\6"
- + "\2\0\2\6\2\0\4\6\1\0\14\6\1\0\1\6\1\0\7\6"
- + "\1\0\101\6\1\0\4\6\2\0\10\6\1\0\7\6\1\0\34\6"
- + "\1\0\4\6\1\0\5\6\1\0\1\6\3\0\7\6\1\0\u0154\6"
- + "\2\0\31\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"
- + "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6"
- + "\1\0\10\6\2\0\62\7\u1600\0\4\6\1\0\33\6\1\0\2\6"
- + "\1\0\1\6\2\0\1\6\1\0\12\6\1\0\4\6\1\0\1\6"
- + "\1\0\1\6\6\0\1\6\4\0\1\6\1\0\1\6\1\0\1\6"
- + "\1\0\3\6\1\0\2\6\1\0\1\6\2\0\1\6\1\0\1\6"
- + "\1\0\1\6\1\0\1\6\1\0\1\6\1\0\2\6\1\0\1\6"
- + "\2\0\4\6\1\0\7\6\1\0\4\6\1\0\4\6\1\0\1\6"
- + "\1\0\12\6\1\0\21\6\5\0\3\6\1\0\5\6\1\0\21\6"
- + "\u1144\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"
- + "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\7\1\3\1\2\1\121\1\122\1\1\16\7\4\0\1\14\1\110"+
+ "\1\16\1\0\1\6\1\117\1\113\1\30\1\100\1\101\1\5\1\115"+
+ "\1\107\1\26\1\11\1\4\1\17\3\23\4\24\2\20\1\10\1\106"+
+ "\1\12\1\15\1\13\1\112\1\120\1\62\1\22\1\72\1\73\1\25"+
+ "\1\64\1\6\1\66\1\77\2\6\1\70\1\71\1\76\1\6\1\75"+
+ "\1\67\1\6\1\63\1\65\1\61\1\74\1\6\1\21\2\6\1\104"+
+ "\1\27\1\105\1\116\1\6\1\0\1\35\1\32\1\37\1\46\1\34"+
+ "\1\47\1\60\1\52\1\44\1\6\1\36\1\50\1\55\1\42\1\41"+
+ "\1\53\1\6\1\33\1\40\1\43\1\45\1\56\1\51\1\57\1\54"+
+ "\1\6\1\102\1\114\1\103\1\111\6\7\1\123\32\7\2\0\4\6"+
+ "\1\0\1\31\2\0\1\6\2\0\1\7\7\0\1\6\4\0\1\6"+
+ "\5\0\27\6\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6"+
+ "\7\0\1\6\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0"+
+ "\4\6\10\0\1\6\1\0\3\6\1\0\1\6\1\0\24\6\1\0"+
+ "\123\6\1\0\213\6\1\0\5\7\2\0\236\6\11\0\46\6\2\0"+
+ "\1\6\7\0\47\6\7\0\1\6\1\0\55\7\1\0\1\7\1\0"+
+ "\2\7\1\0\2\7\1\0\1\7\10\0\33\6\5\0\3\6\15\0"+
+ "\5\7\6\0\1\6\4\0\13\7\5\0\53\6\37\7\4\0\2\6"+
+ "\1\7\143\6\1\0\1\6\10\7\1\0\6\7\2\6\2\7\1\0"+
+ "\4\7\2\6\12\7\3\6\2\0\1\6\17\0\1\7\1\6\1\7"+
+ "\36\6\33\7\2\0\131\6\13\7\1\6\16\0\12\7\41\6\11\7"+
+ "\2\6\4\0\1\6\5\0\26\6\4\7\1\6\11\7\1\6\3\7"+
+ "\1\6\5\7\22\0\31\6\3\7\104\0\1\6\1\0\13\6\67\0"+
+ "\33\7\1\0\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"+
+ "\2\7\2\0\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0"+
+ "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0"+
+ "\4\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6"+
+ "\10\0\1\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6"+
+ "\7\0\1\6\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6"+
+ "\1\0\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7"+
+ "\1\0\5\7\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6"+
+ "\1\0\1\6\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6"+
+ "\1\0\3\6\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6"+
+ "\2\0\1\7\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6"+
+ "\17\0\2\6\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0"+
+ "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"+
+ "\5\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0"+
+ "\2\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6"+
+ "\20\0\1\7\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0"+
+ "\2\6\1\0\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0"+
+ "\14\6\4\0\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0"+
+ "\1\7\16\0\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0"+
+ "\3\6\1\0\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7"+
+ "\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6"+
+ "\2\7\2\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0"+
+ "\27\6\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0"+
+ "\3\7\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7"+
+ "\2\0\12\7\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6"+
+ "\1\0\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6"+
+ "\10\0\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0"+
+ "\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0"+
+ "\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0"+
+ "\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0"+
+ "\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0"+
+ "\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0"+
+ "\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7"+
+ "\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0"+
+ "\4\6\40\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0"+
+ "\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7"+
+ "\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6"+
+ "\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7"+
+ "\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6"+
+ "\1\0\1\6\5\0\1\6\2\0\53\6\1\0\u014d\6\1\0\4\6"+
+ "\2\0\7\6\1\0\1\6\1\0\4\6\2\0\51\6\1\0\4\6"+
+ "\2\0\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6"+
+ "\2\0\17\6\1\0\71\6\1\0\4\6\2\0\103\6\2\0\3\7"+
+ "\40\0\20\6\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0\32\6"+
+ "\5\0\113\6\3\0\3\6\17\0\15\6\1\0\4\6\3\7\13\0"+
+ "\22\6\3\7\13\0\22\6\2\7\14\0\15\6\1\0\3\6\1\0"+
+ "\2\7\14\0\64\6\40\7\3\0\1\6\3\0\2\6\1\7\2\0"+
+ "\12\7\41\0\3\7\2\0\12\7\6\0\130\6\10\0\51\6\1\7"+
+ "\1\6\5\0\106\6\12\0\35\6\3\0\14\7\4\0\14\7\12\0"+
+ "\12\7\36\6\2\0\5\6\13\0\54\6\4\0\21\7\7\6\2\7"+
+ "\6\0\12\7\46\0\27\6\5\7\4\0\65\6\12\7\1\0\35\7"+
+ "\2\0\13\7\6\0\12\7\15\0\1\6\130\0\5\7\57\6\21\7"+
+ "\7\6\4\0\12\7\21\0\11\7\14\0\3\7\36\6\15\7\2\6"+
+ "\12\7\54\6\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6"+
+ "\12\7\44\6\122\0\3\7\1\0\25\7\4\6\1\7\4\6\3\7"+
+ "\2\6\11\0\300\6\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0"+
+ "\46\6\2\0\6\6\2\0\10\6\1\0\1\6\1\0\1\6\1\0"+
+ "\1\6\1\0\37\6\2\0\65\6\1\0\7\6\1\0\1\6\3\0"+
+ "\3\6\1\0\7\6\3\0\4\6\2\0\6\6\4\0\15\6\5\0"+
+ "\3\6\1\0\7\6\16\0\5\7\30\0\1\121\1\121\5\7\20\0"+
+ "\2\6\23\0\1\6\13\0\5\7\5\0\6\7\1\0\1\6\15\0"+
+ "\1\6\20\0\15\6\3\0\33\6\25\0\15\7\4\0\1\7\3\0"+
+ "\14\7\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6\3\0"+
+ "\5\6\6\0\1\6\1\0\1\6\1\0\1\6\1\0\4\6\1\0"+
+ "\13\6\2\0\4\6\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0"+
+ "\57\6\1\0\57\6\1\0\205\6\6\0\4\6\3\7\2\6\14\0"+
+ "\46\6\1\0\1\6\5\0\1\6\2\0\70\6\7\0\1\6\17\0"+
+ "\1\7\27\6\11\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"+
+ "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\40\7"+
+ "\57\0\1\6\u01d5\0\3\6\31\0\11\6\6\7\1\0\5\6\2\0"+
+ "\5\6\4\0\126\6\2\0\2\7\2\0\3\6\1\0\132\6\1\0"+
+ "\4\6\5\0\51\6\3\0\136\6\21\0\33\6\65\0\20\6\u0200\0"+
+ "\u19b6\6\112\0\u51cd\6\63\0\u048d\6\103\0\56\6\2\0\u010d\6\3\0"+
+ "\20\6\12\7\2\6\24\0\57\6\1\7\4\0\12\7\1\0\31\6"+
+ "\7\0\1\7\120\6\2\7\45\0\11\6\2\0\147\6\2\0\4\6"+
+ "\1\0\4\6\14\0\13\6\115\0\12\6\1\7\3\6\1\7\4\6"+
+ "\1\7\27\6\5\7\20\0\1\6\7\0\64\6\14\0\2\7\62\6"+
+ "\21\7\13\0\12\7\6\0\22\7\6\6\3\0\1\6\4\0\12\7"+
+ "\34\6\10\7\2\0\27\6\15\7\14\0\35\6\3\0\4\7\57\6"+
+ "\16\7\16\0\1\6\12\7\46\0\51\6\16\7\11\0\3\6\1\7"+
+ "\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\1\7\4\0"+
+ "\60\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6\1\7"+
+ "\1\6\30\0\3\6\2\0\13\6\5\7\2\0\3\6\2\7\12\0"+
+ "\6\6\2\0\6\6\2\0\6\6\11\0\7\6\1\0\7\6\221\0"+
+ "\43\6\10\7\1\0\2\7\2\0\12\7\6\0\u2ba4\6\14\0\27\6"+
+ "\4\0\61\6\u2104\0\u016e\6\2\0\152\6\46\0\7\6\14\0\5\6"+
+ "\5\0\1\6\1\7\12\6\1\0\15\6\1\0\5\6\1\0\1\6"+
+ "\1\0\2\6\1\0\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6"+
+ "\2\0\66\6\50\0\15\6\3\0\20\7\20\0\7\7\14\0\2\6"+
+ "\30\0\3\6\31\0\1\6\6\0\5\6\1\0\207\6\2\0\1\7"+
+ "\4\0\1\6\13\0\12\7\7\0\32\6\4\0\1\6\1\0\32\6"+
+ "\13\0\131\6\3\0\6\6\2\0\6\6\2\0\6\6\2\0\3\6"+
+ "\3\0\2\6\3\0\2\6\22\0\3\7\4\0\14\6\1\0\32\6"+
+ "\1\0\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0\173\6"+
+ "\105\0\65\6\210\0\1\7\202\0\35\6\3\0\61\6\57\0\37\6"+
+ "\21\0\33\6\65\0\36\6\2\0\44\6\4\0\10\6\1\0\5\6"+
+ "\52\0\236\6\2\0\12\7\u0356\0\6\6\2\0\1\6\1\0\54\6"+
+ "\1\0\2\6\3\0\1\6\2\0\27\6\252\0\26\6\12\0\32\6"+
+ "\106\0\70\6\6\0\2\6\100\0\1\6\3\7\1\0\2\7\5\0"+
+ "\4\7\4\6\1\0\3\6\1\0\33\6\4\0\3\7\4\0\1\7"+
+ "\40\0\35\6\203\0\66\6\12\0\26\6\12\0\23\6\215\0\111\6"+
+ "\u03b7\0\3\7\65\6\17\7\37\0\12\7\20\0\3\7\55\6\13\7"+
+ "\2\0\1\7\22\0\31\6\7\0\12\7\6\0\3\7\44\6\16\7"+
+ "\1\0\12\7\100\0\3\7\60\6\16\7\4\6\13\0\12\7\u04a6\0"+
+ "\53\6\15\7\10\0\12\7\u0936\0\u036f\6\221\0\143\6\u0b9d\0\u042f\6"+
+ "\u33d1\0\u0239\6\u04c7\0\105\6\13\0\1\6\56\7\20\0\4\7\15\6"+
+ "\u4060\0\2\6\u2163\0\5\7\3\0\26\7\2\0\7\7\36\0\4\7"+
+ "\224\0\3\7\u01bb\0\125\6\1\0\107\6\1\0\2\6\2\0\1\6"+
+ "\2\0\2\6\2\0\4\6\1\0\14\6\1\0\1\6\1\0\7\6"+
+ "\1\0\101\6\1\0\4\6\2\0\10\6\1\0\7\6\1\0\34\6"+
+ "\1\0\4\6\1\0\5\6\1\0\1\6\3\0\7\6\1\0\u0154\6"+
+ "\2\0\31\6\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6"+
+ "\1\0\31\6\1\0\37\6\1\0\31\6\1\0\37\6\1\0\31\6"+
+ "\1\0\10\6\2\0\62\7\u1600\0\4\6\1\0\33\6\1\0\2\6"+
+ "\1\0\1\6\2\0\1\6\1\0\12\6\1\0\4\6\1\0\1\6"+
+ "\1\0\1\6\6\0\1\6\4\0\1\6\1\0\1\6\1\0\1\6"+
+ "\1\0\3\6\1\0\2\6\1\0\1\6\2\0\1\6\1\0\1\6"+
+ "\1\0\1\6\1\0\1\6\1\0\1\6\1\0\2\6\1\0\1\6"+
+ "\2\0\4\6\1\0\7\6\1\0\4\6\1\0\4\6\1\0\1\6"+
+ "\1\0\12\6\1\0\21\6\5\0\3\6\1\0\5\6\1\0\21\6"+
+ "\u1144\0\ua6d7\6\51\0\u1035\6\13\0\336\6\u3fe2\0\u021e\6\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+
+ "\1\7\36\0\140\7\200\0\360\7\uffff\0\uffff\0\ufe12\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\6\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"
- + "\1\10\1\11\1\12\1\13\1\14\2\15\1\16\1\17"
- + "\1\20\26\6\1\21\1\22\1\23\1\24\1\25\1\26"
- + "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"
- + "\1\37\1\40\1\41\1\42\2\43\1\44\1\1\1\42"
- + "\2\45\1\42\1\1\1\46\2\42\2\47\2\42\1\1"
- + "\1\50\1\3\1\0\1\51\1\52\1\53\2\0\1\54"
- + "\1\0\1\55\1\56\1\57\1\60\1\61\1\62\1\63"
- + "\1\54\1\0\2\63\1\0\1\64\1\65\7\6\1\66"
- + "\11\6\1\67\12\6\1\70\1\71\1\72\4\6\1\73"
- + "\30\6\1\56\1\74\1\75\1\76\1\77\1\100\1\101"
- + "\1\102\1\103\1\104\1\105\2\106\1\107\1\110\1\111"
- + "\1\112\1\113\1\114\1\115\6\0\1\116\1\104\2\3"
- + "\2\0\1\117\3\0\1\120\1\0\1\121\1\122\1\123"
- + "\1\124\2\125\1\63\1\54\1\0\10\6\1\126\5\6"
- + "\1\127\1\130\5\6\1\131\1\6\1\132\5\6\1\133"
- + "\7\6\1\134\2\6\1\135\10\6\1\136\20\6\1\137"
- + "\1\6\1\140\2\6\1\141\2\6\1\142\1\106\10\0"
- + "\1\143\5\0\1\144\1\125\1\63\4\6\1\145\1\146"
- + "\1\147\1\6\1\150\1\6\1\151\5\6\1\152\7\6"
- + "\1\153\1\6\1\154\4\6\1\155\22\6\1\156\7\6"
- + "\1\157\4\6\1\160\7\6\1\42\1\0\1\161\5\0"
- + "\1\162\5\0\1\125\1\63\1\163\4\6\1\164\1\165"
- + "\1\6\1\166\5\6\1\167\5\6\1\170\3\6\1\171"
- + "\14\6\1\172\6\6\1\173\2\6\1\174\3\6\1\175"
- + "\1\6\1\176\10\6\10\0\1\125\1\63\1\177\1\6"
- + "\1\200\3\6\1\201\2\6\1\202\1\203\7\6\1\204"
- + "\4\6\1\205\4\6\1\206\5\6\1\207\10\6\1\210"
- + "\2\6\1\211\3\6\1\212\1\213\1\6\2\0\1\120"
- + "\1\125\1\63\1\6\1\214\5\6\1\215\14\6\1\216"
- + "\1\6\1\217\1\6\1\220\7\6\1\221\1\222\6\6"
- + "\1\42\1\125\1\63\1\6\1\223\2\6\1\224\1\225"
- + "\6\6\1\226\7\6\1\227\5\6\1\230\1\6\1\231"
- + "\1\232\3\6\1\233\1\125\1\63\1\6\1\234\1\6"
- + "\1\235\1\236\4\6\1\237\2\6\1\240\2\6\1\241"
- + "\1\242\1\6\1\243\1\244\5\6\1\125\1\63\2\6"
- + "\1\245\1\246\1\6\1\247\1\6\1\250\6\6\1\251"
- + "\2\6\1\63\4\6\1\252\4\6\1\253\1\254\1\255"
- + "\1\63\6\6\1\256\2\6\1\63\1\6\1\257\1\6"
- + "\1\260\2\6\1\261\1\262\1\63\2\6\1\263\3\6"
- + "\1\63\1\264\4\6\1\63\2\6\1\265\1\266\1\267"
- + "\1\6\1\270";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\6\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"+
+ "\1\10\1\11\1\12\1\13\1\14\2\15\1\16\1\17"+
+ "\1\20\26\6\1\21\1\22\1\23\1\24\1\25\1\26"+
+ "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+
+ "\1\37\1\40\1\41\1\42\2\43\1\44\1\1\1\42"+
+ "\2\45\1\42\1\1\1\46\2\42\2\47\2\42\1\1"+
+ "\1\50\1\3\1\0\1\51\1\52\1\53\2\0\1\54"+
+ "\1\0\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+
+ "\1\54\1\0\2\63\1\0\1\64\1\65\7\6\1\66"+
+ "\11\6\1\67\12\6\1\70\1\71\1\72\4\6\1\73"+
+ "\30\6\1\56\1\74\1\75\1\76\1\77\1\100\1\101"+
+ "\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111"+
+ "\1\112\1\113\1\104\1\114\1\104\6\0\1\115\2\3"+
+ "\2\0\1\116\3\0\1\117\1\0\1\120\1\121\1\122"+
+ "\1\123\2\124\1\63\1\54\1\0\10\6\1\125\5\6"+
+ "\1\126\1\127\5\6\1\130\1\6\1\131\5\6\1\132"+
+ "\7\6\1\133\2\6\1\134\10\6\1\135\20\6\1\136"+
+ "\1\6\1\137\2\6\1\140\2\6\1\141\11\0\1\142"+
+ "\5\0\1\143\1\124\1\63\4\6\1\144\1\145\1\146"+
+ "\1\6\1\147\1\6\1\150\5\6\1\151\7\6\1\152"+
+ "\1\6\1\153\4\6\1\154\22\6\1\155\7\6\1\156"+
+ "\4\6\1\157\7\6\1\0\1\160\1\42\1\0\1\161"+
+ "\12\0\1\124\1\63\1\162\4\6\1\163\1\164\1\6"+
+ "\1\165\5\6\1\166\5\6\1\167\3\6\1\170\14\6"+
+ "\1\171\6\6\1\172\2\6\1\173\3\6\1\174\1\6"+
+ "\1\175\10\6\10\0\1\124\1\63\1\176\1\6\1\177"+
+ "\3\6\1\200\2\6\1\201\1\202\7\6\1\203\4\6"+
+ "\1\204\4\6\1\205\5\6\1\206\10\6\1\207\2\6"+
+ "\1\210\3\6\1\211\1\212\1\6\2\0\1\117\1\124"+
+ "\1\63\1\6\1\213\5\6\1\214\14\6\1\215\1\6"+
+ "\1\216\1\6\1\217\7\6\1\220\1\221\6\6\1\42"+
+ "\1\124\1\63\1\6\1\222\2\6\1\223\1\224\6\6"+
+ "\1\225\7\6\1\226\5\6\1\227\1\6\1\230\1\231"+
+ "\3\6\1\232\1\124\1\63\1\6\1\233\1\6\1\234"+
+ "\1\235\4\6\1\236\2\6\1\237\2\6\1\240\1\241"+
+ "\1\6\1\242\1\243\5\6\1\124\1\63\2\6\1\244"+
+ "\1\245\1\6\1\246\1\6\1\247\6\6\1\250\2\6"+
+ "\1\63\4\6\1\251\4\6\1\252\1\253\1\254\1\63"+
+ "\6\6\1\255\2\6\1\63\1\6\1\256\1\6\1\257"+
+ "\2\6\1\260\1\261\1\63\2\6\1\262\3\6\1\63"+
+ "\1\263\4\6\1\63\2\6\1\264\1\265\1\266\1\6"+
+ "\1\267";
- private static int[] zzUnpackAction() {
- int[] result = new int[698];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[698];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\124\0\250\0\374\0\u0150\0\u01a4\0\u01f8\0\u024c"+
+ "\0\u01f8\0\u02a0\0\u02f4\0\u0348\0\u039c\0\u03f0\0\u0444\0\u0498"+
+ "\0\u04ec\0\u0540\0\u01f8\0\u0594\0\u05e8\0\u063c\0\u01f8\0\u01f8"+
+ "\0\u0690\0\u06e4\0\u0738\0\u078c\0\u07e0\0\u0834\0\u0888\0\u08dc"+
+ "\0\u0930\0\u0984\0\u09d8\0\u0a2c\0\u0a80\0\u0ad4\0\u0b28\0\u0b7c"+
+ "\0\u0bd0\0\u0c24\0\u0c78\0\u0ccc\0\u0d20\0\u0d74\0\u01f8\0\u01f8"+
+ "\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u0dc8\0\u01f8"+
+ "\0\u01f8\0\u0e1c\0\u0e70\0\u0ec4\0\u0f18\0\u0f6c\0\u01f8\0\u0fc0"+
+ "\0\u1014\0\u01f8\0\u01f8\0\u1068\0\u10bc\0\u1110\0\u01f8\0\u1164"+
+ "\0\u11b8\0\u01f8\0\u120c\0\u01f8\0\u1260\0\u01f8\0\u12b4\0\u1308"+
+ "\0\u135c\0\u01f8\0\u13b0\0\u1404\0\u01f8\0\u01f8\0\u01f8\0\u1458"+
+ "\0\u14ac\0\u1500\0\u1554\0\u15a8\0\u01f8\0\u01f8\0\u15fc\0\u01f8"+
+ "\0\u1650\0\u16a4\0\u16f8\0\u174c\0\u17a0\0\u17f4\0\u1848\0\u01f8"+
+ "\0\u01f8\0\u189c\0\u18f0\0\u1944\0\u1998\0\u19ec\0\u1a40\0\u1a94"+
+ "\0\u039c\0\u1ae8\0\u1b3c\0\u1b90\0\u1be4\0\u1c38\0\u1c8c\0\u1ce0"+
+ "\0\u1d34\0\u1d88\0\u1ddc\0\u1e30\0\u1e84\0\u1ed8\0\u1f2c\0\u1f80"+
+ "\0\u1fd4\0\u2028\0\u207c\0\u20d0\0\u2124\0\u039c\0\u2178\0\u21cc"+
+ "\0\u2220\0\u2274\0\u22c8\0\u231c\0\u039c\0\u2370\0\u23c4\0\u2418"+
+ "\0\u246c\0\u24c0\0\u2514\0\u2568\0\u25bc\0\u2610\0\u2664\0\u26b8"+
+ "\0\u270c\0\u2760\0\u27b4\0\u2808\0\u285c\0\u28b0\0\u2904\0\u2958"+
+ "\0\u29ac\0\u2a00\0\u2a54\0\u2aa8\0\u2afc\0\u2b50\0\u01f8\0\u01f8"+
+ "\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8"+
+ "\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u2ba4\0\u01f8"+
+ "\0\u2bf8\0\u11b8\0\u2c4c\0\u2ca0\0\u2cf4\0\u2d48\0\u2d9c\0\u01f8"+
+ "\0\u2df0\0\u01f8\0\u2e44\0\u2e98\0\u01f8\0\u2eec\0\u2f40\0\u2f94"+
+ "\0\u01f8\0\u2fe8\0\u01f8\0\u303c\0\u01f8\0\u01f8\0\u174c\0\u3090"+
+ "\0\u30e4\0\u3138\0\u3138\0\u318c\0\u31e0\0\u3234\0\u3288\0\u32dc"+
+ "\0\u3330\0\u3384\0\u33d8\0\u039c\0\u342c\0\u3480\0\u34d4\0\u3528"+
+ "\0\u357c\0\u039c\0\u039c\0\u35d0\0\u3624\0\u3678\0\u36cc\0\u3720"+
+ "\0\u039c\0\u3774\0\u37c8\0\u381c\0\u3870\0\u38c4\0\u3918\0\u396c"+
+ "\0\u039c\0\u39c0\0\u3a14\0\u3a68\0\u3abc\0\u3b10\0\u3b64\0\u3bb8"+
+ "\0\u3c0c\0\u3c60\0\u3cb4\0\u039c\0\u3d08\0\u3d5c\0\u3db0\0\u3e04"+
+ "\0\u3e58\0\u3eac\0\u3f00\0\u3f54\0\u039c\0\u3fa8\0\u3ffc\0\u4050"+
+ "\0\u40a4\0\u40f8\0\u414c\0\u41a0\0\u41f4\0\u4248\0\u429c\0\u42f0"+
+ "\0\u4344\0\u4398\0\u43ec\0\u4440\0\u4494\0\u039c\0\u44e8\0\u453c"+
+ "\0\u4590\0\u45e4\0\u039c\0\u4638\0\u468c\0\u01f8\0\u46e0\0\u4734"+
+ "\0\u4788\0\u47dc\0\u4830\0\u4884\0\u48d8\0\u492c\0\u4980\0\u01f8"+
+ "\0\u49d4\0\u4a28\0\u4a7c\0\u4ad0\0\u4b24\0\u01f8\0\u4b78\0\u4bcc"+
+ "\0\u4c20\0\u4c74\0\u4cc8\0\u4d1c\0\u039c\0\u039c\0\u039c\0\u4d70"+
+ "\0\u039c\0\u4dc4\0\u039c\0\u4e18\0\u4e6c\0\u4ec0\0\u4f14\0\u4f68"+
+ "\0\u4fbc\0\u5010\0\u5064\0\u50b8\0\u510c\0\u5160\0\u51b4\0\u5208"+
+ "\0\u039c\0\u525c\0\u039c\0\u52b0\0\u5304\0\u5358\0\u53ac\0\u039c"+
+ "\0\u5400\0\u5454\0\u54a8\0\u54fc\0\u5550\0\u55a4\0\u55f8\0\u564c"+
+ "\0\u56a0\0\u56f4\0\u5748\0\u579c\0\u57f0\0\u5844\0\u5898\0\u58ec"+
+ "\0\u5940\0\u5994\0\u039c\0\u59e8\0\u5a3c\0\u5a90\0\u5ae4\0\u5b38"+
+ "\0\u5b8c\0\u5be0\0\u039c\0\u5c34\0\u5c88\0\u5cdc\0\u5d30\0\u039c"+
+ "\0\u5d84\0\u5dd8\0\u5e2c\0\u5e80\0\u5ed4\0\u5f28\0\u5f7c\0\u2bf8"+
+ "\0\u01f8\0\u5fd0\0\u6024\0\u01f8\0\u6078\0\u60cc\0\u6120\0\u6174"+
+ "\0\u61c8\0\u621c\0\u6270\0\u62c4\0\u6318\0\u636c\0\u63c0\0\u6414"+
+ "\0\u039c\0\u6468\0\u64bc\0\u6510\0\u6564\0\u039c\0\u039c\0\u65b8"+
+ "\0\u039c\0\u660c\0\u6660\0\u66b4\0\u6708\0\u675c\0\u039c\0\u67b0"+
+ "\0\u6804\0\u6858\0\u68ac\0\u6900\0\u039c\0\u6954\0\u69a8\0\u69fc"+
+ "\0\u039c\0\u6a50\0\u6aa4\0\u6af8\0\u6b4c\0\u6ba0\0\u6bf4\0\u6c48"+
+ "\0\u6c9c\0\u6cf0\0\u6d44\0\u6d98\0\u6dec\0\u039c\0\u6e40\0\u6e94"+
+ "\0\u6ee8\0\u6f3c\0\u6f90\0\u6fe4\0\u039c\0\u7038\0\u708c\0\u70e0"+
+ "\0\u7134\0\u7188\0\u71dc\0\u039c\0\u7230\0\u039c\0\u7284\0\u72d8"+
+ "\0\u732c\0\u7380\0\u73d4\0\u7428\0\u747c\0\u74d0\0\u7524\0\u7578"+
+ "\0\u75cc\0\u7620\0\u7674\0\u76c8\0\u771c\0\u7770\0\u77c4\0\u7818"+
+ "\0\u039c\0\u786c\0\u039c\0\u78c0\0\u7914\0\u7968\0\u039c\0\u79bc"+
+ "\0\u7a10\0\u039c\0\u039c\0\u7a64\0\u7ab8\0\u7b0c\0\u7b60\0\u7bb4"+
+ "\0\u7c08\0\u7c5c\0\u039c\0\u7cb0\0\u7d04\0\u7d58\0\u7dac\0\u039c"+
+ "\0\u7e00\0\u7e54\0\u7ea8\0\u7efc\0\u039c\0\u7f50\0\u7fa4\0\u7ff8"+
+ "\0\u804c\0\u80a0\0\u039c\0\u80f4\0\u8148\0\u819c\0\u81f0\0\u8244"+
+ "\0\u8298\0\u82ec\0\u8340\0\u039c\0\u8394\0\u83e8\0\u039c\0\u843c"+
+ "\0\u8490\0\u84e4\0\u039c\0\u039c\0\u8538\0\u858c\0\u85e0\0\u6270"+
+ "\0\u8634\0\u8688\0\u86dc\0\u039c\0\u8730\0\u8784\0\u87d8\0\u882c"+
+ "\0\u8880\0\u039c\0\u88d4\0\u8928\0\u897c\0\u89d0\0\u8a24\0\u8a78"+
+ "\0\u8acc\0\u8b20\0\u8b74\0\u8bc8\0\u8c1c\0\u8c70\0\u039c\0\u8cc4"+
+ "\0\u039c\0\u8d18\0\u039c\0\u8d6c\0\u8dc0\0\u8e14\0\u8e68\0\u8ebc"+
+ "\0\u8f10\0\u8f64\0\u039c\0\u039c\0\u8fb8\0\u900c\0\u9060\0\u90b4"+
+ "\0\u9108\0\u915c\0\u75cc\0\u91b0\0\u9204\0\u9258\0\u039c\0\u92ac"+
+ "\0\u9300\0\u039c\0\u039c\0\u9354\0\u93a8\0\u93fc\0\u9450\0\u94a4"+
+ "\0\u94f8\0\u039c\0\u954c\0\u95a0\0\u95f4\0\u9648\0\u969c\0\u96f0"+
+ "\0\u9744\0\u039c\0\u9798\0\u97ec\0\u9840\0\u9894\0\u98e8\0\u039c"+
+ "\0\u993c\0\u039c\0\u039c\0\u9990\0\u99e4\0\u9a38\0\u039c\0\u9a8c"+
+ "\0\u9ae0\0\u9b34\0\u039c\0\u9b88\0\u039c\0\u039c\0\u9bdc\0\u9c30"+
+ "\0\u9c84\0\u9cd8\0\u039c\0\u9d2c\0\u9d80\0\u039c\0\u9dd4\0\u9e28"+
+ "\0\u039c\0\u9e7c\0\u9ed0\0\u039c\0\u039c\0\u9f24\0\u9f78\0\u9fcc"+
+ "\0\ua020\0\ua074\0\u01f8\0\ua0c8\0\ua11c\0\ua170\0\u039c\0\u039c"+
+ "\0\ua1c4\0\u039c\0\ua218\0\u039c\0\ua26c\0\ua2c0\0\ua314\0\ua368"+
+ "\0\ua3bc\0\ua410\0\u039c\0\ua464\0\ua4b8\0\ua50c\0\ua560\0\ua5b4"+
+ "\0\ua608\0\ua65c\0\ua6b0\0\ua704\0\ua758\0\ua7ac\0\ua800\0\u039c"+
+ "\0\u039c\0\u039c\0\ua854\0\ua8a8\0\ua8fc\0\ua950\0\ua9a4\0\ua9f8"+
+ "\0\uaa4c\0\u039c\0\uaaa0\0\uaaf4\0\uab48\0\uab9c\0\u039c\0\uabf0"+
+ "\0\u039c\0\uac44\0\uac98\0\uacec\0\uad40\0\uad94\0\uade8\0\uae3c"+
+ "\0\u039c\0\uae90\0\uaee4\0\uaf38\0\uaf8c\0\u039c\0\uafe0\0\ub034"+
+ "\0\ub088\0\ub0dc\0\u16f8\0\ub130\0\ub184\0\u039c\0\u039c\0\u039c"+
+ "\0\ub1d8\0\u039c";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[698];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\124\0\250\0\374\0\u0150\0\u01a4\0\u01f8\0\u024c"
- + "\0\u01f8\0\u02a0\0\u02f4\0\u0348\0\u039c\0\u03f0\0\u0444\0\u0498"
- + "\0\u04ec\0\u0540\0\u01f8\0\u0594\0\u05e8\0\u063c\0\u01f8\0\u01f8"
- + "\0\u0690\0\u06e4\0\u0738\0\u078c\0\u07e0\0\u0834\0\u0888\0\u08dc"
- + "\0\u0930\0\u0984\0\u09d8\0\u0a2c\0\u0a80\0\u0ad4\0\u0b28\0\u0b7c"
- + "\0\u0bd0\0\u0c24\0\u0c78\0\u0ccc\0\u0d20\0\u0d74\0\u01f8\0\u01f8"
- + "\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u0dc8\0\u01f8"
- + "\0\u01f8\0\u0e1c\0\u0e70\0\u0ec4\0\u0f18\0\u0f6c\0\u01f8\0\u0fc0"
- + "\0\u1014\0\u01f8\0\u01f8\0\u1068\0\u10bc\0\u1110\0\u01f8\0\u1164"
- + "\0\u11b8\0\u01f8\0\u120c\0\u01f8\0\u1260\0\u01f8\0\u12b4\0\u1308"
- + "\0\u135c\0\u01f8\0\u13b0\0\u1404\0\u01f8\0\u01f8\0\u01f8\0\u1458"
- + "\0\u14ac\0\u1500\0\u1554\0\u15a8\0\u01f8\0\u01f8\0\u15fc\0\u01f8"
- + "\0\u1650\0\u16a4\0\u16f8\0\u174c\0\u17a0\0\u17f4\0\u1848\0\u01f8"
- + "\0\u01f8\0\u189c\0\u18f0\0\u1944\0\u1998\0\u19ec\0\u1a40\0\u1a94"
- + "\0\u039c\0\u1ae8\0\u1b3c\0\u1b90\0\u1be4\0\u1c38\0\u1c8c\0\u1ce0"
- + "\0\u1d34\0\u1d88\0\u1ddc\0\u1e30\0\u1e84\0\u1ed8\0\u1f2c\0\u1f80"
- + "\0\u1fd4\0\u2028\0\u207c\0\u20d0\0\u2124\0\u039c\0\u2178\0\u21cc"
- + "\0\u2220\0\u2274\0\u22c8\0\u231c\0\u039c\0\u2370\0\u23c4\0\u2418"
- + "\0\u246c\0\u24c0\0\u2514\0\u2568\0\u25bc\0\u2610\0\u2664\0\u26b8"
- + "\0\u270c\0\u2760\0\u27b4\0\u2808\0\u285c\0\u28b0\0\u2904\0\u2958"
- + "\0\u29ac\0\u2a00\0\u2a54\0\u2aa8\0\u2afc\0\u2b50\0\u01f8\0\u01f8"
- + "\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8"
- + "\0\u2ba4\0\u2bf8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8\0\u01f8"
- + "\0\u01f8\0\u11b8\0\u2c4c\0\u2ca0\0\u2cf4\0\u2d48\0\u2d9c\0\u01f8"
- + "\0\u2df0\0\u2e44\0\u01f8\0\u2e98\0\u2eec\0\u01f8\0\u2f40\0\u2f94"
- + "\0\u2fe8\0\u01f8\0\u303c\0\u01f8\0\u3090\0\u01f8\0\u01f8\0\u174c"
- + "\0\u30e4\0\u3138\0\u318c\0\u318c\0\u31e0\0\u3234\0\u3288\0\u32dc"
- + "\0\u3330\0\u3384\0\u33d8\0\u342c\0\u039c\0\u3480\0\u34d4\0\u3528"
- + "\0\u357c\0\u35d0\0\u039c\0\u039c\0\u3624\0\u3678\0\u36cc\0\u3720"
- + "\0\u3774\0\u039c\0\u37c8\0\u381c\0\u3870\0\u38c4\0\u3918\0\u396c"
- + "\0\u39c0\0\u039c\0\u3a14\0\u3a68\0\u3abc\0\u3b10\0\u3b64\0\u3bb8"
- + "\0\u3c0c\0\u3c60\0\u3cb4\0\u3d08\0\u039c\0\u3d5c\0\u3db0\0\u3e04"
- + "\0\u3e58\0\u3eac\0\u3f00\0\u3f54\0\u3fa8\0\u039c\0\u3ffc\0\u4050"
- + "\0\u40a4\0\u40f8\0\u414c\0\u41a0\0\u41f4\0\u4248\0\u429c\0\u42f0"
- + "\0\u4344\0\u4398\0\u43ec\0\u4440\0\u4494\0\u44e8\0\u039c\0\u453c"
- + "\0\u4590\0\u45e4\0\u4638\0\u039c\0\u468c\0\u46e0\0\u01f8\0\u01f8"
- + "\0\u4734\0\u4788\0\u47dc\0\u4830\0\u4884\0\u48d8\0\u492c\0\u4980"
- + "\0\u01f8\0\u49d4\0\u4a28\0\u4a7c\0\u4ad0\0\u4b24\0\u01f8\0\u4b78"
- + "\0\u4bcc\0\u4c20\0\u4c74\0\u4cc8\0\u4d1c\0\u039c\0\u039c\0\u039c"
- + "\0\u4d70\0\u039c\0\u4dc4\0\u039c\0\u4e18\0\u4e6c\0\u4ec0\0\u4f14"
- + "\0\u4f68\0\u4fbc\0\u5010\0\u5064\0\u50b8\0\u510c\0\u5160\0\u51b4"
- + "\0\u5208\0\u039c\0\u525c\0\u039c\0\u52b0\0\u5304\0\u5358\0\u53ac"
- + "\0\u039c\0\u5400\0\u5454\0\u54a8\0\u54fc\0\u5550\0\u55a4\0\u55f8"
- + "\0\u564c\0\u56a0\0\u56f4\0\u5748\0\u579c\0\u57f0\0\u5844\0\u5898"
- + "\0\u58ec\0\u5940\0\u5994\0\u039c\0\u59e8\0\u5a3c\0\u5a90\0\u5ae4"
- + "\0\u5b38\0\u5b8c\0\u5be0\0\u039c\0\u5c34\0\u5c88\0\u5cdc\0\u5d30"
- + "\0\u039c\0\u5d84\0\u5dd8\0\u5e2c\0\u5e80\0\u5ed4\0\u5f28\0\u5f7c"
- + "\0\u5fd0\0\u6024\0\u01f8\0\u6078\0\u60cc\0\u6120\0\u6174\0\u61c8"
- + "\0\u01f8\0\u621c\0\u6270\0\u62c4\0\u6318\0\u636c\0\u63c0\0\u6414"
- + "\0\u039c\0\u6468\0\u64bc\0\u6510\0\u6564\0\u039c\0\u039c\0\u65b8"
- + "\0\u039c\0\u660c\0\u6660\0\u66b4\0\u6708\0\u675c\0\u039c\0\u67b0"
- + "\0\u6804\0\u6858\0\u68ac\0\u6900\0\u039c\0\u6954\0\u69a8\0\u69fc"
- + "\0\u039c\0\u6a50\0\u6aa4\0\u6af8\0\u6b4c\0\u6ba0\0\u6bf4\0\u6c48"
- + "\0\u6c9c\0\u6cf0\0\u6d44\0\u6d98\0\u6dec\0\u039c\0\u6e40\0\u6e94"
- + "\0\u6ee8\0\u6f3c\0\u6f90\0\u6fe4\0\u039c\0\u7038\0\u708c\0\u70e0"
- + "\0\u7134\0\u7188\0\u71dc\0\u039c\0\u7230\0\u039c\0\u7284\0\u72d8"
- + "\0\u732c\0\u7380\0\u73d4\0\u7428\0\u747c\0\u74d0\0\u7524\0\u7578"
- + "\0\u75cc\0\u7620\0\u7674\0\u76c8\0\u771c\0\u7770\0\u77c4\0\u7818"
- + "\0\u039c\0\u786c\0\u039c\0\u78c0\0\u7914\0\u7968\0\u039c\0\u79bc"
- + "\0\u7a10\0\u039c\0\u039c\0\u7a64\0\u7ab8\0\u7b0c\0\u7b60\0\u7bb4"
- + "\0\u7c08\0\u7c5c\0\u039c\0\u7cb0\0\u7d04\0\u7d58\0\u7dac\0\u039c"
- + "\0\u7e00\0\u7e54\0\u7ea8\0\u7efc\0\u039c\0\u7f50\0\u7fa4\0\u7ff8"
- + "\0\u804c\0\u80a0\0\u039c\0\u80f4\0\u8148\0\u819c\0\u81f0\0\u8244"
- + "\0\u8298\0\u82ec\0\u8340\0\u039c\0\u8394\0\u83e8\0\u039c\0\u843c"
- + "\0\u8490\0\u84e4\0\u039c\0\u039c\0\u8538\0\u858c\0\u85e0\0\u6270"
- + "\0\u8634\0\u8688\0\u86dc\0\u039c\0\u8730\0\u8784\0\u87d8\0\u882c"
- + "\0\u8880\0\u039c\0\u88d4\0\u8928\0\u897c\0\u89d0\0\u8a24\0\u8a78"
- + "\0\u8acc\0\u8b20\0\u8b74\0\u8bc8\0\u8c1c\0\u8c70\0\u039c\0\u8cc4"
- + "\0\u039c\0\u8d18\0\u039c\0\u8d6c\0\u8dc0\0\u8e14\0\u8e68\0\u8ebc"
- + "\0\u8f10\0\u8f64\0\u039c\0\u039c\0\u8fb8\0\u900c\0\u9060\0\u90b4"
- + "\0\u9108\0\u915c\0\u75cc\0\u91b0\0\u9204\0\u9258\0\u039c\0\u92ac"
- + "\0\u9300\0\u039c\0\u039c\0\u9354\0\u93a8\0\u93fc\0\u9450\0\u94a4"
- + "\0\u94f8\0\u039c\0\u954c\0\u95a0\0\u95f4\0\u9648\0\u969c\0\u96f0"
- + "\0\u9744\0\u039c\0\u9798\0\u97ec\0\u9840\0\u9894\0\u98e8\0\u039c"
- + "\0\u993c\0\u039c\0\u039c\0\u9990\0\u99e4\0\u9a38\0\u039c\0\u9a8c"
- + "\0\u9ae0\0\u9b34\0\u039c\0\u9b88\0\u039c\0\u039c\0\u9bdc\0\u9c30"
- + "\0\u9c84\0\u9cd8\0\u039c\0\u9d2c\0\u9d80\0\u039c\0\u9dd4\0\u9e28"
- + "\0\u039c\0\u9e7c\0\u9ed0\0\u039c\0\u039c\0\u9f24\0\u9f78\0\u9fcc"
- + "\0\ua020\0\ua074\0\u01f8\0\ua0c8\0\ua11c\0\ua170\0\u039c\0\u039c"
- + "\0\ua1c4\0\u039c\0\ua218\0\u039c\0\ua26c\0\ua2c0\0\ua314\0\ua368"
- + "\0\ua3bc\0\ua410\0\u039c\0\ua464\0\ua4b8\0\ua50c\0\ua560\0\ua5b4"
- + "\0\ua608\0\ua65c\0\ua6b0\0\ua704\0\ua758\0\ua7ac\0\ua800\0\u039c"
- + "\0\u039c\0\u039c\0\ua854\0\ua8a8\0\ua8fc\0\ua950\0\ua9a4\0\ua9f8"
- + "\0\uaa4c\0\u039c\0\uaaa0\0\uaaf4\0\uab48\0\uab9c\0\u039c\0\uabf0"
- + "\0\u039c\0\uac44\0\uac98\0\uacec\0\uad40\0\uad94\0\uade8\0\uae3c"
- + "\0\u039c\0\uae90\0\uaee4\0\uaf38\0\uaf8c\0\u039c\0\uafe0\0\ub034"
- + "\0\ub088\0\ub0dc\0\u16f8\0\ub130\0\ub184\0\u039c\0\u039c\0\u039c"
- + "\0\ub1d8\0\u039c";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\7"+
+ "\1\16\1\17\1\20\1\21\1\12\1\22\1\23\1\24"+
+ "\1\25\2\15\2\25\1\15\1\26\1\7\1\27\1\30"+
+ "\1\31\1\32\1\33\1\34\1\15\1\35\1\36\1\37"+
+ "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+
+ "\1\15\1\50\1\15\1\51\1\52\1\15\1\53\2\15"+
+ "\1\54\12\15\1\55\1\56\1\57\1\60\1\61\1\62"+
+ "\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72"+
+ "\1\73\1\74\1\75\1\76\1\77\1\7\1\12\1\7"+
+ "\1\100\1\101\1\102\13\100\1\103\10\100\1\104\74\100"+
+ "\1\105\1\101\1\102\24\105\1\104\1\103\73\105\1\7"+
+ "\1\106\1\107\1\110\2\7\1\111\4\7\1\112\1\113"+
+ "\4\7\2\111\2\7\1\111\4\7\46\111\22\7\1\110"+
+ "\1\7\1\114\1\115\1\116\7\114\1\117\111\114\1\120"+
+ "\1\101\1\102\24\120\1\121\1\120\1\122\72\120\126\0"+
+ "\1\11\124\0\1\12\10\0\1\12\105\0\1\12\5\0"+
+ "\1\123\1\124\7\0\1\125\123\0\1\126\114\0\2\15"+
+ "\7\0\7\15\4\0\46\15\23\0\1\15\10\0\1\127"+
+ "\124\0\1\130\1\131\4\0\2\132\2\0\2\132\105\0"+
+ "\1\133\3\0\1\134\1\135\1\0\1\136\3\0\2\133"+
+ "\2\0\1\133\4\0\46\133\37\0\1\137\1\0\1\140"+
+ "\123\0\1\141\117\0\1\132\5\0\1\142\1\143\1\144"+
+ "\1\0\1\145\1\146\1\147\6\0\1\147\22\0\1\144"+
+ "\55\0\1\132\5\0\2\25\2\0\2\25\1\147\6\0"+
+ "\1\147\104\0\1\150\10\0\1\151\103\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\152\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\2\15\1\153\1\154\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"+
+ "\1\155\12\15\1\156\5\15\1\157\1\160\20\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\6\15\1\161"+
+ "\1\15\1\162\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\163\3\15\1\164\6\15\1\165"+
+ "\1\15\1\166\25\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\167\6\15\1\170\1\15\1\171"+
+ "\3\15\1\172\26\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\173\22\15\1\174\21\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\175"+
+ "\1\176\7\15\1\177\32\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\1\15\1\200\1\201\1\202\3\15"+
+ "\1\203\10\15\1\204\1\15\1\205\23\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\6\15\1\206\1\15"+
+ "\1\207\4\15\1\210\5\15\1\211\22\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\6\15\1\212\1\15"+
+ "\1\213\35\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\214\4\15\1\215\3\15\1\216\6\15"+
+ "\1\217\23\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\3\15\1\220\2\15\1\221\1\222\2\15\1\223"+
+ "\1\224\32\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\225\4\15\1\226\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\12\15\1\227\5\15"+
+ "\1\230\25\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\15\1\231\1\15\1\232\7\15\1\233\2\15"+
+ "\1\234\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\235\45\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\236\3\15\1\237\36\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\240"+
+ "\4\15\1\241\36\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\11\15\1\242\34\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\3\15\1\243\7\15\1\244"+
+ "\32\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\245\35\15\23\0\1\15\15\0\1\246\123\0"+
+ "\1\247\75\0\1\250\25\0\1\251\76\0\1\252\24\0"+
+ "\1\253\77\0\1\254\23\0\1\255\123\0\1\256\106\0"+
+ "\1\100\2\0\13\100\1\0\10\100\1\0\74\100\2\0"+
+ "\1\102\121\0\1\257\2\0\13\257\1\260\10\257\1\261"+
+ "\1\262\1\257\1\263\1\264\6\257\1\265\1\266\1\257"+
+ "\1\267\1\257\1\270\7\257\1\271\41\257\3\0\1\105"+
+ "\2\0\24\105\2\0\73\105\2\0\1\107\124\0\1\110"+
+ "\10\0\1\110\105\0\1\110\7\0\2\272\1\273\3\0"+
+ "\1\274\1\275\1\0\7\272\4\0\46\272\23\0\1\272"+
+ "\3\0\1\110\2\0\1\272\5\0\1\113\4\0\2\272"+
+ "\2\0\1\272\4\0\46\272\22\0\1\110\3\0\1\116"+
+ "\125\0\1\276\1\0\1\277\12\0\2\277\2\0\1\277"+
+ "\4\0\46\277\24\0\1\120\2\0\24\120\1\0\1\120"+
+ "\1\0\72\120\1\257\2\0\24\257\1\261\1\257\1\300"+
+ "\1\263\1\264\6\257\1\265\1\266\1\257\1\267\1\257"+
+ "\1\270\7\257\1\271\41\257\3\0\1\123\1\301\1\302"+
+ "\121\123\5\303\1\304\116\303\11\0\1\305\120\0\1\306"+
+ "\12\0\2\306\2\0\1\306\4\0\46\306\43\0\2\132"+
+ "\2\0\2\132\1\147\6\0\1\147\75\0\1\307\1\133"+
+ "\1\310\2\0\1\311\1\312\2\0\2\133\2\307\2\133"+
+ "\1\307\4\0\46\307\23\0\1\133\15\0\1\313\121\0"+
+ "\1\314\1\0\1\315\123\0\1\316\117\0\1\132\5\0"+
+ "\1\142\1\143\2\0\1\145\1\146\1\147\6\0\1\147"+
+ "\100\0\1\132\5\0\2\143\2\0\2\143\1\147\6\0"+
+ "\1\147\106\0\1\317\1\320\1\0\4\320\4\0\1\320"+
+ "\1\0\2\320\1\0\1\320\6\0\2\320\12\0\1\320"+
+ "\1\0\1\320\5\0\2\320\41\0\1\132\5\0\1\146"+
+ "\1\143\2\0\2\146\1\147\6\0\1\147\100\0\1\132"+
+ "\5\0\1\321\1\143\2\0\2\321\1\147\6\0\1\147"+
+ "\106\0\2\322\2\0\2\322\1\0\1\323\66\0\1\323"+
+ "\14\0\2\15\7\0\7\15\4\0\2\15\1\324\43\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\325\11\15\1\326\22\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\10\15\1\327\35\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\5\15\1\330\40\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"+
+ "\1\331\37\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\3\15\1\332\42\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\333\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\14\15\1\334\31\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"+
+ "\1\335\2\15\1\336\4\15\1\337\27\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\10\15\1\340\35\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"+
+ "\1\341\42\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\15\1\342\44\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\343\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\344\3\15"+
+ "\1\345\36\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\346\20\15\1\347\24\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\12\15\1\350\33\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\351"+
+ "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\352\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\17\15\1\353\5\15\1\354\20\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\355"+
+ "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\16\15\1\356\27\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\357\7\15\1\360\6\15\1\361"+
+ "\23\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\16\15\1\362\27\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\363\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\26\15\1\364\17\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\1\15\1\365"+
+ "\10\15\1\366\33\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\21\15\1\367\24\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\6\15\1\370\2\15\1\371"+
+ "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\32\15\1\372\13\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\21\15\1\373\24\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\2\15\1\374\43\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\375"+
+ "\1\15\1\376\27\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\15\15\1\377\1\u0100\27\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\21\15\1\u0101\24\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\10\15"+
+ "\1\u0102\35\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u0103\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\5\15\1\u0104\40\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\1\15\1\u0105\44\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\10\15"+
+ "\1\u0106\35\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\10\15\1\u0107\35\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\10\15\1\u0108\35\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0109\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u010a\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u010b\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u010c\4\15\1\u010d\2\15"+
+ "\1\u010e\33\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\5\15\1\u010f\40\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\1\u0110\45\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\3\15\1\u0111\42\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\5\15\1\u0112"+
+ "\1\u0113\1\u0114\6\15\1\u0115\27\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\1\15\1\u0116\44\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u0117"+
+ "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\11\15\1\u0118\34\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\11\15\1\u0119\34\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\1\15\1\u011a\44\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\44\15\1\u011b"+
+ "\1\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\23\15\1\u011c\22\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\15\15\1\u011d\30\15\23\0\1\15\15\0"+
+ "\1\u011e\125\0\2\u011f\1\0\4\u011f\4\0\1\u011f\1\0"+
+ "\2\u011f\1\0\1\u011f\6\0\2\u011f\12\0\1\u011f\1\0"+
+ "\1\u011f\5\0\2\u011f\47\0\2\u0120\1\0\4\u0120\4\0"+
+ "\1\u0120\1\0\2\u0120\1\0\1\u0120\6\0\2\u0120\12\0"+
+ "\1\u0120\1\0\1\u0120\5\0\2\u0120\36\0\1\u0121\12\0"+
+ "\2\u0121\2\0\1\u0121\4\0\46\u0121\40\0\1\274\1\275"+
+ "\122\0\1\275\1\0\1\u0122\113\0\1\u0123\12\0\2\u0123"+
+ "\2\0\1\u0123\4\0\46\u0123\32\0\1\u0124\1\277\1\u0125"+
+ "\2\0\1\114\1\u0126\2\0\2\277\2\u0124\2\277\1\u0124"+
+ "\4\0\46\u0124\23\0\1\277\2\0\1\302\121\0\5\303"+
+ "\1\u0127\116\303\4\0\1\302\1\304\124\0\2\306\3\0"+
+ "\1\u0128\3\0\7\306\4\0\46\306\23\0\1\306\6\0"+
+ "\2\307\1\u0129\2\0\1\311\1\u012a\1\u012b\1\0\7\307"+
+ "\4\0\46\307\23\0\1\307\6\0\1\u012c\12\0\2\u012c"+
+ "\2\0\1\u012c\4\0\46\u012c\32\0\1\u012d\5\0\1\312"+
+ "\4\0\2\u012d\2\0\1\u012d\4\0\46\u012d\41\0\1\u012e"+
+ "\125\0\2\u012f\1\0\4\u012f\4\0\1\u012f\1\0\2\u012f"+
+ "\1\0\1\u012f\6\0\2\u012f\12\0\1\u012f\1\0\1\u012f"+
+ "\5\0\2\u012f\41\0\1\132\5\0\1\u0130\1\143\2\0"+
+ "\2\u0130\1\147\6\0\1\147\106\0\2\322\2\0\2\322"+
+ "\105\0\2\15\7\0\7\15\4\0\3\15\1\u0131\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"+
+ "\1\u0132\32\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\7\15\1\u0133\36\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\14\15\1\u0134\31\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\20\15\1\u0135\25\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u0136\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u0137\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u0138\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0139\43\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\5\15"+
+ "\1\u013a\40\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u013b\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u013c\2\15\1\u013d\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"+
+ "\1\u013e\37\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\15\1\u013f\7\15\1\u0140\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\21\15\1\u0141\24\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"+
+ "\1\u0142\37\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u0143\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\u0144\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\1\15\1\u0145\44\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"+
+ "\1\u0146\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\11\15\1\u0147\34\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u0148\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\16\15\1\u0149\27\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\5\15"+
+ "\1\u014a\40\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u014b\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\16\15\1\u014c\27\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\26\15\1\u014d\17\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\26\15"+
+ "\1\u014e\17\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\7\15\1\u014f\36\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u0150\37\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0151\43\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u0152\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u0153\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\1\15\1\u0154\44\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\7\15\1\u0155\6\15"+
+ "\1\u0156\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u0157\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\7\15\1\u0158\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0159\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u015a\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u015b\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u015c\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\6\15\1\u015d\37\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\7\15"+
+ "\1\u015e\36\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\3\15\1\u015f\42\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\5\15\1\u0160\40\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\26\15\1\u0161\17\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"+
+ "\1\u0162\31\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\20\15\1\u0163\25\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\16\15\1\u0164\27\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\24\15\1\u0165\21\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u0166\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\10\15\1\u0167\13\15\1\u0168\21\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\4\15\1\u0169\41\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"+
+ "\1\u016a\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\22\15\1\u016b\23\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\20\15\1\u016c\25\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\13\15\1\u016d\32\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"+
+ "\1\u016e\44\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u016f\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\14\15\1\u0170\31\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\27\15\1\u0171\3\15"+
+ "\1\u0172\6\15\1\u0173\3\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\7\15\1\u0174\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\12\15\1\u0175\33\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\u0176"+
+ "\45\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\12\15\1\u0177\33\15\23\0\1\15\17\0\2\u0178\1\0"+
+ "\4\u0178\4\0\1\u0178\1\0\2\u0178\1\0\1\u0178\6\0"+
+ "\2\u0178\12\0\1\u0178\1\0\1\u0178\5\0\2\u0178\47\0"+
+ "\2\u0179\1\0\4\u0179\4\0\1\u0179\1\0\2\u0179\1\0"+
+ "\1\u0179\6\0\2\u0179\12\0\1\u0179\1\0\1\u0179\5\0"+
+ "\2\u0179\36\0\2\u0121\4\0\1\274\1\275\1\0\7\u0121"+
+ "\4\0\46\u0121\23\0\1\u0121\1\u0122\2\0\13\u0122\1\u017a"+
+ "\105\u0122\6\0\2\u0123\1\u017b\2\0\1\u017c\3\0\7\u0123"+
+ "\4\0\46\u0123\23\0\1\u0123\6\0\2\u0124\1\u017d\2\0"+
+ "\1\114\1\u017e\1\u017f\1\0\7\u0124\4\0\46\u0124\23\0"+
+ "\1\u0124\6\0\1\u0180\12\0\2\u0180\2\0\1\u0180\4\0"+
+ "\46\u0180\32\0\1\u0181\5\0\1\u0126\4\0\2\u0181\2\0"+
+ "\1\u0181\4\0\46\u0181\24\0\4\303\1\302\1\u0127\116\303"+
+ "\6\0\1\u0182\12\0\2\u0182\2\0\1\u0182\4\0\46\u0182"+
+ "\32\0\1\u012d\5\0\1\u012a\1\u012b\3\0\2\u012d\2\0"+
+ "\1\u012d\4\0\46\u012d\40\0\1\u012b\1\0\1\u0183\113\0"+
+ "\1\u0184\1\u012c\3\0\1\311\1\312\2\0\2\u012c\2\u0184"+
+ "\2\u012c\1\u0184\4\0\46\u0184\23\0\1\u012c\6\0\2\u012d"+
+ "\1\u0185\3\0\1\u0186\1\u012b\1\0\7\u012d\4\0\46\u012d"+
+ "\23\0\1\u012d\17\0\2\u0187\1\0\4\u0187\4\0\1\u0187"+
+ "\1\0\2\u0187\1\0\1\u0187\6\0\2\u0187\12\0\1\u0187"+
+ "\1\0\1\u0187\5\0\2\u0187\41\0\1\132\5\0\1\u0188"+
+ "\1\143\2\0\2\u0188\1\147\6\0\1\147\75\0\2\15"+
+ "\7\0\7\15\4\0\4\15\1\u0189\41\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\1\15\1\u018a\44\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\24\15"+
+ "\1\u018b\21\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\7\15\1\u018c\36\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\10\15\1\u018d\35\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\20\15\1\u018e\25\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u018f\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u0190\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u0191\37\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\11\15\1\u0192\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\12\15"+
+ "\1\u0193\33\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\30\15\1\u0194\10\15\1\u0195\4\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\11\15\1\u0196\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"+
+ "\1\u0197\44\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\5\15\1\u0198\40\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\1\15\1\u0199\44\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\12\15\1\u019a\33\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\32\15"+
+ "\1\u019b\13\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\6\15\1\u019c\37\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u019d\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\33\15\1\u019e\12\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u019f\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u01a0\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\17\15\1\u01a1\26\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\7\15\1\u01a2\36\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"+
+ "\1\u01a3\42\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\15\1\u01a4\44\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u01a5\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\1\15\1\u01a6\44\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u01a7\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\15\15\1\u01a8\30\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u01a9\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\13\15\1\u01aa\32\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u01ab\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u01ac\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\23\15\1\u01ad\22\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\2\15\1\u01ae\43\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\23\15"+
+ "\1\u01af\22\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u01b0\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\u01b1\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\11\15\1\u01b2\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\37\15"+
+ "\1\u01b3\2\15\1\u01b4\3\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u01b5\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\32\15\1\u01b6\13\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u01b7\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\11\15\1\u01b8\34\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u01b9\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\u01ba\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\12\15"+
+ "\1\u01bb\33\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\1\15\1\u01bc\44\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\1\u01bd\45\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\14\15\1\u01be\31\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\10\15\1\u01bf"+
+ "\35\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\1\15\1\u01c0\44\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\12\15\1\u01c1\33\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\2\15\1\u01c2\43\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\30\15\1\u01c3"+
+ "\15\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u01c4\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u01c5\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\10\15\1\u01c6\35\15\23\0"+
+ "\1\15\1\u0122\2\0\11\u0122\1\u017a\1\u0122\1\u017a\105\u0122"+
+ "\6\0\1\u01c7\12\0\2\u01c7\2\0\1\u01c7\4\0\46\u01c7"+
+ "\32\0\1\u01c8\12\0\2\u01c8\2\0\1\u01c8\4\0\46\u01c8"+
+ "\32\0\1\u0181\5\0\1\u017e\1\u017f\3\0\2\u0181\2\0"+
+ "\1\u0181\4\0\46\u0181\40\0\1\u017f\1\0\1\u01c9\113\0"+
+ "\1\u01ca\1\u0180\3\0\1\114\1\u0126\2\0\2\u0180\2\u01ca"+
+ "\2\u0180\1\u01ca\4\0\46\u01ca\23\0\1\u0180\6\0\2\u0181"+
+ "\1\u01cb\3\0\1\u01cc\1\u017f\1\0\7\u0181\4\0\46\u0181"+
+ "\23\0\1\u0181\6\0\1\u0184\1\u0182\3\0\1\311\1\u012a"+
+ "\1\u012b\1\0\2\u0182\2\u0184\2\u0182\1\u0184\4\0\46\u0184"+
+ "\23\0\1\u0182\1\u0183\2\0\13\u0183\1\u01cd\105\u0183\6\0"+
+ "\2\u0184\1\u0185\2\0\1\311\1\u012a\1\u012b\1\0\7\u0184"+
+ "\4\0\46\u0184\23\0\1\u0184\6\0\1\u01ce\12\0\2\u01ce"+
+ "\2\0\1\u01ce\4\0\46\u01ce\40\0\1\u0186\1\u012b\125\0"+
+ "\2\u01cf\1\0\4\u01cf\4\0\1\u01cf\1\0\2\u01cf\1\0"+
+ "\1\u01cf\6\0\2\u01cf\12\0\1\u01cf\1\0\1\u01cf\5\0"+
+ "\2\u01cf\41\0\1\132\5\0\1\u01d0\1\143\2\0\2\u01d0"+
+ "\1\147\6\0\1\147\75\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u01d1\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u01d2\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\23\15\1\u01d3\22\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\u01d4"+
+ "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u01d5\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\41\15\1\u01d6\4\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\5\15\1\u01d7\40\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\16\15\1\u01d8"+
+ "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\1\15\1\u01d9\44\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\u01da\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\20\15\1\u01db\25\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u01dc"+
+ "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u01dd\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\u01de\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\21\15\1\u01df\24\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\3\15\1\u01e0"+
+ "\42\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\11\15\1\u01e1\34\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u01e2\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\15\15\1\u01e3\30\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\10\15\1\u01e4"+
+ "\35\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u01e5\4\15\1\u01e6\30\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\23\15\1\u01e7\22\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u01e8"+
+ "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\23\15\1\u01e9\22\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\12\15\1\u01ea\33\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\14\15\1\u01eb\31\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\16\15\1\u01ec"+
+ "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\u01ed\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\5\15\1\u01ee\40\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\12\15\1\u01ef\33\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u01f0"+
+ "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\16\15\1\u01f1\27\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\12\15\1\u01f2\33\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\20\15\1\u01f3\25\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\7\15\1\u01f4"+
+ "\36\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\3\15\1\u01f5\42\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\u01f6\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\5\15\1\u01f7\40\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\30\15\1\u01f8"+
+ "\13\15\1\u01f9\1\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\11\15\1\u01fa\34\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\26\15\1\u01fb\17\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\5\15\1\u01fc"+
+ "\40\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\6\15\1\u01fd\37\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\26\15\1\u01fe\17\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\16\15\1\u01ff\27\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u0200"+
+ "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\1\15\1\u0201\44\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\10\15\1\u0202\35\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\26\15\1\u0203\17\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\1\15\1\u0204"+
+ "\44\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\12\15\1\u0205\33\15\23\0\1\15\6\0\2\u01c7\3\0"+
+ "\1\u017c\3\0\7\u01c7\4\0\46\u01c7\23\0\1\u01c7\6\0"+
+ "\1\u01ca\1\u01c8\3\0\1\114\1\u017e\1\u017f\1\0\2\u01c8"+
+ "\2\u01ca\2\u01c8\1\u01ca\4\0\46\u01ca\23\0\1\u01c8\1\u01c9"+
+ "\2\0\13\u01c9\1\u0206\105\u01c9\6\0\2\u01ca\1\u01cb\2\0"+
+ "\1\114\1\u017e\1\u017f\1\0\7\u01ca\4\0\46\u01ca\23\0"+
+ "\1\u01ca\6\0\1\u0207\12\0\2\u0207\2\0\1\u0207\4\0"+
+ "\46\u0207\40\0\1\u01cc\1\u017f\106\0\1\u0183\2\0\10\u0183"+
+ "\1\u0208\1\u01cd\1\u0183\1\u01cd\105\u0183\6\0\2\u01ce\4\0"+
+ "\1\u0186\1\u012b\1\0\7\u01ce\4\0\46\u01ce\23\0\1\u01ce"+
+ "\17\0\2\u0209\1\0\4\u0209\4\0\1\u0209\1\0\2\u0209"+
+ "\1\0\1\u0209\6\0\2\u0209\12\0\1\u0209\1\0\1\u0209"+
+ "\5\0\2\u0209\41\0\1\132\5\0\1\u020a\1\143\2\0"+
+ "\2\u020a\1\147\6\0\1\147\75\0\2\15\7\0\7\15"+
+ "\4\0\37\15\1\u020b\6\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u020c\37\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\13\15\1\u020d\32\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"+
+ "\1\u020e\44\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\16\15\1\u020f\27\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u0210\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\14\15\1\u0211\31\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u0212\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\3\15\1\u0213\42\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u0214\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\1\15\1\u0215\44\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\43\15"+
+ "\1\u0216\2\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\34\15\1\u0217\11\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\5\15\1\u0218\40\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0219\42\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"+
+ "\1\u021a\42\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u021b\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u021c\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\10\15\1\u021d\35\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\37\15"+
+ "\1\u021e\6\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\11\15\1\u021f\34\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u0220\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\5\15\1\u0221\40\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"+
+ "\1\u0222\42\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\22\15\1\u0223\23\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\7\15\1\u0224\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\24\15\1\u0225\21\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"+
+ "\1\u0226\44\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\3\15\1\u0227\42\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\u0228\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\6\15\1\u0229\37\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"+
+ "\1\u022a\32\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u022b\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\2\15\1\u022c\43\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\11\15\1\u022d\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u022e\34\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u022f\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u0230\37\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\14\15\1\u0231\31\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"+
+ "\1\u0232\34\15\23\0\1\15\1\u01c9\2\0\10\u01c9\1\u0233"+
+ "\1\u0206\1\u01c9\1\u0206\105\u01c9\6\0\2\u0207\4\0\1\u01cc"+
+ "\1\u017f\1\0\7\u0207\4\0\46\u0207\23\0\1\u0207\17\0"+
+ "\2\u0234\1\0\4\u0234\4\0\1\u0234\1\0\2\u0234\1\0"+
+ "\1\u0234\6\0\2\u0234\12\0\1\u0234\1\0\1\u0234\5\0"+
+ "\2\u0234\41\0\1\132\5\0\1\u0235\1\143\2\0\2\u0235"+
+ "\1\147\6\0\1\147\75\0\2\15\7\0\7\15\4\0"+
+ "\7\15\1\u0236\36\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u0237\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\3\15\1\u0238\42\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\31\15\1\u0239"+
+ "\14\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\26\15\1\u023a\17\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u023b\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\23\15\1\u023c\22\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\5\15\1\u023d"+
+ "\40\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\26\15\1\u023e\17\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\u023f\42\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\12\15\1\u0240\33\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\u0241"+
+ "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\16\15\1\u0242\27\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\5\15\1\u0243\40\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\36\15\1\u0244\7\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\10\15\1\u0245"+
+ "\35\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\u0246\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\7\15\1\u0247\36\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\11\15\1\u0248\34\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\10\15\1\u0249"+
+ "\35\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\10\15\1\u024a\35\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\12\15\1\u024b\33\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\12\15\1\u024c\33\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u024d"+
+ "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\u024e\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\3\15\1\u024f\3\15\4\0\46\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\23\15\1\u0250\22\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\1\15\1\u0251"+
+ "\44\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\20\15\1\u0252\25\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\1\15\1\u0253\44\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\12\15\1\u0254\33\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\31\15\1\u0255"+
+ "\11\15\1\u0256\2\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\22\15\1\u0257\23\15\23\0\1\15\17\0"+
+ "\2\u0258\1\0\4\u0258\4\0\1\u0258\1\0\2\u0258\1\0"+
+ "\1\u0258\6\0\2\u0258\12\0\1\u0258\1\0\1\u0258\5\0"+
+ "\2\u0258\41\0\1\132\5\0\1\u0259\1\143\2\0\2\u0259"+
+ "\1\147\6\0\1\147\75\0\2\15\7\0\7\15\4\0"+
+ "\24\15\1\u025a\21\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\26\15\1\u025b\17\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\7\15\1\u025c\36\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\u025d"+
+ "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\u025e\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u025f\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\11\15\1\u0260\34\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\26\15\1\u0261"+
+ "\17\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\7\15\1\u0262\36\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\2\15\1\u0263\43\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\7\15\1\u0264\36\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u0265"+
+ "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\14\15\1\u0266\31\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\24\15\1\u0267\21\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\2\15\1\u0268\43\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\u0269"+
+ "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\2\15\1\u026a\43\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\u026b\42\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\2\15\1\u026c\43\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\u026d"+
+ "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\12\15\1\u026e\33\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\12\15\1\u026f\33\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\7\15\1\u0270\36\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u0271"+
+ "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\16\15\1\u0272\27\15\23\0\1\15\17\0\2\u0273\1\0"+
+ "\4\u0273\4\0\1\u0273\1\0\2\u0273\1\0\1\u0273\6\0"+
+ "\2\u0273\12\0\1\u0273\1\0\1\u0273\5\0\2\u0273\41\0"+
+ "\1\132\5\0\1\u0274\1\143\2\0\2\u0274\1\147\6\0"+
+ "\1\147\75\0\2\15\7\0\7\15\4\0\12\15\1\u0275"+
+ "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\13\15\1\u0276\32\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\11\15\1\u0277\34\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\20\15\1\u0278\25\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\20\15\1\u0279"+
+ "\25\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\15\15\1\u027a\30\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\3\15\1\u027b\42\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\6\15\1\u027c\37\15\23\0"+
+ "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u027d"+
+ "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"+
+ "\37\15\1\u027e\6\15\23\0\1\15\6\0\2\15\7\0"+
+ "\7\15\4\0\44\15\1\u027f\1\15\23\0\1\15\6\0"+
+ "\2\15\7\0\7\15\4\0\1\u0280\45\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\11\15\1\u0281\34\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\10\15"+
+ "\1\u0282\35\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\10\15\1\u0283\35\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\7\15\1\u0284\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0285\42\15"+
+ "\23\0\1\15\11\0\1\132\5\0\1\u0286\1\143\2\0"+
+ "\2\u0286\1\147\6\0\1\147\75\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u0287\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\10\15\1\u0288\35\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\35\15\1\u0289\10\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"+
+ "\1\u028a\31\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u028b\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\7\15\1\u028c\36\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\13\15\1\u028d\32\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"+
+ "\1\u028e\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\23\15\1\u028f\22\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\26\15\1\u0290\17\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\21\15\1\u0291\24\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\22\15"+
+ "\1\u0292\23\15\23\0\1\15\11\0\1\132\5\0\1\u0293"+
+ "\1\143\2\0\2\u0293\1\147\6\0\1\147\75\0\2\15"+
+ "\7\0\7\15\4\0\40\15\1\u0294\5\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\14\15\1\u0295\31\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"+
+ "\1\u0296\32\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u0297\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\44\15\1\u0298\1\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\24\15\1\u0299\21\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\23\15"+
+ "\1\u029a\22\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\2\15\1\u029b\43\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u029c\42\15\23\0\1\15"+
+ "\11\0\1\132\5\0\1\u029d\1\143\2\0\2\u029d\1\147"+
+ "\6\0\1\147\75\0\2\15\7\0\7\15\4\0\16\15"+
+ "\1\u029e\27\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\6\15\1\u029f\37\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\3\15\1\u02a0\42\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\14\15\1\u02a1\31\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"+
+ "\1\u02a2\32\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u02a3\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\6\15\1\u02a4\37\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\21\15\1\u02a5\24\15"+
+ "\23\0\1\15\11\0\1\132\5\0\1\u02a6\1\143\2\0"+
+ "\2\u02a6\1\147\6\0\1\147\75\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u02a7\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\16\15\1\u02a8\27\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\23\15\1\u02a9\22\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"+
+ "\1\u02aa\43\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\44\15\1\u02ab\1\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\44\15\1\u02ac\1\15\23\0\1\15"+
+ "\11\0\1\132\5\0\1\u02ad\1\143\2\0\2\u02ad\1\147"+
+ "\6\0\1\147\75\0\2\15\7\0\7\15\4\0\21\15"+
+ "\1\u02ae\24\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\12\15\1\u02af\33\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\40\15\1\u02b0\5\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\13\15\1\u02b1\32\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"+
+ "\1\u02b2\32\15\23\0\1\15\11\0\1\132\5\0\1\u02b3"+
+ "\1\143\2\0\2\u02b3\1\147\6\0\1\147\75\0\2\15"+
+ "\7\0\7\15\4\0\11\15\1\u02b4\34\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\16\15\1\u02b5\27\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\23\15"+
+ "\1\u02b6\22\15\23\0\1\15\6\0\2\15\7\0\7\15"+
+ "\4\0\23\15\1\u02b7\22\15\23\0\1\15\6\0\2\15"+
+ "\7\0\7\15\4\0\22\15\1\u02b8\23\15\23\0\1\15"+
+ "\6\0\2\15\7\0\7\15\4\0\12\15\1\u02b9\33\15"+
+ "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\21\15"+
+ "\1\u02ba\24\15\23\0\1\15";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[698];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[45612];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\6\0\1\11\1\1\1\11\11\1\1\11\3\1\2\11"+
+ "\26\1\10\11\1\1\2\11\5\1\1\11\2\1\2\11"+
+ "\3\1\1\11\2\1\1\11\1\1\1\11\1\1\1\11"+
+ "\3\1\1\11\1\1\1\0\3\11\2\0\1\1\1\0"+
+ "\1\1\2\11\1\1\1\11\3\1\1\0\2\1\1\0"+
+ "\2\11\75\1\20\11\1\1\1\11\1\1\6\0\1\11"+
+ "\1\1\1\11\2\0\1\11\3\0\1\11\1\0\1\11"+
+ "\1\1\2\11\4\1\1\0\112\1\1\11\11\0\1\11"+
+ "\5\0\1\11\111\1\1\0\1\11\1\1\1\0\1\11"+
+ "\12\0\100\1\10\0\67\1\2\0\153\1\1\11\107\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[698];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\7"
- + "\1\16\1\17\1\20\1\21\1\12\1\22\1\23\1\24"
- + "\1\25\2\15\2\25\1\15\1\26\1\7\1\27\1\30"
- + "\1\31\1\32\1\33\1\34\1\15\1\35\1\36\1\37"
- + "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"
- + "\1\15\1\50\1\15\1\51\1\52\1\15\1\53\2\15"
- + "\1\54\12\15\1\55\1\56\1\57\1\60\1\61\1\62"
- + "\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72"
- + "\1\73\1\74\1\75\1\76\1\77\1\7\1\12\1\7"
- + "\1\100\1\101\1\102\13\100\1\103\10\100\1\104\74\100"
- + "\1\105\1\101\1\102\24\105\1\104\1\103\73\105\1\7"
- + "\1\106\1\107\1\110\2\7\1\111\4\7\1\112\1\113"
- + "\4\7\2\111\2\7\1\111\4\7\46\111\22\7\1\110"
- + "\1\7\1\114\1\115\1\116\7\114\1\117\111\114\1\120"
- + "\1\101\1\102\24\120\1\121\1\120\1\122\72\120\126\0"
- + "\1\11\124\0\1\12\10\0\1\12\105\0\1\12\5\0"
- + "\1\123\1\124\7\0\1\125\123\0\1\126\114\0\2\15"
- + "\7\0\7\15\4\0\46\15\23\0\1\15\10\0\1\127"
- + "\124\0\1\130\1\131\4\0\2\132\2\0\2\132\105\0"
- + "\1\133\3\0\1\134\1\135\1\0\1\136\3\0\2\133"
- + "\2\0\1\133\4\0\46\133\37\0\1\137\1\0\1\140"
- + "\123\0\1\141\117\0\1\132\5\0\1\142\1\143\1\144"
- + "\1\0\1\145\1\146\1\147\6\0\1\147\22\0\1\144"
- + "\55\0\1\132\5\0\2\25\2\0\2\25\1\147\6\0"
- + "\1\147\104\0\1\150\10\0\1\151\103\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\152\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\153\1\154\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\155\12\15\1\156\5\15\1\157\1\160\20\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\6\15\1\161"
- + "\1\15\1\162\35\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\3\15\1\163\3\15\1\164\6\15\1\165"
- + "\1\15\1\166\25\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\167\6\15\1\170\1\15\1\171"
- + "\3\15\1\172\26\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\173\22\15\1\174\21\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\175"
- + "\1\176\7\15\1\177\32\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\15\1\200\1\201\1\202\3\15"
- + "\1\203\10\15\1\204\1\15\1\205\23\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\206\1\15"
- + "\1\207\4\15\1\210\5\15\1\211\22\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\212\1\15"
- + "\1\213\35\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\214\4\15\1\215\3\15\1\216\6\15"
- + "\1\217\23\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\220\2\15\1\221\1\222\2\15\1\223"
- + "\1\224\32\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\225\4\15\1\226\36\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\12\15\1\227\5\15"
- + "\1\230\25\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\15\1\231\1\15\1\232\7\15\1\233\2\15"
- + "\1\234\27\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\235\45\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\3\15\1\236\3\15\1\237\36\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\240"
- + "\4\15\1\241\36\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\11\15\1\242\34\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\3\15\1\243\7\15\1\244"
- + "\32\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\10\15\1\245\35\15\23\0\1\15\15\0\1\246\123\0"
- + "\1\247\75\0\1\250\25\0\1\251\76\0\1\252\24\0"
- + "\1\253\77\0\1\254\23\0\1\255\123\0\1\256\106\0"
- + "\1\100\2\0\13\100\1\0\10\100\1\0\74\100\2\0"
- + "\1\102\121\0\1\257\2\0\13\257\1\260\1\261\3\257"
- + "\1\261\1\262\2\257\1\263\1\264\1\257\1\265\1\266"
- + "\6\257\1\267\1\270\3\257\1\271\51\257\3\0\1\105"
- + "\2\0\24\105\2\0\73\105\2\0\1\107\124\0\1\110"
- + "\10\0\1\110\105\0\1\110\7\0\2\272\1\273\3\0"
- + "\1\274\1\275\1\0\7\272\4\0\46\272\23\0\1\272"
- + "\3\0\1\110\2\0\1\272\5\0\1\113\4\0\2\272"
- + "\2\0\1\272\4\0\46\272\22\0\1\110\3\0\1\116"
- + "\125\0\1\276\1\0\1\277\12\0\2\277\2\0\1\277"
- + "\4\0\46\277\24\0\1\120\2\0\24\120\1\0\1\120"
- + "\1\0\72\120\1\257\2\0\24\257\1\263\1\257\1\300"
- + "\1\265\1\266\6\257\1\267\1\270\3\257\1\271\7\257"
- + "\1\301\41\257\3\0\1\123\1\302\1\303\121\123\5\304"
- + "\1\305\116\304\11\0\1\306\120\0\1\307\12\0\2\307"
- + "\2\0\1\307\4\0\46\307\43\0\2\132\2\0\2\132"
- + "\1\147\6\0\1\147\75\0\1\310\1\133\1\311\2\0"
- + "\1\312\1\313\2\0\2\133\2\310\2\133\1\310\4\0"
- + "\46\310\23\0\1\133\15\0\1\314\121\0\1\315\1\0"
- + "\1\316\123\0\1\317\117\0\1\132\5\0\1\142\1\143"
- + "\2\0\1\145\1\146\1\147\6\0\1\147\100\0\1\132"
- + "\5\0\2\143\2\0\2\143\1\147\6\0\1\147\106\0"
- + "\1\320\1\321\1\0\4\321\4\0\1\321\1\0\2\321"
- + "\1\0\1\321\6\0\2\321\12\0\1\321\1\0\1\321"
- + "\5\0\2\321\41\0\1\132\5\0\1\146\1\143\2\0"
- + "\2\146\1\147\6\0\1\147\100\0\1\132\5\0\1\322"
- + "\1\143\2\0\2\322\1\147\6\0\1\147\106\0\2\323"
- + "\2\0\2\323\1\0\1\324\66\0\1\324\14\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\325\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\11\15\1\326\11\15"
- + "\1\327\22\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\10\15\1\330\35\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\5\15\1\331\40\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\332\37\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\333\42\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\334\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\14\15\1\335\31\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\336\2\15"
- + "\1\337\4\15\1\340\27\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\10\15\1\341\35\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\342\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"
- + "\1\343\44\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\344\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\3\15\1\345\3\15\1\346\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\347"
- + "\20\15\1\350\24\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\12\15\1\351\33\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\14\15\1\352\31\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\353"
- + "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\17\15\1\354\5\15\1\355\20\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\23\15\1\356\22\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\16\15\1\357"
- + "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\3\15\1\360\7\15\1\361\6\15\1\362\23\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\16\15\1\363"
- + "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\1\15\1\364\44\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\26\15\1\365\17\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\1\15\1\366\10\15\1\367"
- + "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\21\15\1\370\24\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\6\15\1\371\2\15\1\372\34\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\32\15\1\373"
- + "\13\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\21\15\1\374\24\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\375\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\14\15\1\376\1\15\1\377"
- + "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\15\15\1\u0100\1\u0101\27\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\21\15\1\u0102\24\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\10\15\1\u0103\35\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"
- + "\1\u0104\27\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\5\15\1\u0105\40\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\15\1\u0106\44\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\10\15\1\u0107\35\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\10\15"
- + "\1\u0108\35\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\10\15\1\u0109\35\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\3\15\1\u010a\42\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\11\15\1\u010b\34\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\12\15"
- + "\1\u010c\33\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u010d\4\15\1\u010e\2\15\1\u010f\33\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\5\15"
- + "\1\u0110\40\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\u0111\45\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\3\15\1\u0112\42\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\5\15\1\u0113\1\u0114\1\u0115"
- + "\6\15\1\u0116\27\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\u0117\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u0118\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u0119"
- + "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\11\15\1\u011a\34\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\u011b\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\44\15\1\u011c\1\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u011d"
- + "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\15\15\1\u011e\30\15\23\0\1\15\15\0\1\u011f\125\0"
- + "\1\262\3\0\2\262\116\0\1\u0120\3\0\2\u0120\105\0"
- + "\1\u0121\12\0\2\u0121\2\0\1\u0121\4\0\46\u0121\40\0"
- + "\1\274\1\275\122\0\1\275\1\0\1\u0122\113\0\1\u0123"
- + "\12\0\2\u0123\2\0\1\u0123\4\0\46\u0123\32\0\1\u0124"
- + "\1\277\1\u0125\2\0\1\114\1\u0126\2\0\2\277\2\u0124"
- + "\2\277\1\u0124\4\0\46\u0124\23\0\1\277\17\0\2\u0127"
- + "\1\0\4\u0127\4\0\1\u0127\1\0\2\u0127\1\0\1\u0127"
- + "\6\0\2\u0127\12\0\1\u0127\1\0\1\u0127\5\0\2\u0127"
- + "\32\0\1\303\121\0\5\304\1\u0128\116\304\4\0\1\303"
- + "\1\305\124\0\2\307\3\0\1\u0129\3\0\7\307\4\0"
- + "\46\307\23\0\1\307\6\0\2\310\1\u012a\2\0\1\312"
- + "\1\u012b\1\u012c\1\0\7\310\4\0\46\310\23\0\1\310"
- + "\6\0\1\u012d\12\0\2\u012d\2\0\1\u012d\4\0\46\u012d"
- + "\32\0\1\u012e\5\0\1\313\4\0\2\u012e\2\0\1\u012e"
- + "\4\0\46\u012e\41\0\1\u012f\125\0\2\u0130\1\0\4\u0130"
- + "\4\0\1\u0130\1\0\2\u0130\1\0\1\u0130\6\0\2\u0130"
- + "\12\0\1\u0130\1\0\1\u0130\5\0\2\u0130\41\0\1\132"
- + "\5\0\1\u0131\1\143\2\0\2\u0131\1\147\6\0\1\147"
- + "\106\0\2\323\2\0\2\323\105\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\u0132\42\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\13\15\1\u0133\32\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\7\15\1\u0134\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u0135\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\20\15\1\u0136\25\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u0137\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\16\15\1\u0138\27\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"
- + "\1\u0139\43\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u013a\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\5\15\1\u013b\40\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\16\15\1\u013c\27\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"
- + "\1\u013d\2\15\1\u013e\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\6\15\1\u013f\37\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\1\15\1\u0140\7\15"
- + "\1\u0141\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\21\15\1\u0142\24\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\6\15\1\u0143\37\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0144\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u0145\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\15\1\u0146\44\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\16\15\1\u0147\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\11\15\1\u0148\34\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"
- + "\1\u0149\43\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\16\15\1\u014a\27\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\5\15\1\u014b\40\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u014c\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"
- + "\1\u014d\27\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\26\15\1\u014e\17\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\26\15\1\u014f\17\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\7\15\1\u0150\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"
- + "\1\u0151\37\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u0152\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\11\15\1\u0153\34\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0154\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"
- + "\1\u0155\44\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\7\15\1\u0156\6\15\1\u0157\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0158\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\7\15"
- + "\1\u0159\36\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\u015a\42\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u015b\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\16\15\1\u015c\27\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\u015d\42\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\6\15\1\u015e\37\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\7\15\1\u015f\36\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0160\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\5\15"
- + "\1\u0161\40\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\26\15\1\u0162\17\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\14\15\1\u0163\31\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\20\15\1\u0164\25\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"
- + "\1\u0165\27\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\24\15\1\u0166\21\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\11\15\1\u0167\34\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\10\15\1\u0168\13\15"
- + "\1\u0169\21\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\4\15\1\u016a\41\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\16\15\1\u016b\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\22\15\1\u016c\23\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\20\15"
- + "\1\u016d\25\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\13\15\1\u016e\32\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\15\1\u016f\44\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u0170\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u0171\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\27\15\1\u0172\3\15\1\u0173\6\15\1\u0174\3\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\7\15"
- + "\1\u0175\36\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\12\15\1\u0176\33\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\u0177\45\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u0178\33\15\23\0"
- + "\1\15\6\0\2\u0121\4\0\1\274\1\275\1\0\7\u0121"
- + "\4\0\46\u0121\23\0\1\u0121\1\u0122\2\0\13\u0122\1\u0179"
- + "\105\u0122\6\0\2\u0123\1\u017a\2\0\1\u017b\3\0\7\u0123"
- + "\4\0\46\u0123\23\0\1\u0123\6\0\2\u0124\1\u017c\2\0"
- + "\1\114\1\u017d\1\u017e\1\0\7\u0124\4\0\46\u0124\23\0"
- + "\1\u0124\6\0\1\u017f\12\0\2\u017f\2\0\1\u017f\4\0"
- + "\46\u017f\32\0\1\u0180\5\0\1\u0126\4\0\2\u0180\2\0"
- + "\1\u0180\4\0\46\u0180\43\0\2\u0181\1\0\4\u0181\4\0"
- + "\1\u0181\1\0\2\u0181\1\0\1\u0181\6\0\2\u0181\12\0"
- + "\1\u0181\1\0\1\u0181\5\0\2\u0181\30\0\4\304\1\303"
- + "\1\u0128\116\304\6\0\1\u0182\12\0\2\u0182\2\0\1\u0182"
- + "\4\0\46\u0182\32\0\1\u012e\5\0\1\u012b\1\u012c\3\0"
- + "\2\u012e\2\0\1\u012e\4\0\46\u012e\40\0\1\u012c\1\0"
- + "\1\u0183\113\0\1\u0184\1\u012d\3\0\1\312\1\313\2\0"
- + "\2\u012d\2\u0184\2\u012d\1\u0184\4\0\46\u0184\23\0\1\u012d"
- + "\6\0\2\u012e\1\u0185\3\0\1\u0186\1\u012c\1\0\7\u012e"
- + "\4\0\46\u012e\23\0\1\u012e\17\0\2\u0187\1\0\4\u0187"
- + "\4\0\1\u0187\1\0\2\u0187\1\0\1\u0187\6\0\2\u0187"
- + "\12\0\1\u0187\1\0\1\u0187\5\0\2\u0187\41\0\1\132"
- + "\5\0\1\u0188\1\143\2\0\2\u0188\1\147\6\0\1\147"
- + "\75\0\2\15\7\0\7\15\4\0\4\15\1\u0189\41\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"
- + "\1\u018a\44\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\24\15\1\u018b\21\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\7\15\1\u018c\36\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\10\15\1\u018d\35\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\20\15"
- + "\1\u018e\25\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\u018f\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\12\15\1\u0190\33\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\u0191\37\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u0192\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\12\15\1\u0193\33\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\30\15\1\u0194\10\15\1\u0195\4\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u0196\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\15\1\u0197\44\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\5\15\1\u0198\40\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\1\15\1\u0199\44\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\12\15"
- + "\1\u019a\33\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\32\15\1\u019b\13\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\6\15\1\u019c\37\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u019d\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\33\15"
- + "\1\u019e\12\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u019f\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\16\15\1\u01a0\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\17\15\1\u01a1\26\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\7\15"
- + "\1\u01a2\36\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\u01a3\42\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\15\1\u01a4\44\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u01a5\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"
- + "\1\u01a6\44\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u01a7\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\15\15\1\u01a8\30\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u01a9\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"
- + "\1\u01aa\32\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\u01ab\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\12\15\1\u01ac\33\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\23\15\1\u01ad\22\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\2\15"
- + "\1\u01ae\43\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\23\15\1\u01af\22\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\16\15\1\u01b0\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\11\15\1\u01b1\34\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u01b2\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\37\15\1\u01b3\2\15\1\u01b4\3\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u01b5\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\32\15"
- + "\1\u01b6\13\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u01b7\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\11\15\1\u01b8\34\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u01b9\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\u01ba\42\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\12\15\1\u01bb\33\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\1\15\1\u01bc\44\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\1\u01bd\45\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\u01be"
- + "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\10\15\1\u01bf\35\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\u01c0\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u01c1\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\u01c2"
- + "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\30\15\1\u01c3\15\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u01c4\35\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u01c5\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\10\15\1\u01c6"
- + "\35\15\23\0\1\15\1\u0122\2\0\11\u0122\1\u0179\1\u0122"
- + "\1\u0179\105\u0122\6\0\1\u01c7\12\0\2\u01c7\2\0\1\u01c7"
- + "\4\0\46\u01c7\32\0\1\u01c8\12\0\2\u01c8\2\0\1\u01c8"
- + "\4\0\46\u01c8\32\0\1\u0180\5\0\1\u017d\1\u017e\3\0"
- + "\2\u0180\2\0\1\u0180\4\0\46\u0180\40\0\1\u017e\1\0"
- + "\1\u01c9\113\0\1\u01ca\1\u017f\3\0\1\114\1\u0126\2\0"
- + "\2\u017f\2\u01ca\2\u017f\1\u01ca\4\0\46\u01ca\23\0\1\u017f"
- + "\6\0\2\u0180\1\u01cb\3\0\1\u01cc\1\u017e\1\0\7\u0180"
- + "\4\0\46\u0180\23\0\1\u0180\6\0\1\u0184\1\u0182\3\0"
- + "\1\312\1\u012b\1\u012c\1\0\2\u0182\2\u0184\2\u0182\1\u0184"
- + "\4\0\46\u0184\23\0\1\u0182\1\u0183\2\0\13\u0183\1\u01cd"
- + "\105\u0183\6\0\2\u0184\1\u0185\2\0\1\312\1\u012b\1\u012c"
- + "\1\0\7\u0184\4\0\46\u0184\23\0\1\u0184\6\0\1\u01ce"
- + "\12\0\2\u01ce\2\0\1\u01ce\4\0\46\u01ce\40\0\1\u0186"
- + "\1\u012c\125\0\2\u01cf\1\0\4\u01cf\4\0\1\u01cf\1\0"
- + "\2\u01cf\1\0\1\u01cf\6\0\2\u01cf\12\0\1\u01cf\1\0"
- + "\1\u01cf\5\0\2\u01cf\41\0\1\132\5\0\1\u01d0\1\143"
- + "\2\0\2\u01d0\1\147\6\0\1\147\75\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u01d1\35\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u01d2\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u01d3"
- + "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\14\15\1\u01d4\31\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u01d5\35\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\41\15\1\u01d6\4\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\5\15\1\u01d7"
- + "\40\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\16\15\1\u01d8\27\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\u01d9\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\1\15\1\u01da\44\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\20\15\1\u01db"
- + "\25\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\12\15\1\u01dc\33\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u01dd\35\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\1\15\1\u01de\44\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\21\15\1\u01df"
- + "\24\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\3\15\1\u01e0\42\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\11\15\1\u01e1\34\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u01e2\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\15\15\1\u01e3"
- + "\30\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\10\15\1\u01e4\35\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u01e5\4\15\1\u01e6\30\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u01e7"
- + "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\11\15\1\u01e8\34\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\23\15\1\u01e9\22\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u01ea\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\14\15\1\u01eb"
- + "\31\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\16\15\1\u01ec\27\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\u01ed\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\5\15\1\u01ee\40\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u01ef"
- + "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\23\15\1\u01f0\22\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\16\15\1\u01f1\27\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u01f2\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\20\15\1\u01f3"
- + "\25\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\7\15\1\u01f4\36\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\3\15\1\u01f5\42\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\1\15\1\u01f6\44\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\5\15\1\u01f7"
- + "\40\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\30\15\1\u01f8\13\15\1\u01f9\1\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\11\15\1\u01fa\34\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\26\15\1\u01fb"
- + "\17\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\5\15\1\u01fc\40\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\6\15\1\u01fd\37\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\26\15\1\u01fe\17\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\16\15\1\u01ff"
- + "\27\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\23\15\1\u0200\22\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\1\15\1\u0201\44\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\10\15\1\u0202\35\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\26\15\1\u0203"
- + "\17\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\1\15\1\u0204\44\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\12\15\1\u0205\33\15\23\0\1\15\6\0"
- + "\2\u01c7\3\0\1\u017b\3\0\7\u01c7\4\0\46\u01c7\23\0"
- + "\1\u01c7\6\0\1\u01ca\1\u01c8\3\0\1\114\1\u017d\1\u017e"
- + "\1\0\2\u01c8\2\u01ca\2\u01c8\1\u01ca\4\0\46\u01ca\23\0"
- + "\1\u01c8\1\u01c9\2\0\13\u01c9\1\u0206\105\u01c9\6\0\2\u01ca"
- + "\1\u01cb\2\0\1\114\1\u017d\1\u017e\1\0\7\u01ca\4\0"
- + "\46\u01ca\23\0\1\u01ca\6\0\1\u0207\12\0\2\u0207\2\0"
- + "\1\u0207\4\0\46\u0207\40\0\1\u01cc\1\u017e\106\0\1\u0183"
- + "\2\0\10\u0183\1\u0208\1\u01cd\1\u0183\1\u01cd\105\u0183\6\0"
- + "\2\u01ce\4\0\1\u0186\1\u012c\1\0\7\u01ce\4\0\46\u01ce"
- + "\23\0\1\u01ce\17\0\2\u0209\1\0\4\u0209\4\0\1\u0209"
- + "\1\0\2\u0209\1\0\1\u0209\6\0\2\u0209\12\0\1\u0209"
- + "\1\0\1\u0209\5\0\2\u0209\41\0\1\132\5\0\1\u020a"
- + "\1\143\2\0\2\u020a\1\147\6\0\1\147\75\0\2\15"
- + "\7\0\7\15\4\0\37\15\1\u020b\6\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\u020c\37\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"
- + "\1\u020d\32\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\15\1\u020e\44\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\16\15\1\u020f\27\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0210\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u0211\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u0212\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\3\15\1\u0213\42\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0214\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\1\15"
- + "\1\u0215\44\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\43\15\1\u0216\2\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\34\15\1\u0217\11\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\5\15\1\u0218\40\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\u0219\42\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\u021a\42\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u021b\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u021c\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\10\15"
- + "\1\u021d\35\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\37\15\1\u021e\6\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\11\15\1\u021f\34\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u0220\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\5\15"
- + "\1\u0221\40\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\3\15\1\u0222\42\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\22\15\1\u0223\23\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\7\15\1\u0224\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\24\15"
- + "\1\u0225\21\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\1\15\1\u0226\44\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\3\15\1\u0227\42\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\11\15\1\u0228\34\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\6\15"
- + "\1\u0229\37\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\13\15\1\u022a\32\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u022b\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\2\15\1\u022c\43\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u022d\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\u022e\34\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u022f\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\u0230\37\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u0231\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\11\15\1\u0232\34\15\23\0\1\15\1\u01c9\2\0"
- + "\10\u01c9\1\u0233\1\u0206\1\u01c9\1\u0206\105\u01c9\6\0\2\u0207"
- + "\4\0\1\u01cc\1\u017e\1\0\7\u0207\4\0\46\u0207\23\0"
- + "\1\u0207\17\0\2\u0234\1\0\4\u0234\4\0\1\u0234\1\0"
- + "\2\u0234\1\0\1\u0234\6\0\2\u0234\12\0\1\u0234\1\0"
- + "\1\u0234\5\0\2\u0234\41\0\1\132\5\0\1\u0235\1\143"
- + "\2\0\2\u0235\1\147\6\0\1\147\75\0\2\15\7\0"
- + "\7\15\4\0\7\15\1\u0236\36\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u0237\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\3\15\1\u0238"
- + "\42\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\31\15\1\u0239\14\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\26\15\1\u023a\17\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u023b\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u023c"
- + "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\5\15\1\u023d\40\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\26\15\1\u023e\17\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\3\15\1\u023f\42\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u0240"
- + "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\2\15\1\u0241\43\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\16\15\1\u0242\27\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\5\15\1\u0243\40\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\36\15\1\u0244"
- + "\7\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\10\15\1\u0245\35\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\u0246\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\7\15\1\u0247\36\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u0248"
- + "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\10\15\1\u0249\35\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\10\15\1\u024a\35\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u024b\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u024c"
- + "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\23\15\1\u024d\22\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\u024e\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\3\15\1\u024f\3\15\4\0\46\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\23\15\1\u0250"
- + "\22\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\1\15\1\u0251\44\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\20\15\1\u0252\25\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\1\15\1\u0253\44\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\12\15\1\u0254"
- + "\33\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\31\15\1\u0255\11\15\1\u0256\2\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\22\15\1\u0257\23\15\23\0"
- + "\1\15\17\0\2\u0258\1\0\4\u0258\4\0\1\u0258\1\0"
- + "\2\u0258\1\0\1\u0258\6\0\2\u0258\12\0\1\u0258\1\0"
- + "\1\u0258\5\0\2\u0258\41\0\1\132\5\0\1\u0259\1\143"
- + "\2\0\2\u0259\1\147\6\0\1\147\75\0\2\15\7\0"
- + "\7\15\4\0\24\15\1\u025a\21\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\26\15\1\u025b\17\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\7\15\1\u025c"
- + "\36\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\2\15\1\u025d\43\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\u025e\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u025f\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\11\15\1\u0260"
- + "\34\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\26\15\1\u0261\17\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\7\15\1\u0262\36\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\2\15\1\u0263\43\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\7\15\1\u0264"
- + "\36\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\11\15\1\u0265\34\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\14\15\1\u0266\31\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\24\15\1\u0267\21\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\u0268"
- + "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\14\15\1\u0269\31\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\2\15\1\u026a\43\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\3\15\1\u026b\42\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\2\15\1\u026c"
- + "\43\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\14\15\1\u026d\31\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\12\15\1\u026e\33\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\12\15\1\u026f\33\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\7\15\1\u0270"
- + "\36\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\11\15\1\u0271\34\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\16\15\1\u0272\27\15\23\0\1\15\17\0"
- + "\2\u0273\1\0\4\u0273\4\0\1\u0273\1\0\2\u0273\1\0"
- + "\1\u0273\6\0\2\u0273\12\0\1\u0273\1\0\1\u0273\5\0"
- + "\2\u0273\41\0\1\132\5\0\1\u0274\1\143\2\0\2\u0274"
- + "\1\147\6\0\1\147\75\0\2\15\7\0\7\15\4\0"
- + "\12\15\1\u0275\33\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\13\15\1\u0276\32\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\11\15\1\u0277\34\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\20\15\1\u0278"
- + "\25\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\20\15\1\u0279\25\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\15\15\1\u027a\30\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\3\15\1\u027b\42\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\6\15\1\u027c"
- + "\37\15\23\0\1\15\6\0\2\15\7\0\7\15\4\0"
- + "\12\15\1\u027d\33\15\23\0\1\15\6\0\2\15\7\0"
- + "\7\15\4\0\37\15\1\u027e\6\15\23\0\1\15\6\0"
- + "\2\15\7\0\7\15\4\0\44\15\1\u027f\1\15\23\0"
- + "\1\15\6\0\2\15\7\0\7\15\4\0\1\u0280\45\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\11\15"
- + "\1\u0281\34\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\10\15\1\u0282\35\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\10\15\1\u0283\35\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\7\15\1\u0284\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\3\15"
- + "\1\u0285\42\15\23\0\1\15\11\0\1\132\5\0\1\u0286"
- + "\1\143\2\0\2\u0286\1\147\6\0\1\147\75\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u0287\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\10\15\1\u0288\35\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\35\15"
- + "\1\u0289\10\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\14\15\1\u028a\31\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u028b\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\7\15\1\u028c\36\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"
- + "\1\u028d\32\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\16\15\1\u028e\27\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\23\15\1\u028f\22\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\26\15\1\u0290\17\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\21\15"
- + "\1\u0291\24\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\22\15\1\u0292\23\15\23\0\1\15\11\0\1\132"
- + "\5\0\1\u0293\1\143\2\0\2\u0293\1\147\6\0\1\147"
- + "\75\0\2\15\7\0\7\15\4\0\40\15\1\u0294\5\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u0295\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\13\15\1\u0296\32\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u0297\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\44\15\1\u0298\1\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\24\15"
- + "\1\u0299\21\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\23\15\1\u029a\22\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\2\15\1\u029b\43\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u029c\42\15"
- + "\23\0\1\15\11\0\1\132\5\0\1\u029d\1\143\2\0"
- + "\2\u029d\1\147\6\0\1\147\75\0\2\15\7\0\7\15"
- + "\4\0\16\15\1\u029e\27\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\6\15\1\u029f\37\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\3\15\1\u02a0\42\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\14\15"
- + "\1\u02a1\31\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\13\15\1\u02a2\32\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\12\15\1\u02a3\33\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\6\15\1\u02a4\37\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\21\15"
- + "\1\u02a5\24\15\23\0\1\15\11\0\1\132\5\0\1\u02a6"
- + "\1\143\2\0\2\u02a6\1\147\6\0\1\147\75\0\2\15"
- + "\7\0\7\15\4\0\12\15\1\u02a7\33\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\16\15\1\u02a8\27\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\23\15"
- + "\1\u02a9\22\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\2\15\1\u02aa\43\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\44\15\1\u02ab\1\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\44\15\1\u02ac\1\15"
- + "\23\0\1\15\11\0\1\132\5\0\1\u02ad\1\143\2\0"
- + "\2\u02ad\1\147\6\0\1\147\75\0\2\15\7\0\7\15"
- + "\4\0\21\15\1\u02ae\24\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\12\15\1\u02af\33\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\40\15\1\u02b0\5\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\13\15"
- + "\1\u02b1\32\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\13\15\1\u02b2\32\15\23\0\1\15\11\0\1\132"
- + "\5\0\1\u02b3\1\143\2\0\2\u02b3\1\147\6\0\1\147"
- + "\75\0\2\15\7\0\7\15\4\0\11\15\1\u02b4\34\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\16\15"
- + "\1\u02b5\27\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\23\15\1\u02b6\22\15\23\0\1\15\6\0\2\15"
- + "\7\0\7\15\4\0\23\15\1\u02b7\22\15\23\0\1\15"
- + "\6\0\2\15\7\0\7\15\4\0\22\15\1\u02b8\23\15"
- + "\23\0\1\15\6\0\2\15\7\0\7\15\4\0\12\15"
- + "\1\u02b9\33\15\23\0\1\15\6\0\2\15\7\0\7\15"
- + "\4\0\21\15\1\u02ba\24\15\23\0\1\15";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[45612];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\6\0\1\11\1\1\1\11\11\1\1\11\3\1\2\11"
- + "\26\1\10\11\1\1\2\11\5\1\1\11\2\1\2\11"
- + "\3\1\1\11\2\1\1\11\1\1\1\11\1\1\1\11"
- + "\3\1\1\11\1\1\1\0\3\11\2\0\1\1\1\0"
- + "\1\1\2\11\1\1\1\11\3\1\1\0\2\1\1\0"
- + "\2\11\75\1\12\11\2\1\7\11\6\0\1\11\2\1"
- + "\1\11\2\0\1\11\3\0\1\11\1\0\1\11\1\1"
- + "\2\11\4\1\1\0\112\1\2\11\10\0\1\11\5\0"
- + "\1\11\112\1\1\0\1\11\5\0\1\11\5\0\100\1"
- + "\10\0\67\1\2\0\153\1\1\11\107\1";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[698];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
StringBuffer string = new StringBuffer();
private static String xmlTagName = "";
@@ -1263,22 +1226,22 @@ public final class ActionScriptLexer {
private final List listeners = new ArrayList<>();
- public void addListener(LexListener listener) {
+ public void addListener(LexListener listener){
listeners.add(listener);
}
- public void removeListener(LexListener listener) {
+ public void removeListener(LexListener listener){
listeners.remove(listener);
}
- public void informListenersLex(ParsedSymbol s) {
- for (LexListener l : listeners) {
+ public void informListenersLex(ParsedSymbol s){
+ for(LexListener l:listeners){
l.onLex(s);
}
}
- public void informListenersPushBack(ParsedSymbol s) {
- for (LexListener l : listeners) {
+ public void informListenersPushBack(ParsedSymbol s){
+ for(LexListener l:listeners){
l.onPushBack(s);
}
}
@@ -1290,10 +1253,9 @@ public final class ActionScriptLexer {
}
ParsedSymbol last;
-
- public ParsedSymbol lex() throws java.io.IOException, ActionParseException {
+ public ParsedSymbol lex() throws java.io.IOException, ActionParseException{
ParsedSymbol ret = null;
- if (!pushedBack.isEmpty()) {
+ if (!pushedBack.isEmpty()){
ret = last = pushedBack.pop();
} else {
ret = last = yylex();
@@ -1302,1275 +1264,1085 @@ public final class ActionScriptLexer {
return ret;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public ActionScriptLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public ActionScriptLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 2916) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 2916) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
- }
+ if (zzReader != null)
+ zzReader.close();
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- }
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
- // totalRead = 0: End of stream
- return true;
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
}
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
+ throw new Error(message);
+ }
- zzEndRead = zzStartRead; /* invalidate buffer */
- if (zzReader != null) {
- zzReader.close();
- }
- }
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
+ zzMarkedPos -= number;
+ }
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ParsedSymbol yylex() throws java.io.IOException, ActionParseException {
+ int zzInput;
+ int zzAction;
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
+ yychar+= zzMarkedPosL-zzStartRead;
- throw new Error(message);
- }
+ zzAction = -1;
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- zzMarkedPos -= number;
- }
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.action.parser.ActionParseException
- */
- public ParsedSymbol yylex() throws java.io.IOException, ActionParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- zzAction = -1;
-
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 185:
- break;
- case 2: {
- yyline++;
- }
- case 186:
- break;
- case 3: { /*ignore*/
-
- }
- case 187:
- break;
- case 4: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext());
- }
- case 188:
- break;
- case 5: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext());
- }
- case 189:
- break;
- case 6: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext());
- }
- case 190:
- break;
- case 7: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext());
- }
- case 191:
- break;
- case 8: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext());
- }
- case 192:
- break;
- case 9: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext());
- }
- case 193:
- break;
- case 10: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext());
- }
- case 194:
- break;
- case 11: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext());
- }
- case 195:
- break;
- case 12: {
- string.setLength(0);
- yybegin(STRING);
- }
- case 196:
- break;
- case 13: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong((yytext())));
- }
- case 197:
- break;
- case 14: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext());
- }
- case 198:
- break;
- case 15: {
- string.setLength(0);
- yybegin(CHARLITERAL);
- }
- case 199:
- break;
- case 16: {
- string.setLength(0);
- yybegin(OIDENTIFIER);
- }
- case 200:
- break;
- case 17: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext());
- }
- case 201:
- break;
- case 18: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext());
- }
- case 202:
- break;
- case 19: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext());
- }
- case 203:
- break;
- case 20: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext());
- }
- case 204:
- break;
- case 21: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext());
- }
- case 205:
- break;
- case 22: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext());
- }
- case 206:
- break;
- case 23: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext());
- }
- case 207:
- break;
- case 24: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext());
- }
- case 208:
- break;
- case 25: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext());
- }
- case 209:
- break;
- case 26: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext());
- }
- case 210:
- break;
- case 27: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext());
- }
- case 211:
- break;
- case 28: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext());
- }
- case 212:
- break;
- case 29: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext());
- }
- case 213:
- break;
- case 30: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext());
- }
- case 214:
- break;
- case 31: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext());
- }
- case 215:
- break;
- case 32: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext());
- }
- case 216:
- break;
- case 33: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext());
- }
- case 217:
- break;
- case 34: {
- string.append(yytext());
- }
- case 218:
- break;
- case 35: {
- yybegin(YYINITIAL);
- yyline++;
- }
- case 219:
- break;
- case 36: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString());
- }
- case 220:
- break;
- case 37: {
- string.append(yytext());
- yyline++;
- }
- case 221:
- break;
- case 38: {
- yybegin(XML);
- string.append(yytext());
- }
- case 222:
- break;
- case 39: {
- string.append(yytext());
- yyline++;
- }
- case 223:
- break;
- case 40: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, string.toString());
- }
- case 224:
- break;
- case 41: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext());
- }
- case 225:
- break;
- case 42: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext());
- }
- case 226:
- break;
- case 43: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext());
- }
- case 227:
- break;
- case 44: {
- return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, Double.parseDouble((yytext())));
- }
- case 228:
- break;
- case 45: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext());
- }
- case 229:
- break;
- case 46: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext());
- }
- case 230:
- break;
- case 47: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext());
- }
- case 231:
- break;
- case 48: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext());
- }
- case 232:
- break;
- case 49: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext());
- }
- case 233:
- break;
- case 50: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext());
- }
- case 234:
- break;
- case 51: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext(), 8));
- }
- case 235:
- break;
- case 52: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext());
- }
- case 236:
- break;
- case 53: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext());
- }
- case 237:
- break;
- case 54: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext());
- }
- case 238:
- break;
- case 55: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FULLOR, yytext());
- }
- case 239:
- break;
- case 56: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext());
- }
- case 240:
- break;
- case 57: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext());
- }
- case 241:
- break;
- case 58: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext());
- }
- case 242:
- break;
- case 59: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext());
- }
- case 243:
- break;
- case 60: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext());
- }
- case 244:
- break;
- case 61: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext());
- }
- case 245:
- break;
- case 62: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext());
- }
- case 246:
- break;
- case 63: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext());
- }
- case 247:
- break;
- case 64: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext());
- }
- case 248:
- break;
- case 65: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext());
- }
- case 249:
- break;
- case 66: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext());
- }
- case 250:
- break;
- case 67: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext());
- }
- case 251:
- break;
- case 68: {
- throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 252:
- break;
- case 69: {
- string.append('\"');
- }
- case 253:
- break;
- case 70: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 254:
- break;
- case 71: {
- string.append('\\');
- }
- case 255:
- break;
- case 72: {
- string.append('\'');
- }
- case 256:
- break;
- case 73: {
- string.append('\b');
- }
- case 257:
- break;
- case 74: {
- string.append('\r');
- }
- case 258:
- break;
- case 75: {
- string.append('\n');
- }
- case 259:
- break;
- case 76: {
- string.append('\t');
- }
- case 260:
- break;
- case 77: {
- string.append('\f');
- }
- case 261:
- break;
- case 78: {
- string.append('\u00A7');
- }
- case 262:
- break;
- case 79: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext());
- }
- case 263:
- break;
- case 80: {
- string.setLength(0);
- yybegin(XML);
- String s = yytext();
- s = s.substring(1, s.length() - 1);
- if (s.contains(" ")) {
- s = s.substring(0, s.indexOf(' '));
- }
- xmlTagName = s;
- string.append(yytext());
- }
- case 264:
- break;
- case 81: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext());
- }
- case 265:
- break;
- case 82: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext());
- }
- case 266:
- break;
- case 83: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext());
- }
- case 267:
- break;
- case 84: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext());
- }
- case 268:
- break;
- case 85: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext().substring(2), 16));
- }
- case 269:
- break;
- case 86: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FULLAND, yytext());
- }
- case 270:
- break;
- case 87: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CHR, yytext());
- }
- case 271:
- break;
- case 88: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SET, yytext());
- }
- case 272:
- break;
- case 89: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.ORD, yytext());
- }
- case 273:
- break;
- case 90: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext());
- }
- case 274:
- break;
- case 91: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext());
- }
- case 275:
- break;
- case 92: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.INT, yytext());
- }
- case 276:
- break;
- case 93: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext());
- }
- case 277:
- break;
- case 94: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext());
- }
- case 278:
- break;
- case 95: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext());
- }
- case 279:
- break;
- case 96: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.GET, yytext());
- }
- case 280:
- break;
- case 97: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext());
- }
- case 281:
- break;
- case 98: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext());
- }
- case 282:
- break;
- case 99: {
- String t = yytext();
- return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, t.substring(2, t.length() - 1));
- }
- case 283:
- break;
- case 100: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext());
- }
- case 284:
- break;
- case 101: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EACH, yytext());
- }
- case 285:
- break;
- case 102: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext());
- }
- case 286:
- break;
- case 103: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.EVAL, yytext());
- }
- case 287:
- break;
- case 104: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext());
- }
- case 288:
- break;
- case 105: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CALL, yytext());
- }
- case 289:
- break;
- case 106: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOP, yytext());
- }
- case 290:
- break;
- case 107: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext());
- }
- case 291:
- break;
- case 108: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext());
- }
- case 292:
- break;
- case 109: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext());
- }
- case 293:
- break;
- case 110: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext());
- }
- case 294:
- break;
- case 111: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PLAY, yytext());
- }
- case 295:
- break;
- case 112: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext());
- }
- case 296:
- break;
- case 113: {
- string.append(yytext());
- String endtagname = yytext();
- endtagname = endtagname.substring(2, endtagname.length() - 1);
- if (endtagname.equals(xmlTagName)) {
- yybegin(YYINITIAL);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML, string.toString());
- }
- }
- case 297:
- break;
- case 114: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 298:
- break;
- case 115: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext());
- }
- case 299:
- break;
- case 116: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext());
- }
- case 300:
- break;
- case 117: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext());
- }
- case 301:
- break;
- case 118: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext());
- }
- case 302:
- break;
- case 119: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext());
- }
- case 303:
- break;
- case 120: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TRACE, yytext());
- }
- case 304:
- break;
- case 121: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext());
- }
- case 305:
- break;
- case 122: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext());
- }
- case 306:
- break;
- case 123: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext());
- }
- case 307:
- break;
- case 124: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINT, yytext());
- }
- case 308:
- break;
- case 125: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBCHR, yytext());
- }
- case 309:
- break;
- case 126: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBORD, yytext());
- }
- case 310:
- break;
- case 127: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext());
- }
- case 311:
- break;
- case 128: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.RANDOM, yytext());
- }
- case 312:
- break;
- case 129: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.STATIC, yytext());
- }
- case 313:
- break;
- case 130: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.SUBSTR, yytext());
- }
- case 314:
- break;
- case 131: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext());
- }
- case 315:
- break;
- case 132: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext());
- }
- case 316:
- break;
- case 133: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext());
- }
- case 317:
- break;
- case 134: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext());
- }
- case 318:
- break;
- case 135: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LENGTH, yytext());
- }
- case 319:
- break;
- case 136: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext());
- }
- case 320:
- break;
- case 137: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETURL, yytext());
- }
- case 321:
- break;
- case 138: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STRING_OP, yytext());
- }
- case 322:
- break;
- case 139: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NUMBER_OP, yytext());
- }
- case 323:
- break;
- case 140: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext());
- }
- case 324:
- break;
- case 141: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NEWLINE, yytext());
- }
- case 325:
- break;
- case 142: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext());
- }
- case 326:
- break;
- case 143: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DYNAMIC, yytext());
- }
- case 327:
- break;
- case 144: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext());
- }
- case 328:
- break;
- case 145: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext());
- }
- case 329:
- break;
- case 146: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext());
- }
- case 330:
- break;
- case 147: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext());
- }
- case 331:
- break;
- case 148: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPDRAG, yytext());
- }
- case 332:
- break;
- case 149: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.OVERRIDE, yytext());
- }
- case 333:
- break;
- case 150: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext());
- }
- case 334:
- break;
- case 151: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext());
- }
- case 335:
- break;
- case 152: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTNUM, yytext());
- }
- case 336:
- break;
- case 153: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBLENGTH, yytext());
- }
- case 337:
- break;
- case 154: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETTIMER, yytext());
- }
- case 338:
- break;
- case 155: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext());
- }
- case 339:
- break;
- case 156: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STARTDRAG, yytext());
- }
- case 340:
- break;
- case 157: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NEXTFRAME, yytext());
- }
- case 341:
- break;
- case 158: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NAMESPACE, yytext());
- }
- case 342:
- break;
- case 159: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext());
- }
- case 343:
- break;
- case 160: {
- return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext());
- }
- case 344:
- break;
- case 161: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.FSCOMMAND, yytext());
- }
- case 345:
- break;
- case 162: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIE, yytext());
- }
- case 346:
- break;
- case 163: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PREVFRAME, yytext());
- }
- case 347:
- break;
- case 164: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext());
- }
- case 348:
- break;
- case 165: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TELLTARGET, yytext());
- }
- case 349:
- break;
- case 166: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TARGETPATH, yytext());
- }
- case 350:
- break;
- case 167: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext());
- }
- case 351:
- break;
- case 168: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext());
- }
- case 352:
- break;
- case 169: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETVERSION, yytext());
- }
- case 353:
- break;
- case 170: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIE, yytext());
- }
- case 354:
- break;
- case 171: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBSUBSTRING, yytext());
- }
- case 355:
- break;
- case 172: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDSTOP, yytext());
- }
- case 356:
- break;
- case 173: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDPLAY, yytext());
- }
- case 357:
- break;
- case 174: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIENUM, yytext());
- }
- case 358:
- break;
- case 175: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPALLSOUNDS, yytext());
- }
- case 359:
- break;
- case 176: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IFFRAMELOADED, yytext());
- }
- case 360:
- break;
- case 177: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLES, yytext());
- }
- case 361:
- break;
- case 178: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAP, yytext());
- }
- case 362:
- break;
- case 179: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIENUM, yytext());
- }
- case 363:
- break;
- case 180: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.REMOVEMOVIECLIP, yytext());
- }
- case 364:
- break;
- case 181: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLESNUM, yytext());
- }
- case 365:
- break;
- case 182: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAPNUM, yytext());
- }
- case 366:
- break;
- case 183: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TOGGLEHIGHQUALITY, yytext());
- }
- case 367:
- break;
- case 184: {
- return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.DUPLICATEMOVIECLIP, yytext());
- }
- case 368:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return new ParsedSymbol(SymbolGroup.EOF, SymbolType.EOF, null);
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 184: break;
+ case 2:
+ { yyline++;
+ }
+ case 185: break;
+ case 3:
+ { /*ignore*/
+ }
+ case 186: break;
+ case 4:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext());
+ }
+ case 187: break;
+ case 5:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext());
+ }
+ case 188: break;
+ case 6:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext());
+ }
+ case 189: break;
+ case 7:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext());
+ }
+ case 190: break;
+ case 8:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext());
+ }
+ case 191: break;
+ case 9:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext());
+ }
+ case 192: break;
+ case 10:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext());
+ }
+ case 193: break;
+ case 11:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext());
+ }
+ case 194: break;
+ case 12:
+ { string.setLength(0);
+ yybegin(STRING);
+ }
+ case 195: break;
+ case 13:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong((yytext())));
+ }
+ case 196: break;
+ case 14:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext());
+ }
+ case 197: break;
+ case 15:
+ { string.setLength(0);
+ yybegin(CHARLITERAL);
+ }
+ case 198: break;
+ case 16:
+ { string.setLength(0);
+ yybegin(OIDENTIFIER);
+ }
+ case 199: break;
+ case 17:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext());
+ }
+ case 200: break;
+ case 18:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext());
+ }
+ case 201: break;
+ case 19:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext());
+ }
+ case 202: break;
+ case 20:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext());
+ }
+ case 203: break;
+ case 21:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext());
+ }
+ case 204: break;
+ case 22:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext());
+ }
+ case 205: break;
+ case 23:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext());
+ }
+ case 206: break;
+ case 24:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext());
+ }
+ case 207: break;
+ case 25:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext());
+ }
+ case 208: break;
+ case 26:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext());
+ }
+ case 209: break;
+ case 27:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext());
+ }
+ case 210: break;
+ case 28:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext());
+ }
+ case 211: break;
+ case 29:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext());
+ }
+ case 212: break;
+ case 30:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext());
+ }
+ case 213: break;
+ case 31:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext());
+ }
+ case 214: break;
+ case 32:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext());
+ }
+ case 215: break;
+ case 33:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext());
+ }
+ case 216: break;
+ case 34:
+ { string.append(yytext());
+ }
+ case 217: break;
+ case 35:
+ { yybegin(YYINITIAL); yyline++;
+ }
+ case 218: break;
+ case 36:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString());
+ }
+ case 219: break;
+ case 37:
+ { string.append(yytext()); yyline++;
+ }
+ case 220: break;
+ case 38:
+ { yybegin(XML); string.append(yytext());
+ }
+ case 221: break;
+ case 39:
+ { string.append(yytext()); yyline++;
+ }
+ case 222: break;
+ case 40:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, string.toString());
+ }
+ case 223: break;
+ case 41:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext());
+ }
+ case 224: break;
+ case 42:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext());
+ }
+ case 225: break;
+ case 43:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext());
+ }
+ case 226: break;
+ case 44:
+ { return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, Double.parseDouble((yytext())));
+ }
+ case 227: break;
+ case 45:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext());
+ }
+ case 228: break;
+ case 46:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext());
+ }
+ case 229: break;
+ case 47:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext());
+ }
+ case 230: break;
+ case 48:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext());
+ }
+ case 231: break;
+ case 49:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext());
+ }
+ case 232: break;
+ case 50:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext());
+ }
+ case 233: break;
+ case 51:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext(), 8));
+ }
+ case 234: break;
+ case 52:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext());
+ }
+ case 235: break;
+ case 53:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext());
+ }
+ case 236: break;
+ case 54:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext());
+ }
+ case 237: break;
+ case 55:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FULLOR, yytext());
+ }
+ case 238: break;
+ case 56:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext());
+ }
+ case 239: break;
+ case 57:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext());
+ }
+ case 240: break;
+ case 58:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext());
+ }
+ case 241: break;
+ case 59:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext());
+ }
+ case 242: break;
+ case 60:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext());
+ }
+ case 243: break;
+ case 61:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext());
+ }
+ case 244: break;
+ case 62:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext());
+ }
+ case 245: break;
+ case 63:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext());
+ }
+ case 246: break;
+ case 64:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext());
+ }
+ case 247: break;
+ case 65:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext());
+ }
+ case 248: break;
+ case 66:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext());
+ }
+ case 249: break;
+ case 67:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext());
+ }
+ case 250: break;
+ case 68:
+ { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 251: break;
+ case 69:
+ { string.append('\"');
+ }
+ case 252: break;
+ case 70:
+ { string.append('\\');
+ }
+ case 253: break;
+ case 71:
+ { string.append('\'');
+ }
+ case 254: break;
+ case 72:
+ { string.append('\b');
+ }
+ case 255: break;
+ case 73:
+ { string.append('\r');
+ }
+ case 256: break;
+ case 74:
+ { string.append('\n');
+ }
+ case 257: break;
+ case 75:
+ { string.append('\t');
+ }
+ case 258: break;
+ case 76:
+ { string.append('\f');
+ }
+ case 259: break;
+ case 77:
+ { string.append('\u00A7');
+ }
+ case 260: break;
+ case 78:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext());
+ }
+ case 261: break;
+ case 79:
+ { string.setLength(0);
+ yybegin(XML);
+ String s = yytext();
+ s = s.substring(1, s.length() - 1);
+ if (s.contains(" ")){
+ s = s.substring(0, s.indexOf(' '));
+ }
+ xmlTagName = s;
+ string.append(yytext());
+ }
+ case 262: break;
+ case 80:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext());
+ }
+ case 263: break;
+ case 81:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext());
+ }
+ case 264: break;
+ case 82:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext());
+ }
+ case 265: break;
+ case 83:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext());
+ }
+ case 266: break;
+ case 84:
+ { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext().substring(2), 16));
+ }
+ case 267: break;
+ case 85:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FULLAND, yytext());
+ }
+ case 268: break;
+ case 86:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CHR, yytext());
+ }
+ case 269: break;
+ case 87:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SET, yytext());
+ }
+ case 270: break;
+ case 88:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.ORD, yytext());
+ }
+ case 271: break;
+ case 89:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext());
+ }
+ case 272: break;
+ case 90:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext());
+ }
+ case 273: break;
+ case 91:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.INT, yytext());
+ }
+ case 274: break;
+ case 92:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext());
+ }
+ case 275: break;
+ case 93:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext());
+ }
+ case 276: break;
+ case 94:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext());
+ }
+ case 277: break;
+ case 95:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.GET, yytext());
+ }
+ case 278: break;
+ case 96:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext());
+ }
+ case 279: break;
+ case 97:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext());
+ }
+ case 280: break;
+ case 98:
+ { String t = yytext(); return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, t.substring(2, t.length() - 1));
+ }
+ case 281: break;
+ case 99:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext());
+ }
+ case 282: break;
+ case 100:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EACH, yytext());
+ }
+ case 283: break;
+ case 101:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext());
+ }
+ case 284: break;
+ case 102:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.EVAL, yytext());
+ }
+ case 285: break;
+ case 103:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext());
+ }
+ case 286: break;
+ case 104:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.CALL, yytext());
+ }
+ case 287: break;
+ case 105:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOP, yytext());
+ }
+ case 288: break;
+ case 106:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext());
+ }
+ case 289: break;
+ case 107:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext());
+ }
+ case 290: break;
+ case 108:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext());
+ }
+ case 291: break;
+ case 109:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext());
+ }
+ case 292: break;
+ case 110:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PLAY, yytext());
+ }
+ case 293: break;
+ case 111:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext());
+ }
+ case 294: break;
+ case 112:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 295: break;
+ case 113:
+ { string.append(yytext());
+ String endtagname = yytext();
+ endtagname = endtagname.substring(2, endtagname.length() - 1);
+ if (endtagname.equals(xmlTagName)){
+ yybegin(YYINITIAL);
+ return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML, string.toString());
+ }
+ }
+ case 296: break;
+ case 114:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext());
+ }
+ case 297: break;
+ case 115:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext());
+ }
+ case 298: break;
+ case 116:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext());
+ }
+ case 299: break;
+ case 117:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext());
+ }
+ case 300: break;
+ case 118:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext());
+ }
+ case 301: break;
+ case 119:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TRACE, yytext());
+ }
+ case 302: break;
+ case 120:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext());
+ }
+ case 303: break;
+ case 121:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext());
+ }
+ case 304: break;
+ case 122:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext());
+ }
+ case 305: break;
+ case 123:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINT, yytext());
+ }
+ case 306: break;
+ case 124:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBCHR, yytext());
+ }
+ case 307: break;
+ case 125:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBORD, yytext());
+ }
+ case 308: break;
+ case 126:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext());
+ }
+ case 309: break;
+ case 127:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.RANDOM, yytext());
+ }
+ case 310: break;
+ case 128:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.STATIC, yytext());
+ }
+ case 311: break;
+ case 129:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.SUBSTR, yytext());
+ }
+ case 312: break;
+ case 130:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext());
+ }
+ case 313: break;
+ case 131:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext());
+ }
+ case 314: break;
+ case 132:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext());
+ }
+ case 315: break;
+ case 133:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext());
+ }
+ case 316: break;
+ case 134:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LENGTH, yytext());
+ }
+ case 317: break;
+ case 135:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext());
+ }
+ case 318: break;
+ case 136:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETURL, yytext());
+ }
+ case 319: break;
+ case 137:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STRING_OP, yytext());
+ }
+ case 320: break;
+ case 138:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NUMBER_OP, yytext());
+ }
+ case 321: break;
+ case 139:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext());
+ }
+ case 322: break;
+ case 140:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NEWLINE, yytext());
+ }
+ case 323: break;
+ case 141:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext());
+ }
+ case 324: break;
+ case 142:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DYNAMIC, yytext());
+ }
+ case 325: break;
+ case 143:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext());
+ }
+ case 326: break;
+ case 144:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext());
+ }
+ case 327: break;
+ case 145:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext());
+ }
+ case 328: break;
+ case 146:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext());
+ }
+ case 329: break;
+ case 147:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPDRAG, yytext());
+ }
+ case 330: break;
+ case 148:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.OVERRIDE, yytext());
+ }
+ case 331: break;
+ case 149:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext());
+ }
+ case 332: break;
+ case 150:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext());
+ }
+ case 333: break;
+ case 151:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTNUM, yytext());
+ }
+ case 334: break;
+ case 152:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBLENGTH, yytext());
+ }
+ case 335: break;
+ case 153:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETTIMER, yytext());
+ }
+ case 336: break;
+ case 154:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext());
+ }
+ case 337: break;
+ case 155:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STARTDRAG, yytext());
+ }
+ case 338: break;
+ case 156:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.NEXTFRAME, yytext());
+ }
+ case 339: break;
+ case 157:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NAMESPACE, yytext());
+ }
+ case 340: break;
+ case 158:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext());
+ }
+ case 341: break;
+ case 159:
+ { return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext());
+ }
+ case 342: break;
+ case 160:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.FSCOMMAND, yytext());
+ }
+ case 343: break;
+ case 161:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIE, yytext());
+ }
+ case 344: break;
+ case 162:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PREVFRAME, yytext());
+ }
+ case 345: break;
+ case 163:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext());
+ }
+ case 346: break;
+ case 164:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TELLTARGET, yytext());
+ }
+ case 347: break;
+ case 165:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TARGETPATH, yytext());
+ }
+ case 348: break;
+ case 166:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext());
+ }
+ case 349: break;
+ case 167:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext());
+ }
+ case 350: break;
+ case 168:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GETVERSION, yytext());
+ }
+ case 351: break;
+ case 169:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIE, yytext());
+ }
+ case 352: break;
+ case 170:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.MBSUBSTRING, yytext());
+ }
+ case 353: break;
+ case 171:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDSTOP, yytext());
+ }
+ case 354: break;
+ case 172:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.GOTOANDPLAY, yytext());
+ }
+ case 355: break;
+ case 173:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADMOVIENUM, yytext());
+ }
+ case 356: break;
+ case 174:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.STOPALLSOUNDS, yytext());
+ }
+ case 357: break;
+ case 175:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IFFRAMELOADED, yytext());
+ }
+ case 358: break;
+ case 176:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLES, yytext());
+ }
+ case 359: break;
+ case 177:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAP, yytext());
+ }
+ case 360: break;
+ case 178:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.UNLOADMOVIENUM, yytext());
+ }
+ case 361: break;
+ case 179:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.REMOVEMOVIECLIP, yytext());
+ }
+ case 362: break;
+ case 180:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.LOADVARIABLESNUM, yytext());
+ }
+ case 363: break;
+ case 181:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.PRINTASBITMAPNUM, yytext());
+ }
+ case 364: break;
+ case 182:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.TOGGLEHIGHQUALITY, yytext());
+ }
+ case 365: break;
+ case 183:
+ { return new ParsedSymbol(SymbolGroup.GLOBALFUNC, SymbolType.DUPLICATEMOVIECLIP, yytext());
+ }
+ case 366: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ParsedSymbol(SymbolGroup.EOF, SymbolType.EOF, null);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java
index a8c913b3a..bc0f3828e 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java
@@ -18,285 +18,246 @@
*/
package com.jpexs.decompiler.flash.tags.text;
+
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/text.flex
*/
public final class TextLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
- public static final int PARAMETER = 2;
- public static final int VALUE = 4;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
+ public static final int PARAMETER = 2;
+ public static final int VALUE = 4;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0, 1, 1, 2, 2
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0, 1, 1, 2, 2
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\12\0\1\20\1\21\1\21\1\20\22\0\1\3\1\0\1\15\4\0"
- + "\1\16\10\0\12\5\7\0\6\4\24\0\1\6\1\7\1\2\1\0"
- + "\1\1\1\0\1\5\1\10\3\5\1\13\7\1\1\12\3\1\1\14"
- + "\1\1\1\11\3\1\1\17\2\1\12\0\1\21\u1fa2\0\1\21\1\21"
- + "\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\12\0\1\20\1\21\1\21\1\20\22\0\1\3\1\0\1\15\4\0"+
+ "\1\16\10\0\12\5\7\0\6\4\24\0\1\6\1\7\1\2\1\0"+
+ "\1\1\1\0\1\5\1\10\3\5\1\13\7\1\1\12\3\1\1\14"+
+ "\1\1\1\11\3\1\1\17\2\1\12\0\1\21\u1fa2\0\1\21\1\21"+
+ "\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\3"
- + "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"
- + "\1\16\1\17\1\20\1\21\1\7\1\0\1\22";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\3\0\1\1\1\2\1\1\1\3\1\4\1\5\1\3"+
+ "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15"+
+ "\1\16\1\17\1\20\1\21\1\7\1\0\1\22";
- private static int[] zzUnpackAction() {
- int[] result = new int[25];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[25];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\22\0\44\0\66\0\66\0\110\0\66\0\132"+
+ "\0\66\0\154\0\176\0\66\0\66\0\66\0\66\0\66"+
+ "\0\66\0\66\0\66\0\66\0\66\0\66\0\220\0\242"+
+ "\0\66";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[25];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\22\0\44\0\66\0\66\0\110\0\66\0\132"
- + "\0\66\0\154\0\176\0\66\0\66\0\66\0\66\0\66"
- + "\0\66\0\66\0\66\0\66\0\66\0\66\0\220\0\242"
- + "\0\66";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\6\4\1\5\1\6\10\4\3\7\1\10\1\11\1\12"+
+ "\1\7\1\10\2\7\5\10\2\7\1\10\1\12\1\7"+
+ "\2\13\1\11\1\12\14\13\1\12\1\13\22\0\2\14"+
+ "\1\15\3\14\1\16\1\17\1\20\1\21\1\22\1\23"+
+ "\1\24\1\25\1\26\1\27\3\0\1\10\3\0\1\10"+
+ "\2\0\5\10\2\0\1\10\5\0\1\12\14\0\1\12"+
+ "\1\0\2\13\2\0\14\13\1\0\1\13\4\0\2\30"+
+ "\2\0\1\30\2\0\1\30\12\0\2\31\2\0\1\31"+
+ "\2\0\1\31\6\0";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[25];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[180];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\3\0\2\11\1\1\1\11\1\1\1\11\2\1\13\11"+
+ "\1\1\1\0\1\11";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[25];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\6\4\1\5\1\6\10\4\3\7\1\10\1\11\1\12"
- + "\1\7\1\10\2\7\5\10\2\7\1\10\1\12\1\7"
- + "\2\13\1\11\1\12\14\13\1\12\1\13\22\0\2\14"
- + "\1\15\3\14\1\16\1\17\1\20\1\21\1\22\1\23"
- + "\1\24\1\25\1\26\1\27\3\0\1\10\3\0\1\10"
- + "\2\0\5\10\2\0\1\10\5\0\1\12\14\0\1\12"
- + "\1\0\2\13\2\0\14\13\1\0\1\13\4\0\2\30"
- + "\2\0\1\30\2\0\1\30\12\0\2\31\2\0\1\31"
- + "\2\0\1\31\6\0";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[180];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\3\0\2\11\1\1\1\11\1\1\1\11\2\1\13\11"
- + "\1\1\1\0\1\11";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[25];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
StringBuffer string = null;
boolean finish = false;
String parameterName = null;
@@ -317,529 +278,474 @@ public final class TextLexer {
return yyline + 1;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public TextLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public TextLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 114) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 114) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ParsedSymbol yylex() throws java.io.IOException, TextParseException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
}
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
}
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
-
- // totalRead = 0: End of stream
- return true;
- }
-
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
-
- zzEndRead = zzStartRead; /* invalidate buffer */
-
- if (zzReader != null) {
- zzReader.close();
- }
- }
-
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
-
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
-
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
-
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
-
- zzMarkedPos -= number;
- }
-
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.tags.text.TextParseException
- */
- public ParsedSymbol yylex() throws java.io.IOException, TextParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- boolean zzR = false;
- int zzCh;
- int zzCharCount;
- for (zzCurrentPosL = zzStartRead;
- zzCurrentPosL < zzMarkedPosL;
- zzCurrentPosL += zzCharCount) {
- zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
- zzCharCount = Character.charCount(zzCh);
- switch (zzCh) {
- case '\u000B':
- case '\u000C':
- case '\u0085':
- case '\u2028':
- case '\u2029':
- yyline++;
- yycolumn = 0;
- zzR = false;
- break;
- case '\r':
- yyline++;
- yycolumn = 0;
- zzR = true;
- break;
- case '\n':
- if (zzR) {
- zzR = false;
- } else {
- yyline++;
- yycolumn = 0;
- }
- break;
- default:
- zzR = false;
- yycolumn += zzCharCount;
- }
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- if (zzR) {
- // peek one character ahead if it is \n (if we have counted one line too much)
- boolean zzPeek;
- if (zzMarkedPosL < zzEndReadL) {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- } else if (zzAtEOF) {
- zzPeek = false;
- } else {
- boolean eof = zzRefill();
- zzEndReadL = zzEndRead;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- if (eof) {
- zzPeek = false;
- } else {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- }
- }
- if (zzPeek) {
- yyline--;
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
- zzAction = -1;
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- }
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append(yytext());
- }
- case 19:
- break;
- case 2: {
- yybegin(PARAMETER);
- if (string != null) {
- String ret = string.toString();
- string = null;
- return new ParsedSymbol(SymbolType.TEXT, ret);
- }
- }
- case 20:
- break;
- case 3: {
- }
- case 21:
- break;
- case 4: {
- parameterName = yytext();
- yybegin(VALUE);
- }
- case 22:
- break;
- case 5: {
- yybegin(YYINITIAL);
- }
- case 23:
- break;
- case 6: {
- yybegin(PARAMETER);
- return new ParsedSymbol(SymbolType.PARAMETER, new Object[]{parameterName, yytext()});
- }
- case 24:
- break;
- case 7: {
- throw new TextParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 25:
- break;
- case 8: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append(']');
- }
- case 26:
- break;
- case 9: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('[');
- }
- case 27:
- break;
- case 10: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\\');
- }
- case 28:
- break;
- case 11: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\b');
- }
- case 29:
- break;
- case 12: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\t');
- }
- case 30:
- break;
- case 13: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\n');
- }
- case 31:
- break;
- case 14: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\f');
- }
- case 32:
- break;
- case 15: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\r');
- }
- case 33:
- break;
- case 16: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\"');
- }
- case 34:
- break;
- case 17: {
- if (string == null) {
- string = new StringBuffer();
- }
- string.append('\'');
- }
- case 35:
- break;
- case 18: {
- char val = (char) Integer.parseInt(yytext().substring(2), 16);
- string.append(val);
- }
- case 36:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- switch (zzLexicalState) {
- case YYINITIAL: {
- if (finish) {
- return null;
- } else {
- finish = true;
- return new ParsedSymbol(SymbolType.TEXT, string == null ? null : string.toString());
- }
- }
- case 26:
- break;
- default: {
- return null;
- }
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ { if (string == null) string = new StringBuffer(); string.append(yytext());
+ }
+ case 19: break;
+ case 2:
+ { yybegin(PARAMETER);
+ if (string != null){
+ String ret = string.toString();
+ string = null;
+ return new ParsedSymbol(SymbolType.TEXT, ret);
+ }
+ }
+ case 20: break;
+ case 3:
+ {
+ }
+ case 21: break;
+ case 4:
+ { parameterName = yytext();
+ yybegin(VALUE);
+ }
+ case 22: break;
+ case 5:
+ { yybegin(YYINITIAL);
+ }
+ case 23: break;
+ case 6:
+ { yybegin(PARAMETER);
+ return new ParsedSymbol(SymbolType.PARAMETER, new Object[] {parameterName, yytext()});
+ }
+ case 24: break;
+ case 7:
+ { throw new TextParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
+ }
+ case 25: break;
+ case 8:
+ { if (string == null) string = new StringBuffer(); string.append(']');
+ }
+ case 26: break;
+ case 9:
+ { if (string == null) string = new StringBuffer(); string.append('[');
+ }
+ case 27: break;
+ case 10:
+ { if (string == null) string = new StringBuffer(); string.append('\\');
+ }
+ case 28: break;
+ case 11:
+ { if (string == null) string = new StringBuffer(); string.append('\b');
+ }
+ case 29: break;
+ case 12:
+ { if (string == null) string = new StringBuffer(); string.append('\t');
+ }
+ case 30: break;
+ case 13:
+ { if (string == null) string = new StringBuffer(); string.append('\n');
+ }
+ case 31: break;
+ case 14:
+ { if (string == null) string = new StringBuffer(); string.append('\f');
+ }
+ case 32: break;
+ case 15:
+ { if (string == null) string = new StringBuffer(); string.append('\r');
+ }
+ case 33: break;
+ case 16:
+ { if (string == null) string = new StringBuffer(); string.append('\"');
+ }
+ case 34: break;
+ case 17:
+ { if (string == null) string = new StringBuffer(); string.append('\'');
+ }
+ case 35: break;
+ case 18:
+ { char val = (char) Integer.parseInt(yytext().substring(2), 16);
+ string.append(val);
+ }
+ case 36: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ switch (zzLexicalState) {
+ case YYINITIAL: {
+ if (finish) {return null;} else {finish=true; return new ParsedSymbol(SymbolType.TEXT, string == null ? null : string.toString());}
+ }
+ case 26: break;
+ default:
+ {
+ return null;
+ }
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}
diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java
index 033425d12..c230ad53c 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java
@@ -20,271 +20,231 @@ package com.jpexs.decompiler.flash.types.annotations.parser;
import java.util.Stack;
+
/**
- * This class is a scanner generated by
- * JFlex 1.6.0 from the specification file
- * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex
+ * This class is a scanner generated by
+ * JFlex 1.6.0
+ * from the specification file D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/tag_conditions.flex
*/
public final class ConditionLexer {
- /**
- * This character denotes the end of file
- */
- public static final int YYEOF = -1;
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- /**
- * initial size of the lookahead buffer
- */
- private static final int ZZ_BUFFERSIZE = 16384;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
- /**
- * lexical states
- */
- public static final int YYINITIAL = 0;
+ /** lexical states */
+ public static final int YYINITIAL = 0;
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l at the
- * beginning of a line l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0
- };
+ /**
+ * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
+ * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+ * at the beginning of a line
+ * l is of the form l = 2*k, k a non negative integer
+ */
+ private static final int ZZ_LEXSTATE[] = {
+ 0, 0
+ };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED
- = "\12\0\1\10\1\10\1\10\1\10\23\0\1\5\4\0\1\3\1\0"
- + "\1\6\1\7\2\0\1\4\1\0\1\1\1\0\12\1\7\0\32\1"
- + "\4\0\1\1\1\0\32\1\1\0\1\2\10\0\1\10\u1fa2\0\1\10"
- + "\1\10\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\12\0\1\10\1\10\1\10\1\10\23\0\1\5\4\0\1\3\1\0"+
+ "\1\6\1\7\2\0\1\4\1\0\1\1\1\0\12\1\7\0\32\1"+
+ "\4\0\1\1\1\0\32\1\1\0\1\2\10\0\1\10\u1fa2\0\1\10"+
+ "\1\10\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\udfe6\0";
- /**
- * Translates characters to character classes
- */
- private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
+ /**
+ * Translates characters to character classes
+ */
+ private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int[] ZZ_ACTION = zzUnpackAction();
+ /**
+ * Translates DFA states to action switch labels.
+ */
+ private static final int [] ZZ_ACTION = zzUnpackAction();
- private static final String ZZ_ACTION_PACKED_0
- = "\1\0\1\1\1\2\1\3\2\4\1\5\1\6\1\7"
- + "\1\3";
+ private static final String ZZ_ACTION_PACKED_0 =
+ "\1\0\1\1\1\2\1\3\2\4\1\5\1\6\1\7"+
+ "\1\3";
- private static int[] zzUnpackAction() {
- int[] result = new int[10];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackAction() {
+ int [] result = new int[10];
+ int offset = 0;
+ offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAction(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackAction(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /**
+ * Translates a state to a row index in the transition table
+ */
+ private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
+ private static final String ZZ_ROWMAP_PACKED_0 =
+ "\0\0\0\11\0\22\0\33\0\44\0\11\0\11\0\11"+
+ "\0\11\0\11";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[10];
+ int offset = 0;
+ offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int high = packed.charAt(i++) << 16;
+ result[j++] = high | packed.charAt(i++);
}
+ return j;
+ }
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int[] ZZ_ROWMAP = zzUnpackRowMap();
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_ROWMAP_PACKED_0
- = "\0\0\0\11\0\22\0\33\0\44\0\11\0\11\0\11"
- + "\0\11\0\11";
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11"+
+ "\13\0\1\3\11\0\1\12\11\0\1\6\5\0";
- private static int[] zzUnpackRowMap() {
- int[] result = new int[10];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[45];
+ int offset = 0;
+ offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackTrans(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ value--;
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- private static int zzUnpackRowMap(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
+ /* error codes */
+ private static final int ZZ_UNKNOWN_ERROR = 0;
+ private static final int ZZ_NO_MATCH = 1;
+ private static final int ZZ_PUSHBACK_2BIG = 2;
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
+ /* error messages for the codes above */
+ private static final String ZZ_ERROR_MSG[] = {
+ "Unkown internal scanner error",
+ "Error: could not match input",
+ "Error: pushback value was too large"
+ };
+
+ /**
+ * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\1\0\1\11\3\1\5\11";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[10];
+ int offset = 0;
+ offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
+ return result;
+ }
+
+ private static int zzUnpackAttribute(String packed, int offset, int [] result) {
+ int i = 0; /* index in packed string */
+ int j = offset; /* index in unpacked array */
+ int l = packed.length();
+ while (i < l) {
+ int count = packed.charAt(i++);
+ int value = packed.charAt(i++);
+ do result[j++] = value; while (--count > 0);
}
+ return j;
+ }
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
+ /** the input device */
+ private java.io.Reader zzReader;
- private static final String ZZ_TRANS_PACKED_0
- = "\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11"
- + "\13\0\1\3\11\0\1\12\11\0\1\6\5\0";
+ /** the current state of the DFA */
+ private int zzState;
- private static int[] zzUnpackTrans() {
- int[] result = new int[45];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int zzUnpackTrans(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- int j = offset; /* index in unpacked array */
+ /** the textposition at the last accepting state */
+ private int zzMarkedPos;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /** the current text position in the buffer */
+ private int zzCurrentPos;
+ /** startRead marks the beginning of the yytext() string in the buffer */
+ private int zzStartRead;
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
+ /** endRead marks the last character in the buffer, that has been read
+ from input */
+ private int zzEndRead;
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
+ /** number of newlines encountered up to the start of the matched text */
+ private int yyline;
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
+ /** the number of characters up to the start of the matched text */
+ private int yychar;
- private static final String ZZ_ATTRIBUTE_PACKED_0
- = "\1\0\1\11\3\1\5\11";
+ /**
+ * the number of characters from the last newline up to the start of the
+ * matched text
+ */
+ private int yycolumn;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[10];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /**
+ * zzAtBOL == true <=> the scanner is currently at the beginning of a line
+ */
+ private boolean zzAtBOL = true;
- private static int zzUnpackAttribute(String packed, int offset, int[] result) {
- int i = 0; /* index in packed string */
+ /** zzAtEOF == true <=> the scanner is at the EOF */
+ private boolean zzAtEOF;
- int j = offset; /* index in unpacked array */
+ /** denotes if the user-EOF-code has already been executed */
+ private boolean zzEOFDone;
+
+ /**
+ * The number of occupied positions in zzBuffer beyond zzEndRead.
+ * When a lead/high surrogate has been read from the input stream
+ * into the final zzBuffer position, this will have a value of 1;
+ * otherwise, it will have a value of 0.
+ */
+ private int zzFinalHighSurrogate = 0;
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do {
- result[j++] = value;
- } while (--count > 0);
- }
- return j;
- }
+ /* user code: */
- /**
- * the input device
- */
- private java.io.Reader zzReader;
-
- /**
- * the current state of the DFA
- */
- private int zzState;
-
- /**
- * the current lexical state
- */
- private int zzLexicalState = YYINITIAL;
-
- /**
- * this buffer contains the current text to be matched and is the source of
- * the yytext() string
- */
- private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
-
- /**
- * the textposition at the last accepting state
- */
- private int zzMarkedPos;
-
- /**
- * the current text position in the buffer
- */
- private int zzCurrentPos;
-
- /**
- * startRead marks the beginning of the yytext() string in the buffer
- */
- private int zzStartRead;
-
- /**
- * endRead marks the last character in the buffer, that has been read from
- * input
- */
- private int zzEndRead;
-
- /**
- * number of newlines encountered up to the start of the matched text
- */
- private int yyline;
-
- /**
- * the number of characters up to the start of the matched text
- */
- private int yychar;
-
- /**
- * the number of characters from the last newline up to the start of the
- * matched text
- */
- private int yycolumn;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /**
- * zzAtEOF == true <=> the scanner is at the EOF
- */
- private boolean zzAtEOF;
-
- /**
- * denotes if the user-EOF-code has already been executed
- */
- private boolean zzEOFDone;
-
- /**
- * The number of occupied positions in zzBuffer beyond zzEndRead. When a
- * lead/high surrogate has been read from the input stream into the final
- * zzBuffer position, this will have a value of 1; otherwise, it will have a
- * value of 0.
- */
- private int zzFinalHighSurrogate = 0;
-
- /* user code: */
/**
* Create an empty lexer, yyrset will be called later to reset and assign
* the reader
@@ -307,9 +267,9 @@ public final class ConditionLexer {
pushedBack.push(symb);
}
- public ConditionToken lex() throws java.io.IOException, AnnotationParseException {
+ public ConditionToken lex() throws java.io.IOException, AnnotationParseException{
ConditionToken ret = null;
- if (!pushedBack.isEmpty()) {
+ if (!pushedBack.isEmpty()){
ret = pushedBack.pop();
} else {
ret = yylex();
@@ -317,427 +277,420 @@ public final class ConditionLexer {
return ret;
}
- /**
- * Creates a new scanner
- *
- * @param in the java.io.Reader to read input from.
- */
- public ConditionLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * Creates a new scanner
+ *
+ * @param in the java.io.Reader to read input from.
+ */
+ public ConditionLexer(java.io.Reader in) {
+ this.zzReader = in;
+ }
+
+
+ /**
+ * Unpacks the compressed character translation table.
+ *
+ * @param packed the packed character translation table
+ * @return the unpacked character translation table
+ */
+ private static char [] zzUnpackCMap(String packed) {
+ char [] map = new char[0x110000];
+ int i = 0; /* index in packed string */
+ int j = 0; /* index in unpacked array */
+ while (i < 96) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, iff there was new input.
+ *
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ private boolean zzRefill() throws java.io.IOException {
+
+ /* first: make room (if you can) */
+ if (zzStartRead > 0) {
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ System.arraycopy(zzBuffer, zzStartRead,
+ zzBuffer, 0,
+ zzEndRead-zzStartRead);
+
+ /* translate stored positions */
+ zzEndRead-= zzStartRead;
+ zzCurrentPos-= zzStartRead;
+ zzMarkedPos-= zzStartRead;
+ zzStartRead = 0;
}
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char[] zzUnpackCMap(String packed) {
- char[] map = new char[0x110000];
- int i = 0; /* index in packed string */
+ /* is the buffer big enough? */
+ if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
+ /* if not: blow it up */
+ char newBuffer[] = new char[zzBuffer.length*2];
+ System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
+ zzBuffer = newBuffer;
+ zzEndRead += zzFinalHighSurrogate;
+ zzFinalHighSurrogate = 0;
+ }
- int j = 0; /* index in unpacked array */
+ /* fill the buffer with new input */
+ int requested = zzBuffer.length - zzEndRead;
+ int totalRead = 0;
+ while (totalRead < requested) {
+ int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
+ if (numRead == -1) {
+ break;
+ }
+ totalRead += numRead;
+ }
- while (i < 96) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
+ if (totalRead > 0) {
+ zzEndRead += totalRead;
+ if (totalRead == requested) { /* possibly more input available */
+ if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
+ --zzEndRead;
+ zzFinalHighSurrogate = 1;
}
- return map;
+ }
+ return false;
}
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
+ // totalRead = 0: End of stream
+ return true;
+ }
- /* first: make room (if you can) */
- if (zzStartRead > 0) {
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
- System.arraycopy(zzBuffer, zzStartRead,
- zzBuffer, 0,
- zzEndRead - zzStartRead);
+
+ /**
+ * Closes the input stream.
+ */
+ public final void yyclose() throws java.io.IOException {
+ zzAtEOF = true; /* indicate end of file */
+ zzEndRead = zzStartRead; /* invalidate buffer */
- /* translate stored positions */
- zzEndRead -= zzStartRead;
- zzCurrentPos -= zzStartRead;
- zzMarkedPos -= zzStartRead;
- zzStartRead = 0;
+ if (zzReader != null)
+ zzReader.close();
+ }
+
+
+ /**
+ * Resets the scanner to read from a new input stream.
+ * Does not close the old reader.
+ *
+ * All internal variables are reset, the old input stream
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * Internal scan buffer is resized down to its initial length, if it has grown.
+ *
+ * @param reader the new input stream
+ */
+ public final void yyreset(java.io.Reader reader) {
+ zzReader = reader;
+ zzAtBOL = true;
+ zzAtEOF = false;
+ zzEOFDone = false;
+ zzEndRead = zzStartRead = 0;
+ zzCurrentPos = zzMarkedPos = 0;
+ zzFinalHighSurrogate = 0;
+ yyline = yychar = yycolumn = 0;
+ zzLexicalState = YYINITIAL;
+ if (zzBuffer.length > ZZ_BUFFERSIZE)
+ zzBuffer = new char[ZZ_BUFFERSIZE];
+ }
+
+
+ /**
+ * Returns the current lexical state.
+ */
+ public final int yystate() {
+ return zzLexicalState;
+ }
+
+
+ /**
+ * Enters a new lexical state
+ *
+ * @param newState the new lexical state
+ */
+ public final void yybegin(int newState) {
+ zzLexicalState = newState;
+ }
+
+
+ /**
+ * Returns the text matched by the current regular expression.
+ */
+ public final String yytext() {
+ return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ }
+
+
+ /**
+ * Returns the character at position pos from the
+ * matched text.
+ *
+ * It is equivalent to yytext().charAt(pos), but faster
+ *
+ * @param pos the position of the character to fetch.
+ * A value from 0 to yylength()-1.
+ *
+ * @return the character at position pos
+ */
+ public final char yycharat(int pos) {
+ return zzBuffer[zzStartRead+pos];
+ }
+
+
+ /**
+ * Returns the length of the matched text region.
+ */
+ public final int yylength() {
+ return zzMarkedPos-zzStartRead;
+ }
+
+
+ /**
+ * Reports an error that occured while scanning.
+ *
+ * In a wellformed scanner (no or only correct usage of
+ * yypushback(int) and a match-all fallback rule) this method
+ * will only be called with things that "Can't Possibly Happen".
+ * If this method is called, something is seriously wrong
+ * (e.g. a JFlex bug producing a faulty scanner etc.).
+ *
+ * Usual syntax/scanner level error handling should be done
+ * in error fallback rules.
+ *
+ * @param errorCode the code of the errormessage to display
+ */
+ private void zzScanError(int errorCode) {
+ String message;
+ try {
+ message = ZZ_ERROR_MSG[errorCode];
+ }
+ catch (ArrayIndexOutOfBoundsException e) {
+ message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
+ }
+
+ throw new Error(message);
+ }
+
+
+ /**
+ * Pushes the specified amount of characters back into the input stream.
+ *
+ * They will be read again by then next call of the scanning method
+ *
+ * @param number the number of characters to be read again.
+ * This number must not be greater than yylength()!
+ */
+ public void yypushback(int number) {
+ if ( number > yylength() )
+ zzScanError(ZZ_PUSHBACK_2BIG);
+
+ zzMarkedPos -= number;
+ }
+
+
+ /**
+ * Resumes scanning until the next regular expression is matched,
+ * the end of input is encountered or an I/O-Error occurs.
+ *
+ * @return the next token
+ * @exception java.io.IOException if any I/O-Error occurs
+ */
+ public ConditionToken yylex() throws java.io.IOException, AnnotationParseException {
+ int zzInput;
+ int zzAction;
+
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
+
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
+
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
+
+ yychar+= zzMarkedPosL-zzStartRead;
+
+ boolean zzR = false;
+ int zzCh;
+ int zzCharCount;
+ for (zzCurrentPosL = zzStartRead ;
+ zzCurrentPosL < zzMarkedPosL ;
+ zzCurrentPosL += zzCharCount ) {
+ zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
+ zzCharCount = Character.charCount(zzCh);
+ switch (zzCh) {
+ case '\u000B':
+ case '\u000C':
+ case '\u0085':
+ case '\u2028':
+ case '\u2029':
+ yyline++;
+ yycolumn = 0;
+ zzR = false;
+ break;
+ case '\r':
+ yyline++;
+ yycolumn = 0;
+ zzR = true;
+ break;
+ case '\n':
+ if (zzR)
+ zzR = false;
+ else {
+ yyline++;
+ yycolumn = 0;
+ }
+ break;
+ default:
+ zzR = false;
+ yycolumn += zzCharCount;
}
+ }
- /* is the buffer big enough? */
- if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
- /* if not: blow it up */
- char newBuffer[] = new char[zzBuffer.length * 2];
- System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
- zzBuffer = newBuffer;
- zzEndRead += zzFinalHighSurrogate;
- zzFinalHighSurrogate = 0;
+ if (zzR) {
+ // peek one character ahead if it is \n (if we have counted one line too much)
+ boolean zzPeek;
+ if (zzMarkedPosL < zzEndReadL)
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
+ else if (zzAtEOF)
+ zzPeek = false;
+ else {
+ boolean eof = zzRefill();
+ zzEndReadL = zzEndRead;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ if (eof)
+ zzPeek = false;
+ else
+ zzPeek = zzBufferL[zzMarkedPosL] == '\n';
}
+ if (zzPeek) yyline--;
+ }
+ zzAction = -1;
- /* fill the buffer with new input */
- int requested = zzBuffer.length - zzEndRead;
- int totalRead = 0;
- while (totalRead < requested) {
- int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead);
- if (numRead == -1) {
- break;
- }
- totalRead += numRead;
- }
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- if (totalRead > 0) {
- zzEndRead += totalRead;
- if (totalRead == requested) { /* possibly more input available */
+ // set up zzAction for empty match case:
+ int zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ }
- if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
- --zzEndRead;
- zzFinalHighSurrogate = 1;
- }
- }
- return false;
- }
-
- // totalRead = 0: End of stream
- return true;
- }
-
- /**
- * Closes the input stream.
- * @throws java.io.IOException
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
-
- zzEndRead = zzStartRead; /* invalidate buffer */
-
- if (zzReader != null) {
- zzReader.close();
- }
- }
-
- /**
- * Resets the scanner to read from a new input stream. Does not close the
- * old reader.
- *
- * All internal variables are reset, the old input stream
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * Internal scan buffer is resized down to its initial length, if it has
- * grown.
- *
- * @param reader the new input stream
- */
- public final void yyreset(java.io.Reader reader) {
- zzReader = reader;
- zzAtBOL = true;
- zzAtEOF = false;
- zzEOFDone = false;
- zzEndRead = zzStartRead = 0;
- zzCurrentPos = zzMarkedPos = 0;
- zzFinalHighSurrogate = 0;
- yyline = yychar = yycolumn = 0;
- zzLexicalState = YYINITIAL;
- if (zzBuffer.length > ZZ_BUFFERSIZE) {
- zzBuffer = new char[ZZ_BUFFERSIZE];
- }
- }
-
- /**
- * Returns the current lexical state.
- * @return
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
- /**
- * Returns the text matched by the current regular expression.
- * @return
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
-
- /**
- * Returns the character at position pos from the matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch. A value from 0 to
- * yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBuffer[zzStartRead + pos];
- }
-
- /**
- * Returns the length of the matched text region.
- * @return
- */
- public final int yylength() {
- return zzMarkedPos - zzStartRead;
- }
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of yypushback(int) and
- * a match-all fallback rule) this method will only be called with things
- * that "Can't Possibly Happen". If this method is called, something is
- * seriously wrong (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done in error
- * fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- } catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again. This number must
- * not be greater than yylength()!
- */
- public void yypushback(int number) {
- if (number > yylength()) {
- zzScanError(ZZ_PUSHBACK_2BIG);
- }
-
- zzMarkedPos -= number;
- }
-
- /**
- * Resumes scanning until the next regular expression is matched, the end of
- * input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- * @throws com.jpexs.decompiler.flash.types.annotations.parser.AnnotationParseException
- */
- public ConditionToken yylex() throws java.io.IOException, AnnotationParseException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
-
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- yychar += zzMarkedPosL - zzStartRead;
-
- boolean zzR = false;
- int zzCh;
- int zzCharCount;
- for (zzCurrentPosL = zzStartRead;
- zzCurrentPosL < zzMarkedPosL;
- zzCurrentPosL += zzCharCount) {
- zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL);
- zzCharCount = Character.charCount(zzCh);
- switch (zzCh) {
- case '\u000B':
- case '\u000C':
- case '\u0085':
- case '\u2028':
- case '\u2029':
- yyline++;
- yycolumn = 0;
- zzR = false;
- break;
- case '\r':
- yyline++;
- yycolumn = 0;
- zzR = true;
- break;
- case '\n':
- if (zzR) {
- zzR = false;
- } else {
- yyline++;
- yycolumn = 0;
- }
- break;
- default:
- zzR = false;
- yycolumn += zzCharCount;
- }
+
+ if (zzCurrentPosL < zzEndReadL) {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
+ }
+ else if (zzAtEOF) {
+ zzInput = YYEOF;
+ break zzForAction;
+ }
+ else {
+ // store back cached positions
+ zzCurrentPos = zzCurrentPosL;
+ zzMarkedPos = zzMarkedPosL;
+ boolean eof = zzRefill();
+ // get translated positions and possibly new buffer
+ zzCurrentPosL = zzCurrentPos;
+ zzMarkedPosL = zzMarkedPos;
+ zzBufferL = zzBuffer;
+ zzEndReadL = zzEndRead;
+ if (eof) {
+ zzInput = YYEOF;
+ break zzForAction;
}
-
- if (zzR) {
- // peek one character ahead if it is \n (if we have counted one line too much)
- boolean zzPeek;
- if (zzMarkedPosL < zzEndReadL) {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- } else if (zzAtEOF) {
- zzPeek = false;
- } else {
- boolean eof = zzRefill();
- zzEndReadL = zzEndRead;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- if (eof) {
- zzPeek = false;
- } else {
- zzPeek = zzBufferL[zzMarkedPosL] == '\n';
- }
- }
- if (zzPeek) {
- yyline--;
- }
+ else {
+ zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
+ zzCurrentPosL += Character.charCount(zzInput);
}
- zzAction = -1;
+ }
+ int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
+ if (zzNext == -1) break zzForAction;
+ zzState = zzNext;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ zzAttributes = zzAttrL[zzState];
+ if ( (zzAttributes & 1) == 1 ) {
+ zzAction = zzState;
+ zzMarkedPosL = zzCurrentPosL;
+ if ( (zzAttributes & 8) == 8 ) break zzForAction;
+ }
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
- // set up zzAction for empty match case:
- int zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- }
-
- zzForAction:
- {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL) {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- } else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- } else {
- zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL);
- zzCurrentPosL += Character.charCount(zzInput);
- }
- }
- int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
- if (zzNext == -1) {
- break zzForAction;
- }
- zzState = zzNext;
-
- zzAttributes = zzAttrL[zzState];
- if ((zzAttributes & 1) == 1) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ((zzAttributes & 8) == 8) {
- break zzForAction;
- }
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1: {
- }
- case 8:
- break;
- case 2: {
- return new ConditionToken(ConditionTokenType.FIELD, yytext());
- }
- case 9:
- break;
- case 3: {
- return new ConditionToken(ConditionTokenType.OR, yytext());
- }
- case 10:
- break;
- case 4: {
- return new ConditionToken(ConditionTokenType.AND, yytext());
- }
- case 11:
- break;
- case 5: {
- return new ConditionToken(ConditionTokenType.NOT, yytext());
- }
- case 12:
- break;
- case 6: {
- return new ConditionToken(ConditionTokenType.PARENT_OPEN, yytext());
- }
- case 13:
- break;
- case 7: {
- return new ConditionToken(ConditionTokenType.PARENT_CLOSE, yytext());
- }
- case 14:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- switch (zzLexicalState) {
- case YYINITIAL: {
- return null;
- }
- case 11:
- break;
- default:
- return null;
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
}
+ }
+
+ // store back cached position
+ zzMarkedPos = zzMarkedPosL;
+
+ switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
+ case 1:
+ {
+ }
+ case 8: break;
+ case 2:
+ { return new ConditionToken(ConditionTokenType.FIELD, yytext());
+ }
+ case 9: break;
+ case 3:
+ { return new ConditionToken(ConditionTokenType.OR, yytext());
+ }
+ case 10: break;
+ case 4:
+ { return new ConditionToken(ConditionTokenType.AND, yytext());
+ }
+ case 11: break;
+ case 5:
+ { return new ConditionToken(ConditionTokenType.NOT, yytext());
+ }
+ case 12: break;
+ case 6:
+ { return new ConditionToken(ConditionTokenType.PARENT_OPEN, yytext());
+ }
+ case 13: break;
+ case 7:
+ { return new ConditionToken(ConditionTokenType.PARENT_CLOSE, yytext());
+ }
+ case 14: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ switch (zzLexicalState) {
+ case YYINITIAL: {
+ return null;
+ }
+ case 11: break;
+ default:
+ return null;
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
}