/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */
/*
* Copyright 2011-present Greg Shrago
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.intellij.jflex.parser;
import com.intellij.lexer.FlexLexer;
import com.intellij.psi.tree.IElementType;
import static com.intellij.psi.TokenType.BAD_CHARACTER;
import static com.intellij.psi.TokenType.WHITE_SPACE;
import static org.intellij.jflex.parser.JFlexParserDefinition.FLEX_NEWLINE;
import static org.intellij.jflex.psi.JFlexTypes.*;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.7.0-SNAPSHOT
* from the specification file <tt>_JFlexLexer.flex</tt>
*/
public class _JFlexLexer implements FlexLexer {
/** 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;
/** lexical states */
public static final int YYINITIAL = 0;
public static final int COMMENT = 2;
public static final int MACROS = 4;
public static final int CODE = 6;
public static final int REGEXPSTART = 8;
public static final int EXPRBAR = 10;
public static final int REGEXP = 12;
public static final int STATES = 14;
public static final int ACTION_CODE = 16;
public static final int STRING_CONTENT = 18;
public static final int CHARCLASS = 20;
public static final int MACROUSE = 22;
public static final int REPEATEXP = 24;
public static final int CLASSCHARS = 26;
public static final int CHARRANGE = 28;
public static final int REGEXP_CODEPOINT = 30;
public static final int STRING_CODEPOINT = 32;
public static final int SKIP_TOEOL = 34;
public static final int SKIP_WSNL = 36;
public static final int REPORT_UNCLOSED = 38;
public static final int REGEXPSTART0 = 40;
/**
* 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, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9,
10, 10, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15, 16, 16,
17, 17, 18, 18, 19, 19, 20, 20, 21, 21
};
/**
* Translates characters to character classes
* Chosen bits are [13, 6, 2]
* Total runtime size is 23072 bytes
*/
public static int ZZ_CMAP(int ch) {
return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>8]<<6)|((ch>>2)&0x3f)]<<2)|(ch&0x3)];
}
/* The ZZ_CMAP_Z table has 4352 entries */
static final char ZZ_CMAP_Z[] = zzUnpackCMap(
"\1\0\1\1\1\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\1\1\21\1\22\1\23\1\1\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\1\1\34"+
"\1\35\1\36\2\37\1\40\7\37\1\41\1\42\1\43\1\37\1\44\1\45\2\37\31\1\1\46\121"+
"\1\1\47\4\1\1\50\1\1\1\51\1\52\1\53\1\54\1\55\1\56\53\1\1\57\41\37\1\1\1\60"+
"\1\61\1\1\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\3\37\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111\1\112"+
"\1\37\1\113\5\37\3\1\1\114\1\115\1\116\12\37\4\1\1\117\17\37\2\73\1\120\41"+
"\37\2\1\1\121\1\122\3\37\1\123\100\37\1\124\13\37\1\125\24\37\1\126\1\127"+
"\1\37\1\130\1\131\1\132\1\133\20\37\1\134\5\37\1\135\2\37\1\136\16\37\246"+
"\1\1\137\20\1\1\140\1\141\25\73\1\142\51\37\2\1\1\143\u0b05\37\1\144\1\145"+
"\u02fe\37");
/* The ZZ_CMAP_Y table has 6528 entries */
static final char ZZ_CMAP_Y[] = zzUnpackCMap(
"\2\0\1\1\1\2\3\0\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\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\0\1\34\6"+
"\0\1\35\1\36\1\37\1\40\1\3\1\41\1\37\1\3\5\16\1\42\7\16\1\42\162\16\1\43\1"+
"\44\2\16\1\43\3\3\1\16\1\45\1\3\1\46\4\3\21\0\1\47\12\0\1\16\1\50\1\44\1\51"+
"\1\3\1\37\1\42\1\50\4\16\1\52\24\16\1\52\42\16\1\53\1\0\1\44\47\16\2\54\1"+
"\55\10\16\1\42\1\41\1\3\1\55\11\16\1\3\1\56\1\57\7\0\3\60\1\61\1\62\1\61\2"+
"\3\6\16\1\42\1\3\1\42\3\3\1\0\1\63\1\56\1\3\2\60\1\64\1\3\12\16\1\65\3\60"+
"\1\66\3\60\1\67\1\44\1\70\30\16\1\71\1\60\1\72\1\66\1\73\1\74\1\75\2\60\1"+
"\76\1\77\3\3\1\100\1\101\7\16\4\60\2\0\1\102\1\55\25\16\1\103\2\60\1\104\3"+
"\3\2\60\1\76\7\16\1\105\2\0\1\43\1\37\1\3\5\16\1\103\1\106\2\60\2\107\1\110"+
"\4\3\6\16\1\111\21\3\1\112\2\16\1\113\1\54\1\114\12\3\1\115\1\60\1\116\1\0"+
"\3\60\1\117\1\60\15\16\1\103\1\120\3\60\1\121\1\111\1\66\2\16\1\103\1\122"+
"\2\60\1\55\1\16\1\123\1\16\1\124\1\55\1\16\2\77\5\16\1\50\1\16\1\46\1\44\1"+
"\43\1\120\1\60\2\125\1\126\1\3\1\127\1\3\1\52\1\103\1\122\2\60\1\130\1\3\1"+
"\56\1\3\1\131\1\55\1\42\1\132\1\77\5\16\1\50\1\16\1\50\1\133\1\43\1\134\1"+
"\64\1\127\1\125\1\110\1\135\1\3\1\55\1\46\1\3\1\122\2\60\1\76\1\136\2\3\1"+
"\131\1\55\1\16\2\52\5\16\1\50\1\16\1\50\1\55\1\43\1\120\1\60\2\61\1\110\1"+
"\45\3\3\1\103\1\122\2\60\1\137\1\3\1\140\1\3\1\131\1\55\1\16\2\77\5\16\1\50"+
"\1\16\1\50\1\55\1\43\1\120\1\60\2\125\1\110\1\3\1\122\1\3\1\52\1\103\1\122"+
"\2\60\1\41\3\3\1\141\1\55\1\42\1\44\1\50\1\43\1\133\1\50\1\132\1\45\1\42\1"+
"\44\2\16\1\43\1\122\1\64\1\122\1\142\1\110\1\45\1\127\3\3\1\122\2\60\2\3\1"+
"\137\1\3\1\124\1\55\1\16\2\50\5\16\1\50\2\16\1\123\1\43\1\71\1\60\2\142\1"+
"\110\1\3\1\62\1\143\1\3\1\103\1\122\2\60\4\3\1\144\1\55\1\16\2\50\5\16\1\50"+
"\2\16\1\55\1\43\1\120\1\60\2\142\1\110\1\3\1\62\1\3\1\37\1\103\1\122\2\60"+
"\1\133\3\3\1\144\1\55\1\16\2\50\11\16\1\42\1\71\1\60\2\142\1\126\1\3\1\127"+
"\1\3\1\115\1\103\1\122\2\60\2\3\1\44\1\16\1\122\1\55\3\16\1\42\1\44\5\16\1"+
"\52\2\16\1\41\1\16\1\42\1\145\1\127\1\60\1\146\2\60\1\3\1\147\2\54\1\122\3"+
"\3\1\55\13\16\1\101\1\60\1\64\1\56\1\16\1\105\1\0\1\150\2\60\1\67\11\3\1\133"+
"\1\77\1\46\1\41\1\3\1\16\1\55\1\16\1\55\1\151\1\44\1\55\1\101\1\60\1\61\1"+
"\104\1\16\1\46\1\0\1\152\2\60\1\67\1\16\10\3\1\45\5\3\1\153\1\3\2\60\1\67"+
"\2\3\1\154\1\40\1\155\2\16\1\55\10\16\1\45\1\131\3\60\1\116\1\156\1\16\1\107"+
"\2\60\1\131\10\60\1\157\1\3\1\145\16\3\12\16\1\65\2\60\1\160\1\161\1\162\2"+
"\60\1\67\1\3\1\16\1\103\1\76\1\103\1\163\1\164\1\165\1\166\1\107\1\70\2\16"+
"\1\103\1\160\1\0\1\167\2\60\1\116\1\67\11\16\1\52\1\3\1\41\12\16\1\42\23\16"+
"\1\50\1\43\1\16\1\42\1\50\1\43\12\16\1\50\1\43\10\16\1\50\1\43\1\16\1\42\1"+
"\50\1\43\3\16\1\42\16\16\1\50\1\43\20\16\1\42\1\170\10\3\4\16\4\3\25\16\1"+
"\171\1\54\1\172\1\55\132\16\1\77\4\16\1\55\5\16\1\42\1\3\22\16\1\42\1\44\1"+
"\113\1\54\1\114\1\3\3\16\1\50\1\103\1\63\2\3\4\16\1\103\1\63\2\3\4\16\1\103"+
"\3\3\3\16\1\50\1\173\3\3\15\16\1\174\4\60\1\165\2\0\1\132\1\56\1\175\2\60"+
"\1\67\7\3\1\100\1\153\2\60\1\67\1\3\26\16\2\3\12\16\1\176\1\3\21\16\1\43\2"+
"\3\7\16\1\177\3\60\1\3\2\60\1\165\2\3\1\122\2\60\7\16\1\43\1\16\1\45\2\3\13"+
"\16\1\3\4\60\1\70\1\16\1\67\1\3\2\60\1\67\11\3\5\16\1\65\1\60\1\3\15\16\1"+
"\107\1\60\1\64\1\66\4\60\1\165\1\0\1\200\2\60\1\67\1\3\2\60\1\67\2\3\1\132"+
"\26\3\1\60\1\70\13\16\1\66\3\60\1\201\1\16\1\3\2\60\1\67\3\3\1\100\2\0\3\3"+
"\1\162\7\16\1\107\1\60\1\116\1\76\2\60\1\76\12\16\1\202\2\60\1\116\3\3\11"+
"\16\4\60\1\116\2\3\2\60\1\67\1\55\2\60\1\76\10\16\1\43\24\3\1\102\5\0\1\201"+
"\1\203\1\103\1\204\2\3\60\16\11\0\1\205\3\54\1\114\1\3\1\0\5\16\1\43\1\16"+
"\1\43\11\16\1\43\1\16\1\43\2\16\2\151\7\16\1\43\15\16\1\50\1\16\1\46\1\44"+
"\1\50\1\16\1\45\1\16\1\44\1\16\1\3\3\16\1\45\1\44\1\50\1\16\1\45\2\3\1\100"+
"\1\0\6\3\1\206\1\102\3\3\1\56\1\207\4\3\1\207\2\3\1\0\1\63\1\155\1\0\1\41"+
"\2\3\1\132\4\3\3\16\1\45\6\210\1\211\5\3\3\0\1\63\1\40\1\57\2\0\1\63\3\3\1"+
"\37\1\132\1\44\2\16\1\41\1\55\1\43\1\3\1\46\1\50\1\52\2\16\1\43\1\16\1\3\1"+
"\55\1\43\1\37\4\3\12\16\1\45\212\3\1\147\14\54\1\172\5\3\13\16\1\42\13\16"+
"\1\42\41\16\1\45\1\132\1\105\1\166\3\3\11\16\1\52\1\3\1\41\16\16\1\3\1\132"+
"\3\3\1\100\5\16\1\42\2\3\1\16\1\42\1\16\1\42\1\16\1\42\1\16\1\42\1\16\1\42"+
"\1\16\1\42\1\16\1\42\1\16\1\42\10\60\13\3\1\132\65\3\1\55\6\3\1\55\1\16\1"+
"\212\1\0\1\55\1\43\1\16\1\45\1\55\24\16\1\42\1\213\2\55\25\16\1\42\1\16\1"+
"\3\1\55\11\16\1\43\1\55\26\16\1\42\4\3\6\16\1\42\15\3\61\16\1\43\22\3\63\16"+
"\1\113\1\54\1\172\12\3\43\16\1\45\20\3\13\16\1\43\3\16\1\45\4\16\2\60\1\76"+
"\5\3\13\16\1\105\1\3\2\60\1\214\6\16\1\54\1\215\24\16\1\153\10\3\1\132\2\16"+
"\1\44\31\16\1\77\1\216\1\16\3\54\2\16\1\216\1\172\2\54\17\3\1\115\2\16\2\217"+
"\1\105\5\16\1\65\1\60\4\3\1\207\1\3\15\16\3\3\1\76\14\16\4\60\1\63\2\3\2\60"+
"\1\67\1\3\4\0\1\166\1\16\1\132\1\140\2\60\1\76\6\16\1\103\1\160\1\153\5\16"+
"\1\65\2\60\1\160\3\3\7\16\1\45\1\60\13\16\1\105\3\60\1\63\2\3\1\132\2\60\1"+
"\67\1\3\1\54\1\220\5\54\1\221\12\16\1\107\2\60\1\64\2\3\1\65\2\16\1\67\2\60"+
"\1\67\1\3\5\16\1\42\1\222\1\147\14\16\1\223\1\73\1\70\1\224\1\225\5\3\1\132"+
"\1\43\2\16\1\65\1\60\1\44\1\226\2\3\1\55\1\42\1\55\1\42\1\55\1\42\2\3\1\16"+
"\1\42\1\16\1\42\12\54\1\221\2\54\1\172\2\3\24\54\10\16\1\65\1\60\1\64\1\153"+
"\2\60\1\67\1\3\51\16\3\3\5\16\1\42\1\132\14\16\1\3\33\16\1\43\32\16\1\43\11"+
"\3\1\16\1\42\2\3\1\132\1\16\1\3\1\227\2\16\1\50\2\16\1\42\1\16\1\46\1\52\1"+
"\50\32\16\1\43\7\3\1\132\32\16\1\43\4\3\20\16\1\44\15\16\12\3\3\16\1\207\4"+
"\0\4\3\1\0\1\102\2\3\1\56\1\207\5\3\1\230\6\3\1\137\1\3\1\16\1\50\41\16\1"+
"\231\1\3\1\207\2\3\2\60\1\67\1\3\1\55\5\16\1\42\1\56\1\55\5\16\1\42\2\3\1"+
"\44\25\16\1\42\1\44\1\16\1\44\1\16\1\44\1\16\1\44\1\45\1\36\1\232\4\3\1\57"+
"\1\3\3\16\1\55\5\16\1\42\4\16\1\42\1\52\3\16\1\43\3\16\1\43\10\3\36\16\1\42"+
"\21\3\15\16\1\45\41\3\1\40\40\3\7\16\1\45\14\16\1\45\13\3\7\16\1\216\4\3\6"+
"\16\1\42\1\3\12\54\1\221\1\3\7\16\1\43\11\16\1\3\2\16\1\55\1\43\12\3\47\16"+
"\1\43\2\60\1\67\25\3\12\54\2\3\15\54\47\3\115\54\1\221\2\3\5\54\1\172\2\3"+
"\2\54\46\3\1\16\1\43\1\50\12\16\1\52\1\45\1\77\5\16\1\43\2\3\5\54\1\221\2"+
"\3\7\54\1\221\20\3\4\54\1\221\1\172\2\3\5\16\1\43\2\3\6\16\1\43\21\3\16\16"+
"\1\3\1\44\20\3\1\107\1\62\1\3\1\60\1\16\2\55\6\16\1\3\1\102\1\100\10\3\7\16"+
"\1\45\7\54\1\114\10\3\2\54\1\233\6\54\1\114\6\3\15\16\1\43\2\3\5\16\1\43\2"+
"\3\4\16\1\42\3\3\4\54\1\172\33\3\22\16\1\45\15\3\14\54\1\221\3\3\14\54\1\221"+
"\3\3\1\162\15\16\3\60\1\234\7\3\1\122\2\60\4\3\1\235\13\16\2\60\1\236\1\40"+
"\4\3\6\16\1\45\1\3\2\60\1\67\1\3\1\162\10\16\1\65\2\60\1\160\1\134\2\60\4"+
"\3\10\54\1\221\1\237\2\3\1\162\13\16\1\65\3\60\1\201\1\45\2\3\2\60\1\240\1"+
"\114\10\3\4\54\1\241\10\54\1\242\22\3\1\54\1\221\1\220\1\241\3\54\1\241\2"+
"\54\1\114\1\3\16\54\1\114\1\3\2\54\1\172\1\3\1\54\1\233\1\54\2\242\5\54\1"+
"\220\1\54\1\220\1\233\1\172\1\233\1\54\2\242\2\114\1\115\1\3\1\233\1\54\107"+
"\3\20\54\1\172\1\241\2\3\2\54\1\172\51\3\15\54\1\172\1\54\1\221\6\3\1\54\1"+
"\172\10\3\17\54\1\221\2\114\2\3\2\54\1\172\11\3\12\16\1\65\2\60\1\116\2\3"+
"\2\60\1\67\15\3\6\54\1\172\1\233\2\54\1\221\1\3\2\54\1\172\131\3\22\54\1\172"+
"\4\3\1\115\60\3\16\54\1\114\1\3\33\16\1\216\12\54\1\172\31\3\30\16\1\216\2"+
"\54\1\221\4\3\61\54\57\3\13\16\1\42\64\3\21\54\1\221\56\3\16\16\1\45\1\3\7"+
"\54\1\221\2\54\1\172\31\3\7\54\1\172\4\3\15\54\1\221\2\3\1\54\3\3\2\54\1\172"+
"\1\3\1\115\5\54\1\3\1\233\4\54\34\3\21\16\1\45\2\3\1\107\12\60\1\64\3\3\1"+
"\100\1\243\3\16\30\3\1\43\77\3\32\54\1\221\1\3\3\54\1\114\2\54\1\114\1\3\2"+
"\54\1\172\1\237\61\3\1\57\1\153\1\57\4\0\1\102\1\57\1\0\7\3\1\155\1\153\44"+
"\3\1\155\1\63\56\3\25\16\1\50\21\16\1\50\1\37\1\133\1\55\1\50\2\16\1\52\1"+
"\55\1\16\1\55\17\16\1\52\1\42\1\55\1\16\1\50\1\16\1\50\6\16\1\52\1\42\1\16"+
"\1\46\1\44\1\16\1\50\124\16\1\43\6\16\1\50\5\16\1\42\7\16\1\42\6\16\1\50\7"+
"\16\1\50\5\16\1\42\7\16\1\42\6\16\1\50\7\16\1\50\5\16\1\42\2\16\1\122\14\60"+
"\61\54\1\114\16\3\1\16\1\55\6\16\1\133\1\77\1\55\1\16\1\42\1\16\1\151\1\3"+
"\1\37\1\132\1\151\1\55\1\133\1\77\2\151\1\133\1\77\1\42\1\16\1\42\1\16\1\55"+
"\1\46\2\16\1\52\4\16\1\3\2\55\1\52\4\16\35\3\6\54\1\172\1\3\6\54\1\172\1\3"+
"\6\54\1\172\35\3\65\16\1\42\12\3\15\16\1\45\2\3\67\16\1\43\140\54\1\172\27"+
"\3\7\16\1\43\70\3\1\40\7\3\30\0\40\3\74\0\4\3");
/* The ZZ_CMAP_A table has 656 entries */
static final char ZZ_CMAP_A[] = zzUnpackCMap(
"\4\20\1\21\1\13\1\16\2\14\1\15\2\20\4\0\1\13\1\106\1\30\1\0\1\105\1\33\1\115"+
"\1\31\1\110\1\111\1\27\1\112\1\65\1\114\1\10\1\26\1\6\1\63\2\7\2\3\1\64\1"+
"\61\1\62\1\1\1\75\1\0\1\67\1\66\1\73\1\113\1\0\3\2\1\100\1\70\1\72\10\24\1"+
"\71\1\102\2\24\1\101\1\24\1\12\1\24\1\101\3\24\1\74\1\4\1\77\1\104\1\24\1"+
"\0\1\44\1\57\1\52\1\56\1\40\1\42\1\60\1\46\1\35\1\76\1\24\1\45\1\54\1\36\1"+
"\41\1\55\1\24\1\47\1\53\1\37\1\11\1\43\1\50\1\5\1\51\1\24\1\34\1\103\1\32"+
"\1\107\2\20\1\22\2\20\2\0\4\17\4\0\1\24\2\0\1\20\3\0\1\24\2\0\3\24\1\0\2\24"+
"\4\0\3\24\3\0\1\24\1\0\1\24\1\0\1\20\1\25\2\20\1\24\1\0\4\24\1\0\1\23\2\24"+
"\1\0\3\24\1\0\1\20\4\23\1\0\3\24\3\0\1\17\1\0\3\20\6\25\1\0\1\25\1\0\2\25"+
"\1\0\1\20\3\0\3\25\1\0\3\24\1\25\1\20\5\25\2\0\1\25\3\24\1\0\1\24\3\25\1\20"+
"\1\0\1\20\1\25\2\24\2\25\1\0\3\20\1\25\2\24\2\25\3\24\2\0\1\24\3\0\1\20\1"+
"\24\1\25\2\24\3\20\1\0\2\24\3\25\1\24\2\0\3\24\3\20\1\24\1\25\1\24\4\25\1"+
"\20\2\0\1\24\3\20\1\24\1\23\3\24\4\23\6\0\1\23\2\25\2\20\3\25\1\23\1\20\1"+
"\24\3\25\1\20\2\25\2\0\2\25\1\23\3\24\1\23\4\25\2\0\2\25\1\20\1\24\4\0\1\25"+
"\2\24\2\17\1\0\3\25\3\0\1\24\1\0\2\24\1\0\1\20\1\0\2\25\1\0\1\25\2\0\1\24"+
"\1\25\3\0\1\17\3\0\1\23\4\0\1\25\1\24\1\25\1\0\2\25\2\24\1\23\2\0\1\23\2\25"+
"\2\0\1\20\1\0\1\25\1\0\1\25\3\0\2\23\1\20\1\25\1\20\2\0\1\24\1\0\1\24\1\20"+
"\1\25\2\0\2\20\3\0\1\20\1\0\1\20\2\0\3\20\1\0\2\20\1\25\3\0\3\25\1\20\1\25"+
"\2\20\4\25\1\24\1\25\1\24\1\25\2\20\2\24\2\25\5\20\2\24\2\20\1\24\1\20\1\0"+
"\2\20\1\25\1\24\1\23\2\0\2\23\2\0\1\24\1\0\2\25\2\20\2\25\1\24\1\20\2\0\1"+
"\24\1\25\1\24\1\0\1\24\2\23\1\0\1\20\2\0\2\20\5\24\1\20\1\25\1\24\1\20\2\24"+
"\1\20\2\24\1\0\3\20\1\23\2\14\2\20\1\17\3\0\7\17\1\0\2\24\2\20\1\0\2\20\1"+
"\0\2\20\1\0\1\24\3\23\1\25\3\24\1\23\2\24\1\20\1\24\1\23\1\0\5\23\3\0\1\24"+
"\1\20\1\25\1\24\2\25\2\24\1\25\1\20\1\24\1\20\1\24\1\0\1\24\1\25\1\20\2\0"+
"\1\24\1\25\1\24\1\0\3\17\1\24\2\0\1\20\1\0\2\17\2\0\3\23\2\25\1\20\1\0\2\20"+
"\1\25\1\24\1\25\2\20\3\0\1\23\1\0\2\25\1\23\1\0\2\23\1\0\2\23\2\0\1\23\3\20"+
"\1\24");
/**
* Translates DFA states to action switch labels.
*/
private static final int [] ZZ_ACTION = zzUnpackAction();
private static final String ZZ_ACTION_PACKED_0 =
"\1\1\3\0\1\1\15\0\1\2\5\0\1\1\1\3"+
"\3\4\1\3\1\5\1\6\1\5\1\7\1\10\1\11"+
"\3\3\1\12\1\13\1\3\1\1\1\3\2\14\1\15"+
"\1\16\1\10\1\14\3\17\2\20\1\21\1\22\1\23"+
"\1\24\1\17\1\25\1\26\1\27\1\30\1\31\1\32"+
"\1\33\1\34\1\35\1\36\1\37\1\4\3\3\1\40"+
"\1\41\1\4\1\3\2\42\1\43\1\17\1\44\1\17"+
"\2\45\1\46\1\17\1\47\1\50\4\17\1\51\1\52"+
"\1\53\1\4\1\54\1\55\1\54\1\56\1\5\1\57"+
"\2\4\2\60\1\61\1\2\1\62\1\63\1\64\4\0"+
"\1\65\1\0\1\66\1\67\2\0\1\70\2\0\1\71"+
"\1\0\1\72\20\0\1\73\1\74\1\75\1\0\1\76"+
"\3\0\1\77\3\0\6\100\1\101\1\100\1\102\1\0"+
"\1\103\1\104\5\0\1\105\3\0\1\4\4\0\5\4"+
"\1\106\6\100\1\101\1\100\1\45\1\0\1\107\1\110"+
"\1\111\1\112\1\113\1\114\1\115\1\5\1\4\2\0"+
"\1\116\45\0\1\117\3\0\1\120\5\0\1\4\7\0"+
"\1\121\1\0\1\122\1\123\1\0\1\124\1\125\1\5"+
"\1\4\3\0\1\126\17\0\1\127\33\0\1\4\5\0"+
"\1\130\1\0\1\5\1\4\1\116\10\0\1\131\1\0"+
"\1\132\4\0\1\133\3\0\1\134\10\0\1\135\5\0"+
"\1\136\1\137\4\0\1\140\11\0\3\4\2\0\1\5"+
"\1\4\1\0\1\141\14\0\1\142\2\0\1\143\6\0"+
"\1\144\3\0\1\145\1\0\1\146\1\0\1\75\1\147"+
"\13\0\1\4\4\0\1\5\20\0\1\150\2\0\1\151"+
"\3\0\1\152\1\153\1\73\1\75\4\0\1\154\5\0"+
"\1\4\6\0\1\155\1\0\1\156\1\157\1\160\2\0"+
"\1\161\1\162\1\0\1\163\6\0\1\164\3\0\1\73"+
"\2\0\1\165\4\0\2\4\10\0\1\166\1\167\1\170"+
"\1\0\1\171\1\0\1\172\1\173\7\0\1\4\2\0"+
"\2\4\5\0\1\174\2\0\1\175\3\0\1\176\1\0"+
"\1\177\3\0\4\4\2\0\1\200\1\201\1\202\1\203"+
"\1\204\1\205\1\206\5\0\3\4\1\0\1\207\1\210"+
"\3\0\1\4\2\0\1\4\1\0";
private static int [] zzUnpackAction() {
int [] result = new int[595];
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;
}
/**
* Translates a state to a row index in the transition table
*/
private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
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\u07ec\0\u08d6\0\u0924"+
"\0\u0972\0\u07ec\0\u09c0\0\u0a0e\0\u0a5c\0\u0aaa\0\u0af8\0\u07ec"+
"\0\u07ec\0\u0b46\0\u0b94\0\u0be2\0\u07ec\0\u0c30\0\u07ec\0\u0c7e"+
"\0\u0ccc\0\u0d1a\0\u07ec\0\u0d68\0\u0db6\0\u0e04\0\u0e52\0\u0ea0"+
"\0\u07ec\0\u07ec\0\u0eee\0\u0f3c\0\u0f8a\0\u07ec\0\u07ec\0\u07ec"+
"\0\u07ec\0\u07ec\0\u07ec\0\u07ec\0\u07ec\0\u07ec\0\u0fd8\0\u1026"+
"\0\u1074\0\u10c2\0\u1110\0\u07ec\0\u07ec\0\u115e\0\u11ac\0\u07ec"+
"\0\u11fa\0\u07ec\0\u1248\0\u1248\0\u1296\0\u1248\0\u12e4\0\u07ec"+
"\0\u1332\0\u0f8a\0\u07ec\0\u1380\0\u13ce\0\u141c\0\u146a\0\u07ec"+
"\0\u07ec\0\u07ec\0\u14b8\0\u07ec\0\u07ec\0\u1506\0\u1554\0\u15a2"+
"\0\u07ec\0\u15f0\0\u163e\0\u07ec\0\u168c\0\u07ec\0\u16da\0\u1728"+
"\0\u07ec\0\u1776\0\u07ec\0\u17c4\0\u1812\0\u1860\0\u07ec\0\u083a"+
"\0\u07ec\0\u07ec\0\u0888\0\u18ae\0\u07ec\0\u0aaa\0\u18fc\0\u07ec"+
"\0\u194a\0\u07ec\0\u1998\0\u19e6\0\u1a34\0\u1a82\0\u1ad0\0\u1b1e"+
"\0\u1b6c\0\u1bba\0\u1c08\0\u1c56\0\u1ca4\0\u1cf2\0\u1d40\0\u1d8e"+
"\0\u1ddc\0\u1e2a\0\u1e78\0\u07ec\0\u1ec6\0\u1f14\0\u07ec\0\u1f62"+
"\0\u1fb0\0\u1ffe\0\u07ec\0\u204c\0\u0d1a\0\u209a\0\u07ec\0\u20e8"+
"\0\u2136\0\u2184\0\u21d2\0\u2220\0\u07ec\0\u226e\0\u07ec\0\u0e04"+
"\0\u07ec\0\u22bc\0\u230a\0\u0eee\0\u2358\0\u23a6\0\u0fd8\0\u07ec"+
"\0\u1074\0\u10c2\0\u1110\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\u274e\0\u2922\0\u07ec\0\u2970"+
"\0\u07ec\0\u07ec\0\u2700\0\u07ec\0\u29be\0\u07ec\0\u07ec\0\u2a0c"+
"\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\u2e02\0\u2e50\0\u2e9e\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\u07ec\0\u36d8\0\u3726\0\u3774\0\u07ec\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\u3b6a\0\u07ec\0\u3bb8\0\u07ec\0\u3c06\0\u3c54"+
"\0\u07ec\0\u07ec\0\u3ca2\0\u3cf0\0\u3d3e\0\u3d8c\0\u3dda\0\u3e28"+
"\0\u3e76\0\u3ec4\0\u3f12\0\u3f60\0\u3fae\0\u3ffc\0\u404a\0\u4098"+
"\0\u40e6\0\u4134\0\u4182\0\u41d0\0\u421e\0\u426c\0\u42ba\0\u4308"+
"\0\u4356\0\u43a4\0\u43f2\0\u4440\0\u448e\0\u44dc\0\u452a\0\u4578"+
"\0\u45c6\0\u4614\0\u4662\0\u46b0\0\u46fe\0\u474c\0\u479a\0\u47e8"+
"\0\u4836\0\u4884\0\u48d2\0\u2136\0\u4920\0\u496e\0\u49bc\0\u4a0a"+
"\0\u4a58\0\u4aa6\0\u4af4\0\u4b42\0\u4b90\0\u4bde\0\u4c2c\0\u25c8"+
"\0\u4c7a\0\u07ec\0\u4cc8\0\u4d16\0\u4d64\0\u3d3e\0\u4db2\0\u4e00"+
"\0\u4e4e\0\u4e9c\0\u4eea\0\u4f38\0\u4f86\0\u4fd4\0\u07ec\0\u5022"+
"\0\u07ec\0\u5070\0\u50be\0\u510c\0\u515a\0\u07ec\0\u51a8\0\u51f6"+
"\0\u5244\0\u07ec\0\u5292\0\u52e0\0\u532e\0\u537c\0\u53ca\0\u5418"+
"\0\u5466\0\u54b4\0\u07ec\0\u5502\0\u5550\0\u559e\0\u55ec\0\u563a"+
"\0\u07ec\0\u07ec\0\u5688\0\u56d6\0\u5724\0\u5772\0\u07ec\0\u57c0"+
"\0\u580e\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\u3b1c\0\u5c52"+
"\0\u07ec\0\u5ca0\0\u5cee\0\u5d3c\0\u5d8a\0\u5dd8\0\u5e26\0\u5e74"+
"\0\u5ec2\0\u5f10\0\u5f5e\0\u5fac\0\u5ffa\0\u07ec\0\u6048\0\u6096"+
"\0\u07ec\0\u60e4\0\u6132\0\u6180\0\u61ce\0\u621c\0\u626a\0\u07ec"+
"\0\u62b8\0\u6306\0\u6354\0\u07ec\0\u63a2\0\u07ec\0\u63f0\0\u643e"+
"\0\u07ec\0\u648c\0\u64da\0\u6528\0\u6576\0\u65c4\0\u6612\0\u6660"+
"\0\u66ae\0\u66fc\0\u674a\0\u6798\0\u67e6\0\u6834\0\u6882\0\u68d0"+
"\0\u691e\0\u07ec\0\u696c\0\u69ba\0\u6a08\0\u6a56\0\u6aa4\0\u6af2"+
"\0\u6b40\0\u6b8e\0\u6bdc\0\u6c2a\0\u6c78\0\u6cc6\0\u6d14\0\u6d62"+
"\0\u6db0\0\u6dfe\0\u07ec\0\u6e4c\0\u6e9a\0\u07ec\0\u6ee8\0\u6f36"+
"\0\u6f84\0\u07ec\0\u07ec\0\u6fd2\0\u07ec\0\u7020\0\u706e\0\u70bc"+
"\0\u710a\0\u07ec\0\u7158\0\u71a6\0\u71f4\0\u7242\0\u7290\0\u72de"+
"\0\u732c\0\u737a\0\u73c8\0\u7416\0\u7464\0\u74b2\0\u07ec\0\u7500"+
"\0\u07ec\0\u07ec\0\u07ec\0\u754e\0\u759c\0\u07ec\0\u07ec\0\u75ea"+
"\0\u07ec\0\u7638\0\u7686\0\u76d4\0\u7722\0\u7770\0\u77be\0\u07ec"+
"\0\u780c\0\u785a\0\u78a8\0\u07ec\0\u78f6\0\u7944\0\u07ec\0\u7992"+
"\0\u79e0\0\u7a2e\0\u7a7c\0\u7aca\0\u7b18\0\u7b66\0\u7bb4\0\u7c02"+
"\0\u7c50\0\u7c9e\0\u7cec\0\u7d3a\0\u7d88\0\u7dd6\0\u07ec\0\u07ec"+
"\0\u7e24\0\u07ec\0\u7e72\0\u07ec\0\u07ec\0\u7ec0\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\u07ec\0\u84d8\0\u8526\0\u8574\0\u07ec\0\u85c2\0\u07ec"+
"\0\u8610\0\u865e\0\u86ac\0\u86fa\0\u8748\0\u8796\0\u87e4\0\u8832"+
"\0\u8880\0\u07ec\0\u07ec\0\u07ec\0\u07ec\0\u88ce\0\u07ec\0\u07ec"+
"\0\u891c\0\u896a\0\u89b8\0\u8a06\0\u8a54\0\u8aa2\0\u8af0\0\u8b3e"+
"\0\u8b8c\0\u07ec\0\u07ec\0\u8bda\0\u8c28\0\u8c76\0\u8cc4\0\u8d12"+
"\0\u8d60\0\u8dae\0\u8dfc";
private static int [] zzUnpackRowMap() {
int [] result = new int[595];
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 =
"\33\31\1\32\62\31\26\33\1\34\1\35\66\33\1\36"+
"\1\37\1\40\1\37\1\36\1\40\1\41\1\37\1\42"+
"\2\40\1\43\3\44\1\40\1\36\1\43\1\44\1\36"+
"\1\40\1\36\1\45\1\36\1\46\2\36\1\47\1\36"+
"\24\40\4\37\1\50\1\51\1\36\3\40\3\36\1\40"+
"\1\36\3\40\2\36\1\40\11\36\1\37\1\40\1\37"+
"\1\36\1\40\1\41\1\37\1\42\2\40\1\43\3\44"+
"\1\40\1\36\1\43\1\44\1\36\1\40\1\36\1\45"+
"\1\36\1\46\2\36\1\52\1\36\24\40\4\37\1\50"+
"\1\51\1\36\3\40\3\36\1\40\1\36\3\40\2\36"+
"\1\40\10\36\33\53\1\54\62\53\13\55\1\43\3\44"+
"\2\55\1\43\1\44\3\55\1\56\3\55\1\57\34\55"+
"\1\60\41\55\1\61\3\44\2\55\1\61\1\44\3\55"+
"\1\56\3\55\1\57\1\62\33\55\1\60\41\55\1\43"+
"\3\44\2\55\1\43\1\44\73\55\1\63\3\64\1\65"+
"\3\64\1\42\2\64\1\43\1\66\1\67\1\66\2\63"+
"\1\43\1\66\3\64\1\70\1\71\1\72\3\63\1\73"+
"\30\64\2\63\1\74\3\64\1\63\1\75\1\63\1\64"+
"\1\63\3\64\1\76\1\77\1\100\1\101\1\102\1\103"+
"\1\104\1\105\1\106\2\63\2\36\1\40\2\36\1\40"+
"\3\36\2\40\1\43\3\44\1\40\1\36\1\43\1\44"+
"\1\36\1\40\10\36\24\40\4\36\1\50\2\36\3\40"+
"\1\107\2\36\1\40\1\36\3\40\2\36\1\40\10\36"+
"\26\110\1\111\1\110\1\112\1\113\1\114\1\110\1\115"+
"\61\110\4\116\1\117\7\116\1\120\1\121\1\120\3\116"+
"\1\120\5\116\1\122\65\116\1\123\3\124\1\125\3\124"+
"\1\123\2\124\1\123\1\126\1\127\1\126\3\123\1\126"+
"\3\124\2\123\1\130\3\123\1\131\30\124\3\123\3\124"+
"\1\123\1\132\1\123\1\124\1\133\3\124\1\134\1\77"+
"\2\123\1\135\4\123\1\136\1\137\1\140\1\41\1\40"+
"\1\41\1\140\1\40\2\41\1\140\2\40\1\43\3\36"+
"\1\40\1\140\1\43\1\36\1\140\1\40\5\140\1\141"+
"\2\140\24\40\4\41\1\50\2\140\3\40\3\140\1\40"+
"\1\140\3\40\2\140\1\40\10\140\1\142\3\143\1\142"+
"\3\143\1\142\2\143\10\142\3\143\7\142\30\143\3\142"+
"\3\143\3\142\1\143\1\142\3\143\13\142\1\144\3\145"+
"\1\146\3\145\1\144\2\145\1\144\3\36\3\144\1\36"+
"\3\145\7\144\30\145\3\144\3\145\3\144\1\145\1\144"+
"\3\145\11\144\1\147\1\144\1\36\3\150\2\36\2\150"+
"\3\36\1\43\3\44\2\36\1\43\1\44\7\36\1\151"+
"\5\36\1\150\1\36\1\150\1\36\1\150\5\36\1\150"+
"\3\36\2\150\1\36\4\150\3\36\1\150\1\36\1\150"+
"\5\36\1\150\16\36\3\152\2\36\2\152\3\36\1\153"+
"\1\154\1\155\1\154\2\36\1\153\1\154\7\36\1\156"+
"\5\36\1\152\1\36\1\152\1\36\1\152\5\36\1\152"+
"\3\36\2\152\1\36\4\152\3\36\1\152\1\36\1\152"+
"\5\36\1\152\15\36\14\157\3\160\3\157\1\160\73\157"+
"\13\140\1\43\3\44\2\140\1\43\1\44\73\140\116\161"+
"\34\36\1\162\61\36\14\0\1\163\1\164\1\163\3\0"+
"\1\163\77\0\1\165\3\0\1\165\15\0\3\165\3\0"+
"\1\165\37\0\1\165\6\0\11\165\2\0\33\31\1\166"+
"\115\31\1\167\62\31\144\0\1\170\1\171\114\0\1\172"+
"\1\173\67\0\1\37\1\0\1\37\2\0\2\37\1\174"+
"\50\0\4\37\32\0\3\40\1\0\3\40\1\0\2\40"+
"\4\0\4\40\1\0\2\40\7\0\30\40\3\0\3\40"+
"\3\0\1\40\1\0\3\40\2\0\1\40\11\0\1\41"+
"\1\0\1\41\2\0\2\41\51\0\4\41\44\0\1\43"+
"\5\0\1\43\110\0\3\44\3\0\1\44\121\0\1\157"+
"\1\175\66\0\4\176\1\177\7\176\3\0\3\176\1\0"+
"\5\176\1\200\65\176\11\0\1\201\22\0\1\202\1\203"+
"\1\204\1\205\1\206\1\0\1\207\1\0\1\210\1\211"+
"\3\0\1\212\1\213\1\214\1\0\1\215\1\216\1\217"+
"\1\0\1\220\1\221\1\222\37\0\1\223\3\0\1\201"+
"\21\0\1\224\1\202\1\203\1\204\1\205\1\206\1\0"+
"\1\207\1\0\1\210\1\211\3\0\1\212\1\213\1\225"+
"\1\0\1\215\1\216\1\217\1\0\1\220\1\221\1\222"+
"\32\0\33\53\1\226\114\53\1\227\2\53\1\230\2\53"+
"\1\231\10\53\1\232\44\53\26\0\1\157\1\233\155\0"+
"\1\234\41\0\1\61\5\0\1\61\11\0\1\235\117\0"+
"\1\236\61\0\3\64\1\0\3\64\1\0\2\64\10\0"+
"\3\64\7\0\30\64\3\0\3\64\3\0\1\64\1\0"+
"\3\64\13\0\3\237\1\240\1\237\1\241\2\242\1\237"+
"\1\243\1\244\1\237\3\0\3\237\1\0\25\237\1\245"+
"\2\237\1\245\1\237\1\246\1\245\2\237\1\240\1\237"+
"\1\242\1\240\13\237\2\245\1\246\13\237\4\0\1\247"+
"\3\0\1\247\2\0\4\250\2\0\2\250\3\0\3\247"+
"\3\0\1\247\37\0\1\247\6\0\11\247\6\0\1\247"+
"\3\0\1\247\2\0\3\250\1\66\2\0\2\250\3\0"+
"\3\247\3\0\1\247\37\0\1\247\6\0\11\247\30\0"+
"\1\157\1\251\67\0\1\252\1\253\1\252\1\0\1\253"+
"\2\252\1\0\2\253\1\254\3\0\1\253\1\0\1\254"+
"\2\0\1\253\10\0\24\253\4\252\3\0\3\253\3\0"+
"\1\253\1\0\3\253\2\0\1\253\77\0\1\255\123\0"+
"\1\256\33\0\4\257\2\0\2\257\11\0\1\260\61\0"+
"\26\110\1\261\1\110\1\262\1\263\1\0\1\110\1\0"+
"\107\110\1\264\1\265\66\110\4\262\1\266\7\262\3\0"+
"\3\262\1\0\5\262\1\110\65\262\4\267\1\270\7\267"+
"\3\0\3\267\1\0\6\267\1\0\64\267\4\116\1\0"+
"\7\116\3\0\3\116\1\0\5\116\1\0\65\116\3\33"+
"\1\271\1\33\1\272\2\273\1\33\1\274\1\275\1\33"+
"\3\0\3\33\1\0\36\33\1\271\1\33\1\273\1\271"+
"\31\33\16\0\1\120\213\0\1\276\1\0\3\277\1\300"+
"\1\277\1\301\2\302\1\277\1\303\1\304\1\277\3\0"+
"\3\277\1\0\25\277\1\305\2\277\1\305\1\277\1\306"+
"\1\305\2\277\1\300\1\277\1\302\1\300\13\277\2\305"+
"\1\306\13\277\16\0\1\307\75\0\1\276\3\0\1\310"+
"\2\0\1\310\3\0\2\310\4\0\1\310\4\0\1\310"+
"\10\0\24\310\7\0\3\310\3\0\1\310\1\0\3\310"+
"\2\0\1\310\6\0\1\276\104\0\1\311\10\0\1\276"+
"\110\0\1\312\4\0\1\276\115\0\1\313\115\0\1\276"+
"\1\314\114\0\1\315\1\0\14\316\3\0\3\316\1\0"+
"\73\316\77\0\1\317\17\0\3\320\2\0\2\320\30\0"+
"\1\320\1\0\1\320\1\0\1\320\5\0\1\320\3\0"+
"\2\320\1\0\4\320\3\0\1\320\1\0\1\320\5\0"+
"\1\320\16\0\3\321\2\0\2\321\30\0\1\321\1\0"+
"\1\321\1\0\1\321\5\0\1\321\3\0\2\321\1\0"+
"\4\321\3\0\1\321\1\0\1\321\5\0\1\321\30\0"+
"\1\153\5\0\1\153\112\0\1\154\77\0\14\157\3\0"+
"\3\157\1\0\73\157\14\0\3\160\3\0\1\160\75\0"+
"\1\253\2\0\1\253\3\0\2\253\1\322\3\0\1\253"+
"\1\0\1\322\2\0\1\253\7\0\1\323\24\253\7\0"+
"\3\253\3\0\1\253\1\0\3\253\2\0\1\253\26\0"+
"\1\163\112\0\4\165\2\0\2\165\73\0\33\31\1\0"+
"\62\31\1\0\1\324\1\0\1\324\2\0\2\324\51\0"+
"\4\324\31\0\14\176\3\0\3\176\1\0\73\176\36\0"+
"\1\325\115\0\1\326\15\0\1\327\3\0\1\330\76\0"+
"\1\331\125\0\1\332\51\0\1\333\33\0\1\334\65\0"+
"\1\335\23\0\1\336\135\0\1\337\1\0\1\340\73\0"+
"\1\341\131\0\1\342\55\0\1\343\25\0\1\344\1\0"+
"\1\345\2\0\1\346\1\347\1\350\106\0\1\351\12\0"+
"\1\352\54\0\1\353\144\0\1\354\66\0\1\355\163\0"+
"\1\356\115\0\1\357\122\0\1\360\104\0\1\361\101\0"+
"\1\362\12\0\1\352\43\0\32\53\1\0\2\53\1\0"+
"\2\53\1\0\10\53\1\0\44\53\36\0\1\363\120\0"+
"\1\364\125\0\1\365\134\0\1\366\63\0\1\367\62\0"+
"\1\237\2\0\2\237\51\0\1\237\1\0\2\237\32\0"+
"\3\370\2\0\2\370\30\0\1\370\1\0\1\370\1\0"+
"\1\370\5\0\1\370\3\0\2\370\1\0\4\370\3\0"+
"\1\370\1\0\1\370\5\0\1\370\20\0\1\240\2\0"+
"\2\240\51\0\1\240\1\0\2\240\32\0\3\371\2\0"+
"\2\371\24\0\1\372\3\0\1\371\1\0\1\371\1\0"+
"\1\371\5\0\1\371\3\0\2\371\1\0\4\371\3\0"+
"\1\371\1\0\1\371\5\0\1\371\16\0\3\373\2\0"+
"\2\373\30\0\1\373\1\0\1\373\1\0\1\373\5\0"+
"\1\373\3\0\2\373\1\0\4\373\3\0\1\373\1\0"+
"\1\373\5\0\1\373\51\0\1\374\62\0\1\252\1\0"+
"\1\252\2\0\2\252\51\0\4\252\32\0\3\253\1\0"+
"\3\253\1\0\2\253\1\375\3\0\4\253\1\0\2\253"+
"\4\0\1\376\2\0\30\253\3\0\3\253\3\0\1\253"+
"\1\0\3\253\2\0\1\253\100\0\1\377\36\0\1\u0100"+
"\33\0\1\u0101\10\0\1\u0102\17\0\1\u0103\17\0\14\264"+
"\3\110\3\264\1\110\3\264\1\u0104\67\264\27\265\1\u0105"+
"\66\265\14\262\3\0\3\262\1\0\73\262\31\0\1\110"+
"\64\0\3\267\1\u0106\1\u0107\1\267\2\u0108\1\267\1\u0109"+
"\2\267\3\0\3\267\1\0\36\267\1\u0106\1\267\1\u0108"+
"\1\u0106\31\267\3\0\1\33\2\0\2\33\51\0\1\33"+
"\1\0\2\33\32\0\3\u010a\2\0\2\u010a\30\0\1\u010a"+
"\1\0\1\u010a\1\0\1\u010a\5\0\1\u010a\3\0\2\u010a"+
"\1\0\4\u010a\3\0\1\u010a\1\0\1\u010a\5\0\1\u010a"+
"\20\0\1\271\2\0\2\271\51\0\1\271\1\0\2\271"+
"\32\0\3\u010b\2\0\2\u010b\24\0\1\u010c\3\0\1\u010b"+
"\1\0\1\u010b\1\0\1\u010b\5\0\1\u010b\3\0\2\u010b"+
"\1\0\4\u010b\3\0\1\u010b\1\0\1\u010b\5\0\1\u010b"+
"\16\0\3\u010d\2\0\2\u010d\30\0\1\u010d\1\0\1\u010d"+
"\1\0\1\u010d\5\0\1\u010d\3\0\2\u010d\1\0\4\u010d"+
"\3\0\1\u010d\1\0\1\u010d\5\0\1\u010d\131\0\1\u010e"+
"\115\0\1\u010f\4\0\1\237\2\0\2\237\51\0\1\237"+
"\1\0\2\237\27\0\1\u010f\2\0\3\370\2\0\2\370"+
"\30\0\1\370\1\0\1\370\1\0\1\370\5\0\1\370"+
"\3\0\2\370\1\0\4\370\3\0\1\370\1\0\1\370"+
"\5\0\1\370\13\0\1\u010f\4\0\1\240\2\0\2\240"+
"\51\0\1\240\1\0\2\240\27\0\1\u010f\2\0\3\371"+
"\2\0\2\371\24\0\1\u0110\3\0\1\371\1\0\1\371"+
"\1\0\1\371\5\0\1\371\3\0\2\371\1\0\4\371"+
"\3\0\1\371\1\0\1\371\5\0\1\371\13\0\1\u010f"+
"\2\0\3\373\2\0\2\373\30\0\1\373\1\0\1\373"+
"\1\0\1\373\5\0\1\373\3\0\2\373\1\0\4\373"+
"\3\0\1\373\1\0\1\373\5\0\1\373\13\0\1\u010f"+
"\35\0\1\374\57\0\1\u010f\2\0\3\310\1\0\3\310"+
"\1\0\2\310\4\0\4\310\1\0\2\310\4\0\1\u0111"+
"\2\0\30\310\3\0\3\310\3\0\1\310\1\0\3\310"+
"\2\0\1\310\124\0\1\u0112\2\0\3\u0113\2\0\2\u0113"+
"\30\0\1\u0113\1\0\1\u0113\1\0\1\u0113\5\0\1\u0113"+
"\3\0\2\u0113\1\0\4\u0113\3\0\1\u0113\1\0\1\u0113"+
"\5\0\1\u0113\16\0\3\u0114\2\0\2\u0114\30\0\1\u0114"+
"\1\0\1\u0114\1\0\1\u0114\5\0\1\u0114\3\0\2\u0114"+
"\1\0\4\u0114\3\0\1\u0114\1\0\1\u0114\5\0\1\u0114"+
"\17\0\1\253\2\0\1\253\3\0\2\253\1\322\3\0"+
"\1\253\1\0\1\322\2\0\1\253\10\0\24\253\7\0"+
"\3\253\3\0\1\253\1\0\3\253\2\0\1\253\11\0"+
"\1\252\1\0\1\252\2\0\2\252\3\0\1\323\5\0"+
"\1\323\37\0\4\252\32\0\1\324\1\0\1\324\2\0"+
"\2\324\1\u0115\50\0\4\324\66\0\1\u0116\115\0\1\u0117"+
"\1\0\1\u0118\12\0\1\u0119\120\0\1\u011a\76\0\1\u011b"+
"\116\0\1\u011c\133\0\1\u011d\77\0\1\u011e\120\0\1\u011f"+
"\111\0\1\u0120\6\0\1\u0121\106\0\1\u0122\114\0\1\u0123"+
"\133\0\1\u0124\100\0\1\u0125\117\0\1\u0126\4\0\1\u0127"+
"\125\0\1\u0128\101\0\1\u0129\121\0\1\u012a\123\0\1\u012b"+
"\106\0\1\u012c\115\0\1\u012d\115\0\1\u012e\115\0\1\u012f"+
"\130\0\1\u0130\115\0\1\u0131\100\0\1\u0132\110\0\1\u0133"+
"\115\0\1\u0134\137\0\1\u0135\75\0\1\u0136\122\0\1\u0137"+
"\106\0\1\u0138\122\0\1\u0139\120\0\1\u013a\141\0\1\u013b"+
"\76\0\1\u0119\44\0\3\237\2\0\2\237\30\0\1\237"+
"\1\0\1\237\1\0\1\237\5\0\1\237\3\0\2\237"+
"\1\0\4\237\3\0\1\237\1\0\1\237\5\0\1\237"+
"\16\0\3\u013c\2\0\2\u013c\30\0\1\u013c\1\0\1\u013c"+
"\1\0\1\u013c\5\0\1\u013c\3\0\2\u013c\1\0\4\u013c"+
"\3\0\1\u013c\1\0\1\u013c\5\0\1\u013c\16\0\3\u013d"+
"\2\0\2\u013d\30\0\1\u013d\1\0\1\u013d\1\0\1\u013d"+
"\5\0\1\u013d\3\0\2\u013d\1\0\4\u013d\3\0\1\u013d"+
"\1\0\1\u013d\5\0\1\u013d\15\0\32\374\1\245\63\374"+
"\13\0\1\375\5\0\1\375\10\0\1\376\154\0\1\u013e"+
"\101\0\1\u013f\100\0\1\u0140\1\u0141\111\0\1\u0142\125\0"+
"\1\u0143\50\0\14\264\3\110\3\264\1\110\3\264\1\u0104"+
"\1\u0144\66\264\26\265\1\110\1\u0105\66\265\3\0\1\267"+
"\2\0\2\267\21\0\1\110\27\0\1\267\1\0\2\267"+
"\35\0\1\u0145\4\0\1\u0146\17\0\1\110\67\0\1\u0106"+
"\2\0\2\u0106\21\0\1\110\27\0\1\u0106\1\0\2\u0106"+
"\32\0\3\u0147\2\0\2\u0147\21\0\1\110\6\0\1\u0147"+
"\1\0\1\u0147\1\0\1\u0147\5\0\1\u0147\3\0\2\u0147"+
"\1\0\4\u0147\3\0\1\u0147\1\0\1\u0147\5\0\1\u0147"+
"\16\0\3\33\2\0\2\33\30\0\1\33\1\0\1\33"+
"\1\0\1\33\5\0\1\33\3\0\2\33\1\0\4\33"+
"\3\0\1\33\1\0\1\33\5\0\1\33\16\0\3\u0148"+
"\2\0\2\u0148\30\0\1\u0148\1\0\1\u0148\1\0\1\u0148"+
"\5\0\1\u0148\3\0\2\u0148\1\0\4\u0148\3\0\1\u0148"+
"\1\0\1\u0148\5\0\1\u0148\16\0\3\u0149\2\0\2\u0149"+
"\30\0\1\u0149\1\0\1\u0149\1\0\1\u0149\5\0\1\u0149"+
"\3\0\2\u0149\1\0\4\u0149\3\0\1\u0149\1\0\1\u0149"+
"\5\0\1\u0149\131\0\1\u014a\2\0\3\u014b\2\0\2\u014b"+
"\30\0\1\u014b\1\0\1\u014b\1\0\1\u014b\5\0\1\u014b"+
"\3\0\2\u014b\1\0\4\u014b\3\0\1\u014b\1\0\1\u014b"+
"\5\0\1\u014b\16\0\3\u014c\2\0\2\u014c\30\0\1\u014c"+
"\1\0\1\u014c\1\0\1\u014c\5\0\1\u014c\3\0\2\u014c"+
"\1\0\4\u014c\3\0\1\u014c\1\0\1\u014c\5\0\1\u014c"+
"\16\0\3\u014d\2\0\2\u014d\30\0\1\u014d\1\0\1\u014d"+
"\1\0\1\u014d\5\0\1\u014d\3\0\2\u014d\1\0\4\u014d"+
"\3\0\1\u014d\1\0\1\u014d\5\0\1\u014d\16\0\1\u014e"+
"\1\0\1\u014e\2\0\2\u014e\51\0\4\u014e\103\0\1\u014f"+
"\102\0\1\u0150\116\0\1\u0151\7\0\1\u0152\112\0\1\u0153"+
"\115\0\1\u0154\111\0\1\u0155\65\0\1\u0156\144\0\1\u0157"+
"\115\0\1\u0158\111\0\1\u0159\2\0\1\u015a\3\0\1\u015b"+
"\6\0\1\u015c\115\0\1\u015d\110\0\1\u015e\114\0\1\u015f"+
"\126\0\1\u0160\77\0\1\u0161\116\0\1\u0162\116\0\1\u0163"+
"\114\0\1\u0164\130\0\1\u0165\2\0\1\u0166\106\0\1\u0167"+
"\57\0\1\u0168\144\0\1\u0169\130\0\1\u016a\111\0\1\u016b"+
"\104\0\1\u016c\115\0\1\u016d\124\0\1\u016e\61\0\1\u016f"+
"\146\0\1\u0170\112\0\1\u0171\115\0\1\u0172\113\0\1\u0173"+
"\124\0\1\u0174\107\0\1\u016c\1\u0175\115\0\1\u0176\110\0"+
"\1\u0177\4\0\1\u0178\3\0\1\u0179\112\0\1\u017a\147\0"+
"\1\u017b\24\0\3\371\2\0\2\371\30\0\1\371\1\0"+
"\1\371\1\0\1\371\5\0\1\371\3\0\2\371\1\0"+
"\4\371\3\0\1\371\1\0\1\371\5\0\1\371\107\0"+
"\1\u017c\100\0\1\u017d\77\0\1\u017e\126\0\1\u017d\125\0"+
"\1\u017f\75\0\1\u0180\55\0\14\u0144\3\u0181\3\u0144\1\u0181"+
"\3\u0144\1\u0182\1\u0183\66\u0144\4\0\1\u0145\4\0\1\u0146"+
"\105\0\3\u0147\2\0\2\u0147\30\0\1\u0147\1\0\1\u0147"+
"\1\0\1\u0147\5\0\1\u0147\3\0\2\u0147\1\0\4\u0147"+
"\3\0\1\u0147\1\0\1\u0147\5\0\1\u0147\16\0\3\u0184"+
"\2\0\2\u0184\30\0\1\u0184\1\0\1\u0184\1\0\1\u0184"+
"\5\0\1\u0184\3\0\2\u0184\1\0\4\u0184\3\0\1\u0184"+
"\1\0\1\u0184\5\0\1\u0184\16\0\3\u010b\2\0\2\u010b"+
"\30\0\1\u010b\1\0\1\u010b\1\0\1\u010b\5\0\1\u010b"+
"\3\0\2\u010b\1\0\4\u010b\3\0\1\u010b\1\0\1\u010b"+
"\5\0\1\u010b\16\0\3\u0185\2\0\2\u0185\22\0\1\63"+
"\5\0\1\u0185\1\0\1\u0185\1\0\1\u0185\5\0\1\u0185"+
"\3\0\2\u0185\1\0\4\u0185\3\0\1\u0185\1\0\1\u0185"+
"\5\0\1\u0185\16\0\3\u0186\2\0\2\u0186\30\0\1\u0186"+
"\1\0\1\u0186\1\0\1\u0186\5\0\1\u0186\3\0\2\u0186"+
"\1\0\4\u0186\3\0\1\u0186\1\0\1\u0186\5\0\1\u0186"+
"\16\0\3\u0187\2\0\2\u0187\30\0\1\u0187\1\0\1\u0187"+
"\1\0\1\u0187\5\0\1\u0187\3\0\2\u0187\1\0\4\u0187"+
"\3\0\1\u0187\1\0\1\u0187\5\0\1\u0187\56\0\1\u0188"+
"\110\0\1\u0189\2\0\1\u018a\136\0\1\u018b\104\0\1\u018c"+
"\57\0\1\u018d\144\0\1\u018e\124\0\1\u018f\104\0\1\u0190"+
"\115\0\1\u0191\125\0\1\u0192\113\0\1\u0193\116\0\1\u0194"+
"\107\0\1\u0195\123\0\1\u0196\117\0\1\u0197\115\0\1\u0198"+
"\110\0\1\u0199\60\0\1\u019a\161\0\1\u019b\104\0\1\u019c"+
"\121\0\1\u019d\125\0\1\u019e\106\0\1\u019f\123\0\1\u01a0"+
"\120\0\1\u01a1\77\0\1\u01a2\112\0\1\u01a3\140\0\1\u01a4"+
"\75\0\1\u01a5\114\0\1\u01a6\115\0\1\u01a7\116\0\1\u01a8"+
"\107\0\1\u01a9\4\0\1\u01aa\124\0\1\u01ab\113\0\1\u01ac"+
"\56\0\1\u01ad\203\0\1\u01ae\115\0\1\u01af\62\0\1\u01b0"+
"\114\0\1\u01b1\113\0\1\u01b2\117\0\1\u01b3\56\0\26\u0181"+
"\1\u01b4\1\u01b5\1\u01b6\1\u01b7\1\265\1\u0181\1\265\61\u0181"+
"\14\u0144\3\u0181\3\u0144\1\u0181\3\u0144\1\u0182\103\u0144\3\u0181"+
"\3\u0144\1\u0181\3\u0144\1\u0104\1\u0183\66\u0144\1\0\3\u01b8"+
"\2\0\2\u01b8\30\0\1\u01b8\1\0\1\u01b8\1\0\1\u01b8"+
"\5\0\1\u01b8\3\0\2\u01b8\1\0\4\u01b8\3\0\1\u01b8"+
"\1\0\1\u01b8\5\0\1\u01b8\16\0\3\u01b9\2\0\2\u01b9"+
"\22\0\1\63\5\0\1\u01b9\1\0\1\u01b9\1\0\1\u01b9"+
"\5\0\1\u01b9\3\0\2\u01b9\1\0\4\u01b9\3\0\1\u01b9"+
"\1\0\1\u01b9\5\0\1\u01b9\16\0\3\u01ba\2\0\2\u01ba"+
"\30\0\1\u01ba\1\0\1\u01ba\1\0\1\u01ba\5\0\1\u01ba"+
"\3\0\2\u01ba\1\0\4\u01ba\3\0\1\u01ba\1\0\1\u01ba"+
"\5\0\1\u01ba\73\0\1\u01bb\105\0\1\u01bc\107\0\1\u01bd"+
"\121\0\1\u01be\127\0\1\u01bf\113\0\1\u01c0\101\0\1\u01c1"+
"\112\0\1\u01c2\136\0\1\u01c3\106\0\1\u01c4\113\0\1\u01c5"+
"\111\0\1\u01c6\111\0\1\u01c7\115\0\1\u01c8\124\0\1\u01c9"+
"\110\0\1\u01ca\132\0\1\u01cb\120\0\1\u01cc\105\0\1\u01cd"+
"\104\0\1\u01ce\117\0\1\u01cf\121\0\1\u01d0\120\0\1\u01d1"+
"\120\0\1\u01d2\112\0\1\u01d3\106\0\1\u01d4\130\0\1\u01d5"+
"\110\0\1\u01d6\116\0\1\u01d7\113\0\1\u01d8\107\0\1\u01d9"+
"\151\0\1\55\115\0\1\u01da\71\0\1\u01db\106\0\1\u01dc"+
"\114\0\1\u01dd\115\0\1\u01de\56\0\26\u0181\1\u0144\1\u01df"+
"\114\u0181\1\u01e0\1\u01b5\1\u01b6\1\u01b7\1\265\1\u0181\1\265"+
"\61\u0181\4\u01b6\1\u01e1\7\u01b6\3\265\3\u01b6\1\265\4\u01b6"+
"\1\u01e2\1\u0181\65\u01b6\4\u01e3\1\u01e4\7\u01e3\3\265\3\u01e3"+
"\1\265\4\u01e3\1\u01e5\1\u01e3\1\265\64\u01e3\1\0\3\267"+
"\2\0\2\267\30\0\1\267\1\0\1\267\1\0\1\267"+
"\5\0\1\267\3\0\2\267\1\0\4\267\3\0\1\267"+
"\1\0\1\267\5\0\1\267\16\0\3\u01e6\2\0\2\u01e6"+
"\22\0\1\63\5\0\1\u01e6\1\0\1\u01e6\1\0\1\u01e6"+
"\5\0\1\u01e6\3\0\2\u01e6\1\0\4\u01e6\3\0\1\u01e6"+
"\1\0\1\u01e6\5\0\1\u01e6\55\0\1\u01e7\124\0\1\u01e8"+
"\115\0\1\u01e9\123\0\1\u01ea\100\0\1\u01eb\115\0\1\u01ec"+
"\127\0\1\u01ed\50\0\1\u01ee\163\0\1\u01ef\103\0\1\u01f0"+
"\110\0\1\u01f1\134\0\1\u01f2\103\0\1\u01f3\117\0\1\u01f4"+
"\124\0\1\u01f5\111\0\1\u01f6\60\0\1\u01f7\164\0\1\u01f8"+
"\110\0\1\u01f9\107\0\1\u01fa\117\0\1\u01fb\121\0\1\u01fc"+
"\111\0\1\u01fd\107\0\1\u01fe\106\0\1\u01ff\131\0\1\u0200"+
"\121\0\1\u0201\112\0\1\u01dd\143\0\1\u0202\60\0\1\u0203"+
"\55\0\26\265\1\u0181\1\u0105\66\265\26\110\1\u0104\1\u0181"+
"\1\u0204\1\u0205\64\110\14\u01b6\3\265\3\u01b6\1\265\4\u01b6"+
"\1\u01e2\72\u01b6\1\u01e1\7\u01b6\3\265\3\u01b6\1\265\3\u01b6"+
"\1\u0204\1\u01e2\1\u0181\65\u01b6\27\265\1\u0105\1\265\1\u0181"+
"\64\265\3\u01e3\1\u0206\1\u0207\1\u01e3\2\u0208\1\u01e3\1\u0209"+
"\2\u01e3\3\265\3\u01e3\1\265\4\u01e3\1\u01e5\31\u01e3\1\u0206"+
"\1\u01e3\1\u0208\1\u0206\31\u01e3\26\265\1\110\1\u0105\1\265"+
"\1\u0181\64\265\1\0\3\u020a\2\0\2\u020a\22\0\1\63"+
"\5\0\1\u020a\1\0\1\u020a\1\0\1\u020a\5\0\1\u020a"+
"\3\0\2\u020a\1\0\4\u020a\3\0\1\u020a\1\0\1\u020a"+
"\5\0\1\u020a\56\0\1\u020b\112\0\1\u020c\123\0\1\u020d"+
"\121\0\1\u020e\105\0\1\u020f\113\0\1\u0210\123\0\1\u0211"+
"\110\0\1\u0212\125\0\1\u0213\126\0\1\u0214\110\0\1\u0215"+
"\103\0\1\u0216\115\0\1\u0217\115\0\1\u0218\124\0\1\u0219"+
"\114\0\1\u021a\112\0\1\u021b\150\0\1\245\65\0\1\u021c"+
"\46\0\4\u0204\1\u021d\7\u0204\3\110\3\u0204\1\110\3\u0204"+
"\1\u021e\2\u0204\1\u021f\1\262\1\u0204\1\262\61\u0204\4\u0220"+
"\1\u0221\7\u0220\3\110\3\u0220\1\110\3\u0220\1\261\1\u0220"+
"\1\u0222\1\263\1\267\1\u0220\1\267\61\u0220\3\265\1\u01e3"+
"\2\265\2\u01e3\17\265\1\u0105\1\265\1\u0181\27\265\1\u01e3"+
"\1\265\2\u01e3\35\265\1\u0223\4\265\1\u0224\15\265\1\u0105"+
"\1\265\1\u0181\67\265\1\u0206\2\265\2\u0206\17\265\1\u0105"+
"\1\265\1\u0181\27\265\1\u0206\1\265\2\u0206\32\265\3\u0225"+
"\2\265\2\u0225\17\265\1\u0105\1\265\1\u0181\6\265\1\u0225"+
"\1\265\1\u0225\1\265\1\u0225\5\265\1\u0225\3\265\2\u0225"+
"\1\265\4\u0225\3\265\1\u0225\1\265\1\u0225\5\265\1\u0225"+
"\15\265\1\0\3\u0226\2\0\2\u0226\22\0\1\63\5\0"+
"\1\u0226\1\0\1\u0226\1\0\1\u0226\5\0\1\u0226\3\0"+
"\2\u0226\1\0\4\u0226\3\0\1\u0226\1\0\1\u0226\5\0"+
"\1\u0226\65\0\1\u0227\104\0\1\u0228\131\0\1\u0229\76\0"+
"\1\u022a\120\0\1\u022b\117\0\1\u022c\112\0\1\u022d\126\0"+
"\1\u022e\116\0\1\u022f\77\0\1\u0230\124\0\1\u0231\127\0"+
"\1\u0232\120\0\1\u0102\16\0\1\u0202\20\0\14\u0204\3\110"+
"\3\u0204\1\110\3\u0204\1\u021e\1\u0204\1\262\1\u021f\1\262"+
"\1\u0204\1\262\65\u0204\1\u021d\7\u0204\3\110\3\u0204\1\110"+
"\3\u0204\1\264\1\u01b6\1\110\65\u0204\4\u0222\1\u0233\7\u0222"+
"\3\0\3\u0222\1\0\5\u0222\1\u0220\1\262\64\u0222\26\110"+
"\1\261\1\110\1\262\1\u0205\1\0\1\110\1\0\61\110"+
"\3\u0220\1\u0234\1\u0235\1\u0220\2\u0236\1\u0220\1\u0237\2\u0220"+
"\3\110\3\u0220\1\110\3\u0220\1\261\1\u0220\1\u0222\1\u0238"+
"\1\267\1\u0220\1\267\24\u0220\1\u0234\1\u0220\1\u0236\1\u0234"+
"\31\u0220\4\262\1\266\7\262\3\0\3\262\1\0\5\262"+
"\1\110\1\u0204\64\262\4\265\1\u0223\4\265\1\u0224\15\265"+
"\1\u0105\67\265\3\u0225\2\265\2\u0225\17\265\1\u0105\10\265"+
"\1\u0225\1\265\1\u0225\1\265\1\u0225\5\265\1\u0225\3\265"+
"\2\u0225\1\265\4\u0225\3\265\1\u0225\1\265\1\u0225\5\265"+
"\1\u0225\16\265\3\u0239\2\265\2\u0239\17\265\1\u0105\10\265"+
"\1\u0239\1\265\1\u0239\1\265\1\u0239\5\265\1\u0239\3\265"+
"\2\u0239\1\265\4\u0239\3\265\1\u0239\1\265\1\u0239\5\265"+
"\1\u0239\15\265\32\0\1\63\117\0\1\u023a\134\0\1\u023b"+
"\102\0\1\u023c\115\0\1\u023d\125\0\1\u023e\105\0\1\u023f"+
"\107\0\1\u0240\133\0\1\u0241\105\0\1\u01dd\55\0\3\u0222"+
"\1\u0242\1\u0243\1\u0222\2\u0244\1\u0222\1\u0245\2\u0222\3\0"+
"\3\u0222\1\0\36\u0222\1\u0242\1\u0222\1\u0244\1\u0242\31\u0222"+
"\3\110\1\u0220\2\110\2\u0220\16\110\1\261\1\110\1\262"+
"\1\u0205\1\0\1\110\1\0\24\110\1\u0220\1\110\2\u0220"+
"\35\110\1\u0246\4\110\1\u0247\14\110\1\261\1\110\1\262"+
"\1\u0205\1\0\1\110\1\0\64\110\1\u0234\2\110\2\u0234"+
"\16\110\1\261\1\110\1\262\1\u0205\1\0\1\110\1\0"+
"\24\110\1\u0234\1\110\2\u0234\32\110\3\u0248\2\110\2\u0248"+
"\16\110\1\261\1\110\1\262\1\u0205\1\0\1\110\1\0"+
"\3\110\1\u0248\1\110\1\u0248\1\110\1\u0248\5\110\1\u0248"+
"\3\110\2\u0248\1\110\4\u0248\3\110\1\u0248\1\110\1\u0248"+
"\5\110\1\u0248\15\110\4\267\1\270\7\267\3\0\3\267"+
"\1\0\6\267\1\110\64\267\1\265\3\u0249\2\265\2\u0249"+
"\17\265\1\u0105\10\265\1\u0249\1\265\1\u0249\1\265\1\u0249"+
"\5\265\1\u0249\3\265\2\u0249\1\265\4\u0249\3\265\1\u0249"+
"\1\265\1\u0249\5\265\1\u0249\15\265\34\0\1\u024a\113\0"+
"\1\u024b\63\0\3\262\1\u0222\1\266\1\262\2\u0222\4\262"+
"\3\0\3\262\1\0\5\262\1\110\1\u0204\27\262\1\u0222"+
"\1\262\2\u0222\35\262\1\u024c\4\262\1\u024d\2\262\3\0"+
"\3\262\1\0\5\262\1\110\1\u0204\67\262\1\u0242\1\266"+
"\1\262\2\u0242\4\262\3\0\3\262\1\0\5\262\1\110"+
"\1\u0204\27\262\1\u0242\1\262\2\u0242\32\262\3\u024e\1\266"+
"\1\262\2\u024e\4\262\3\0\3\262\1\0\5\262\1\110"+
"\1\u0204\6\262\1\u024e\1\262\1\u024e\1\262\1\u024e\5\262"+
"\1\u024e\3\262\2\u024e\1\262\4\u024e\3\262\1\u024e\1\262"+
"\1\u024e\5\262\1\u024e\15\262\4\110\1\u0246\4\110\1\u0247"+
"\14\110\1\261\1\110\1\262\1\263\1\0\1\110\1\0"+
"\62\110\3\u0248\2\110\2\u0248\16\110\1\261\1\110\1\262"+
"\1\263\1\0\1\110\1\0\3\110\1\u0248\1\110\1\u0248"+
"\1\110\1\u0248\5\110\1\u0248\3\110\2\u0248\1\110\4\u0248"+
"\3\110\1\u0248\1\110\1\u0248\5\110\1\u0248\16\110\3\u024f"+
"\2\110\2\u024f\16\110\1\261\1\110\1\262\1\263\1\0"+
"\1\110\1\0\3\110\1\u024f\1\110\1\u024f\1\110\1\u024f"+
"\5\110\1\u024f\3\110\2\u024f\1\110\4\u024f\3\110\1\u024f"+
"\1\110\1\u024f\5\110\1\u024f\15\110\1\265\3\u01e3\2\265"+
"\2\u01e3\17\265\1\u0105\10\265\1\u01e3\1\265\1\u01e3\1\265"+
"\1\u01e3\5\265\1\u01e3\3\265\2\u01e3\1\265\4\u01e3\3\265"+
"\1\u01e3\1\265\1\u01e3\5\265\1\u01e3\15\265\4\262\1\u0250"+
"\4\262\1\u024d\2\262\3\0\3\262\1\0\74\262\3\u024e"+
"\1\266\1\262\2\u024e\4\262\3\0\3\262\1\0\5\262"+
"\1\110\7\262\1\u024e\1\262\1\u024e\1\262\1\u024e\5\262"+
"\1\u024e\3\262\2\u024e\1\262\4\u024e\3\262\1\u024e\1\262"+
"\1\u024e\5\262\1\u024e\16\262\3\u0251\1\266\1\262\2\u0251"+
"\4\262\3\0\3\262\1\0\5\262\1\110\7\262\1\u0251"+
"\1\262\1\u0251\1\262\1\u0251\5\262\1\u0251\3\262\2\u0251"+
"\1\262\4\u0251\3\262\1\u0251\1\262\1\u0251\5\262\1\u0251"+
"\15\262\1\110\3\u0252\2\110\2\u0252\16\110\1\261\1\110"+
"\1\262\1\263\1\0\1\110\1\0\3\110\1\u0252\1\110"+
"\1\u0252\1\110\1\u0252\5\110\1\u0252\3\110\2\u0252\1\110"+
"\4\u0252\3\110\1\u0252\1\110\1\u0252\5\110\1\u0252\15\110"+
"\4\262\1\u024c\4\262\1\u024d\2\262\3\0\3\262\1\0"+
"\5\262\1\110\66\262\3\u0253\1\266\1\262\2\u0253\4\262"+
"\3\0\3\262\1\0\5\262\1\110\7\262\1\u0253\1\262"+
"\1\u0253\1\262\1\u0253\5\262\1\u0253\3\262\2\u0253\1\262"+
"\4\u0253\3\262\1\u0253\1\262\1\u0253\5\262\1\u0253\15\262"+
"\1\110\3\u0220\2\110\2\u0220\16\110\1\261\1\110\1\262"+
"\1\263\1\0\1\110\1\0\3\110\1\u0220\1\110\1\u0220"+
"\1\110\1\u0220\5\110\1\u0220\3\110\2\u0220\1\110\4\u0220"+
"\3\110\1\u0220\1\110\1\u0220\5\110\1\u0220\15\110\1\262"+
"\3\u0222\1\266\1\262\2\u0222\4\262\3\0\3\262\1\0"+
"\5\262\1\110\7\262\1\u0222\1\262\1\u0222\1\262\1\u0222"+
"\5\262\1\u0222\3\262\2\u0222\1\262\4\u0222\3\262\1\u0222"+
"\1\262\1\u0222\5\262\1\u0222\15\262";
private static int [] zzUnpackTrans() {
int [] result = new int[36426];
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;
}
/* 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;
/* error messages for the codes above */
private static final String[] ZZ_ERROR_MSG = {
"Unknown internal scanner error",
"Error: could not match input",
"Error: pushback value was too large"
};
/**
* ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
*/
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\1\1\3\0\1\1\15\0\1\1\5\0\2\1\1\11"+
"\2\1\1\11\3\1\1\11\5\1\2\11\3\1\1\11"+
"\1\1\1\11\3\1\1\11\5\1\2\11\3\1\11\11"+
"\5\1\2\11\2\1\1\11\1\1\1\11\5\1\1\11"+
"\2\1\1\11\4\1\3\11\1\1\2\11\3\1\1\11"+
"\2\1\1\11\1\1\1\11\2\1\1\11\1\1\1\11"+
"\2\1\1\0\1\11\1\0\2\11\2\0\1\11\2\0"+
"\1\11\1\0\1\11\20\0\1\1\1\11\1\1\1\0"+
"\1\11\3\0\1\11\3\0\1\11\5\1\1\11\1\1"+
"\1\11\1\0\1\11\1\1\5\0\1\11\3\0\1\1"+
"\4\0\16\1\1\11\1\0\2\11\1\1\1\11\1\1"+
"\2\11\2\1\2\0\1\1\45\0\1\11\3\0\1\11"+
"\5\0\1\1\7\0\1\11\1\0\1\11\1\1\1\0"+
"\2\11\2\1\3\0\1\1\17\0\1\1\33\0\1\1"+
"\5\0\1\11\1\0\3\1\10\0\1\11\1\0\1\11"+
"\4\0\1\11\3\0\1\11\10\0\1\11\5\0\2\11"+
"\4\0\1\11\11\0\3\1\2\0\2\1\1\0\1\11"+
"\14\0\1\11\2\0\1\11\6\0\1\11\3\0\1\11"+
"\1\0\1\11\1\0\1\1\1\11\13\0\1\1\4\0"+
"\1\11\20\0\1\11\2\0\1\11\3\0\2\11\1\1"+
"\1\11\4\0\1\11\5\0\1\1\6\0\1\11\1\0"+
"\3\11\2\0\2\11\1\0\1\11\6\0\1\11\3\0"+
"\1\11\2\0\1\11\4\0\2\1\10\0\1\1\2\11"+
"\1\0\1\11\1\0\2\11\7\0\1\1\2\0\2\1"+
"\5\0\1\1\2\0\1\11\3\0\1\11\1\0\1\11"+
"\3\0\4\1\2\0\4\11\1\1\2\11\5\0\3\1"+
"\1\0\2\11\3\0\1\1\2\0\1\1\1\0";
private static int [] zzUnpackAttribute() {
int [] result = new int[595];
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;
/** 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 CharSequence zzBuffer = "";
/** 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;
/**
* 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;
/** For the backwards DFA of general lookahead statements */
private boolean [] zzFin = new boolean [ZZ_BUFFERSIZE+1];
/* user code: */
int nextState;
boolean macroDefinition;
int braceCount;
int bracketCount;
int commentCount;
public _JFlexLexer() {
this((java.io.Reader)null);
}
/**
* Creates a new scanner
*
* @param in the java.io.Reader to read input from.
*/
public _JFlexLexer(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) {
int size = 0;
for (int i = 0, length = packed.length(); i < length; i += 2) {
size += packed.charAt(i);
}
char[] map = new char[size];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < packed.length()) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
}
return map;
}
public final int getTokenStart() {
return zzStartRead;
}
public final int getTokenEnd() {
return getTokenStart() + yylength();
}
public void reset(CharSequence buffer, int start, int end, int initialState) {
zzBuffer = buffer;
zzCurrentPos = zzMarkedPos = zzStartRead = start;
zzAtEOF = false;
zzAtBOL = true;
zzEndRead = end;
yybegin(initialState);
}
/**
* Refills the input buffer.
*
* @return <code>false</code>, iff there was new input.
*
* @exception java.io.IOException if any I/O-Error occurs
*/
private boolean zzRefill() throws java.io.IOException {
return true;
}
/**
* 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 CharSequence yytext() {
return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
}
/**
* Returns the character at position <tt>pos</tt> 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.charAt(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 IElementType advance() throws java.io.IOException {
int zzInput;
int zzAction;
// cached fields:
int zzCurrentPosL;
int zzMarkedPosL;
int zzEndReadL = zzEndRead;
CharSequence zzBufferL = zzBuffer;
int [] zzTransL = ZZ_TRANS;
int [] zzRowMapL = ZZ_ROWMAP;
int [] zzAttrL = ZZ_ATTRIBUTE;
while (true) {
zzMarkedPosL = zzMarkedPos;
if (zzMarkedPosL > zzStartRead) {
switch (zzBufferL.charAt(zzMarkedPosL-1)) {
case '\n':
case '\u000B':
case '\u000C':
case '\u0085':
case '\u2028':
case '\u2029':
zzAtBOL = true;
break;
case '\r':
if (zzMarkedPosL < zzEndReadL)
zzAtBOL = zzBufferL.charAt(zzMarkedPosL) != '\n';
else if (zzAtEOF)
zzAtBOL = false;
else {
boolean eof = zzRefill();
zzMarkedPosL = zzMarkedPos;
zzEndReadL = zzEndRead;
zzBufferL = zzBuffer;
if (eof)
zzAtBOL = false;
else
zzAtBOL = zzBufferL.charAt(zzMarkedPosL) != '\n';
}
break;
default:
zzAtBOL = false;
}
}
zzAction = -1;
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
if (zzAtBOL)
zzState = ZZ_LEXSTATE[zzLexicalState+1];
else
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] + ZZ_CMAP(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;
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
switch (zzLexicalState) {
case COMMENT: {
yybegin(REPORT_UNCLOSED); return FLEX_BLOCK_COMMENT;
}
case 596: break;
case CODE: {
yybegin(REPORT_UNCLOSED); return FLEX_RAW;
}
case 597: break;
case STATES: {
nextState=REGEXPSTART; yybegin(REPORT_UNCLOSED);
}
case 598: break;
case ACTION_CODE: {
nextState=REGEXPSTART; yybegin(REPORT_UNCLOSED); return FLEX_RAW;
}
case 599: break;
case STRING_CONTENT: {
yybegin(REPORT_UNCLOSED); return FLEX_STRING;
}
case 600: break;
case CHARCLASS: {
nextState=REGEXP; yybegin(REPORT_UNCLOSED); return FLEX_BRACK2;
}
case 601: break;
default:
return null;
}
}
else {
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 1:
{ return FLEX_RAW;
}
case 137: break;
case 2:
{ return FLEX_LINE_COMMENT;
}
case 138: break;
case 3:
{ return BAD_CHARACTER;
}
case 139: break;
case 4:
{
}
case 140: break;
case 5:
{ return FLEX_NUMBER;
}
case 141: break;
case 6:
{ return FLEX_ID;
}
case 142: break;
case 7:
{ return FLEX_DOT;
}
case 143: break;
case 8:
{ return WHITE_SPACE;
}
case 144: break;
case 9:
{ return FLEX_NEWLINE;
}
case 145: break;
case 10:
{ return FLEX_COMMA;
}
case 146: break;
case 11:
{ yybegin(REGEXP); return FLEX_EQ;
}
case 147: break;
case 12:
{ yypushback(yylength()); yybegin(REGEXP);
}
case 148: break;
case 13:
{ return FLEX_BRACE2;
}
case 149: break;
case 14:
{ yybegin(STATES); return FLEX_ANGLE1;
}
case 150: break;
case 15:
{ return FLEX_CHAR;
}
case 151: break;
case 16:
{ yypushback(yylength()); if (macroDefinition) yybegin(MACROS); else yybegin(REGEXPSTART);
}
case 152: break;
case 17:
{ return FLEX_FSLASH;
}
case 153: break;
case 18:
{ return FLEX_STAR;
}
case 154: break;
case 19:
{ nextState=REGEXP; yybegin(STRING_CONTENT);
}
case 155: break;
case 20:
{ if (macroDefinition) return FLEX_CHAR; else yybegin(ACTION_CODE); return FLEX_BRACE1;
}
case 156: break;
case 21:
{ yybegin(CHARCLASS); return FLEX_BRACK1;
}
case 157: break;
case 22:
{ if (macroDefinition) yybegin(EXPRBAR); return FLEX_BAR;
}
case 158: break;
case 23:
{ return FLEX_HAT;
}
case 159: break;
case 24:
{ return FLEX_DOLLAR;
}
case 160: break;
case 25:
{ return FLEX_BANG;
}
case 161: break;
case 26:
{ return FLEX_TILDE;
}
case 162: break;
case 27:
{ return FLEX_PAREN1;
}
case 163: break;
case 28:
{ return FLEX_PAREN2;
}
case 164: break;
case 29:
{ return FLEX_PLUS;
}
case 165: break;
case 30:
{ return FLEX_QUESTION;
}
case 166: break;
case 31:
{ nextState=REGEXP; yybegin(SKIP_WSNL); return FLEX_ANGLE2;
}
case 167: break;
case 32:
{ if (braceCount > 0) braceCount--; else { yypushback(1); yybegin(REGEXPSTART); return FLEX_RAW; }
}
case 168: break;
case 33:
{ braceCount++;
}
case 169: break;
case 34:
{ yypushback(yylength()); yybegin(nextState); return FLEX_STRING;
}
case 170: break;
case 35:
{ yybegin(nextState); return FLEX_STRING;
}
case 171: break;
case 36:
{ yypushback(yylength()); yybegin(CLASSCHARS);
}
case 172: break;
case 37:
{ bracketCount=0; yypushback(yylength()); nextState=REGEXP; yybegin(REPORT_UNCLOSED);
}
case 173: break;
case 38:
{ nextState=CHARCLASS; yybegin(STRING_CONTENT);
}
case 174: break;
case 39:
{ bracketCount++; return FLEX_BRACK1;
}
case 175: break;
case 40:
{ if (bracketCount > 0) bracketCount--; else yybegin(REGEXP); return FLEX_BRACK2;
}
case 176: break;
case 41:
{ yypushback(yylength()); yybegin(nextState);
}
case 177: break;
case 42:
{ yybegin(nextState); return FLEX_BRACE2;
}
case 178: break;
case 43:
{ yypushback(yylength()); yybegin(CHARCLASS); return FLEX_CHAR;
}
case 179: break;
case 44:
{ yypushback(yylength()); yybegin(CHARCLASS);
}
case 180: break;
case 45:
{ yybegin(CHARCLASS); return FLEX_CHAR;
}
case 181: break;
case 46:
{ return FLEX_DASH;
}
case 182: break;
case 47:
{ yybegin(REGEXP); return FLEX_BRACE2;
}
case 183: break;
case 48:
{ yypushback(yylength()); yybegin(REPORT_UNCLOSED); return FLEX_STRING;
}
case 184: break;
case 49:
{ yybegin(STRING_CONTENT);
}
case 185: break;
case 50:
{ yybegin(nextState); return FLEX_NEWLINE;
}
case 186: break;
case 51:
{ yypushback(yylength()); yybegin(nextState); return FLEX_UNCLOSED;
}
case 187: break;
case 52:
{ yybegin(REGEXPSTART); return FLEX_BRACE1;
}
case 188: break;
case 53:
{ macroDefinition=true; nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_TWO_PERCS;
}
case 189: break;
case 54:
{ commentCount++;
}
case 190: break;
case 55:
{ if (commentCount > 0) commentCount--; else { yybegin(nextState); return FLEX_BLOCK_COMMENT; }
}
case 191: break;
case 56:
{ nextState=MACROS; yybegin(COMMENT);
}
case 192: break;
case 57:
{ return FLEX_STRING;
}
case 193: break;
case 58:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_CODE1;
}
case 194: break;
case 59:
{ return FLEX_OPT_XSTATE;
}
case 195: break;
case 60:
{ macroDefinition=false; nextState=REGEXPSTART; yybegin(SKIP_TOEOL); return FLEX_TWO_PERCS;
}
case 196: break;
case 61:
{ return FLEX_OPT_STATE;
}
case 197: break;
case 62:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_CODE2;
}
case 198: break;
case 63:
{ nextState=REGEXPSTART; yybegin(COMMENT);
}
case 199: break;
case 64:
{ return FLEX_CHAR_ESC;
}
case 200: break;
case 65:
{ return FLEX_CHAR_CLASS;
}
case 201: break;
case 66:
// general lookahead, find correct zzMarkedPos
{ int zzFState = 22;
int zzFPos = zzStartRead;
if (zzFin.length <= zzBufferL.length()) { zzFin = new boolean[zzBufferL.length()+1]; }
boolean zzFinL[] = zzFin;
while (zzFState != -1 && zzFPos < zzMarkedPos) {
zzFinL[zzFPos] = ((zzAttrL[zzFState] & 1) == 1);
zzInput = Character.codePointAt(zzBufferL, zzFPos/*, zzMarkedPos*/);
zzFPos += Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
}
if (zzFState != -1) { zzFinL[zzFPos++] = ((zzAttrL[zzFState] & 1) == 1); }
while (zzFPos <= zzMarkedPos) {
zzFinL[zzFPos++] = false;
}
zzFState = 23;
zzFPos = zzMarkedPos;
while (!zzFinL[zzFPos] || (zzAttrL[zzFState] & 1) != 1) {
zzInput = Character.codePointBefore(zzBufferL, zzFPos/*, zzStartRead*/);
zzFPos -= Character.charCount(zzInput);
zzFState = zzTransL[ zzRowMapL[zzFState] + ZZ_CMAP(zzInput) ];
};
zzMarkedPos = zzFPos;
}
{ yypushback(yylength()); nextState=REGEXP; yybegin(SKIP_WSNL);
}
case 202: break;
case 67:
{ nextState=REGEXP; yybegin(COMMENT);
}
case 203: break;
case 68:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ nextState=REGEXP; yybegin(REPEATEXP); return FLEX_BRACE1;
}
case 204: break;
case 69:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ nextState=REGEXPSTART0; yybegin(SKIP_WSNL); return FLEX_ANGLE2;
}
case 205: break;
case 70:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ yybegin(CHARRANGE); return FLEX_CHAR;
}
case 206: break;
case 71:
{ return FLEX_BARBAR;
}
case 207: break;
case 72:
{ return FLEX_TILDETILDE;
}
case 208: break;
case 73:
{ return FLEX_DASHDASH;
}
case 209: break;
case 74:
{ return FLEX_AMPAMP;
}
case 210: break;
case 75:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ yypushback(yylength()); yybegin(CHARCLASS); return FLEX_CHAR;
}
case 211: break;
case 76:
{ yybegin(CHARCLASS); return FLEX_CHAR_ESC;
}
case 212: break;
case 77:
{ yypushback(1); yybegin(CHARCLASS); return FLEX_CHAR;
}
case 213: break;
case 78:
{ return FLEX_VERSION;
}
case 214: break;
case 79:
{ yybegin(REGEXP_CODEPOINT);
}
case 215: break;
case 80:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ nextState=REGEXP; yybegin(MACROUSE); return FLEX_BRACE1;
}
case 216: break;
case 81:
{ yybegin(STRING_CODEPOINT);
}
case 217: break;
case 82:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ return FLEX_CHAR;
}
case 218: break;
case 83:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2);
{ yybegin(CHARRANGE); return FLEX_CHAR_ESC;
}
case 219: break;
case 84:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ nextState=CHARCLASS; yybegin(MACROUSE); return FLEX_BRACE1;
}
case 220: break;
case 85:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 1);
{ yybegin(CHARCLASS); return FLEX_CHAR;
}
case 221: break;
case 86:
{ return FLEX_OPT_INT;
}
case 222: break;
case 87:
{ return FLEX_OPT_CUP;
}
case 223: break;
case 88:
// lookahead expression with fixed base length
zzMarkedPos = Character.offsetByCodePoints
(zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzStartRead, 2);
{ return FLEX_CHAR_ESC;
}
case 224: break;
case 89:
{ return FLEX_OPT_TYPE;
}
case 225: break;
case 90:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_EOF1;
}
case 226: break;
case 91:
{ return FLEX_OPT_FULL;
}
case 227: break;
case 92:
{ return FLEX_OPT_LINE;
}
case 228: break;
case 93:
{ return FLEX_OPT_CHAR;
}
case 229: break;
case 94:
{ return FLEX_OPT_7BIT;
}
case 230: break;
case 95:
{ return FLEX_OPT_8BIT;
}
case 231: break;
case 96:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_EOF2;
}
case 232: break;
case 97:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_INIT1;
}
case 233: break;
case 98:
{ return FLEX_OPT_FINAL;
}
case 234: break;
case 99:
{ return FLEX_OPT_YYEOF;
}
case 235: break;
case 100:
{ return FLEX_OPT_CLASS;
}
case 236: break;
case 101:
{ return FLEX_OPT_DEBUG;
}
case 237: break;
case 102:
{ return FLEX_OPT16BIT;
}
case 238: break;
case 103:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_INIT2;
}
case 239: break;
case 104:
{ return FLEX_OPT_CUPSYM;
}
case 240: break;
case 105:
{ return FLEX_OPT_COLUMN;
}
case 241: break;
case 106:
{ return FLEX_OPT_PUBLIC;
}
case 242: break;
case 107:
{ return FLEX_OPT_BUFFER;
}
case 243: break;
case 108:
{ return FLEX_EOF;
}
case 244: break;
case 109:
{ return FLEX_OPT_UNICODE;
}
case 245: break;
case 110:
{ return FLEX_OPT_INTEGER;
}
case 246: break;
case 111:
{ return FLEX_OPT_INTWRAP;
}
case 247: break;
case 112:
{ return FLEX_OPT_INCLUDE;
}
case 248: break;
case 113:
{ return FLEX_OPT_NOTUNIX;
}
case 249: break;
case 114:
{ return FLEX_OPT_EXTENDS;
}
case 250: break;
case 115:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_EOFVAL1;
}
case 251: break;
case 116:
{ return FLEX_OPT_CTORARG;
}
case 252: break;
case 117:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_EOFVAL2;
}
case 253: break;
case 118:
{ return FLEX_OPT_EOFTHROW;
}
case 254: break;
case 119:
{ return FLEX_OPT_EOFCLOSE;
}
case 255: break;
case 120:
{ return FLEX_OPT_FUNCTION;
}
case 256: break;
case 121:
{ return FLEX_OPT_ABSTRACT;
}
case 257: break;
case 122:
{ return FLEX_OPT_CUPDEBUG;
}
case 258: break;
case 123:
{ return FLEX_OPT_CASELESS;
}
case 259: break;
case 124:
{ return FLEX_OPT_INITTHROW;
}
case 260: break;
case 125:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_EOFTHROW1;
}
case 261: break;
case 126:
{ return FLEX_OPT_SCANERROR;
}
case 262: break;
case 127:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_EOFTHROW2;
}
case 263: break;
case 128:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_INITTHROW1;
}
case 264: break;
case 129:
{ return FLEX_OPT_IMPLEMENTS;
}
case 265: break;
case 130:
{ return FLEX_OPT_IGNORECASE;
}
case 266: break;
case 131:
{ return FLEX_OPT_APIPRIVATE;
}
case 267: break;
case 132:
{ return FLEX_OPT_YYLEXTHROW;
}
case 268: break;
case 133:
{ return FLEX_OPT_STANDALONE;
}
case 269: break;
case 134:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_INITTHROW2;
}
case 270: break;
case 135:
{ nextState=CODE; yybegin(SKIP_TOEOL); return FLEX_OPT_YYLEXTHROW1;
}
case 271: break;
case 136:
{ nextState=MACROS; yybegin(SKIP_TOEOL); return FLEX_OPT_YYLEXTHROW2;
}
case 272: break;
default:
zzScanError(ZZ_NO_MATCH);
}
}
}
}
}