/* The following code was generated by JFlex 1.4.1 on 4/18/12 12:09 AM */
/*******************************************************************************
* Copyright (c) 2006 Zend Corporation and IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Zend and IBM - Initial implementation
*******************************************************************************/
package org2.eclipse.php.internal.core.documentModel.parser.php54;
import org2.eclipse.php.internal.core.util.collections.IntHashtable;
/**
* This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.1
* on 4/18/12 12:09 AM from the specification file
* <tt>highlighting_scanner.jflex</tt>
*/
@SuppressWarnings("nls")
public class PhpLexer extends org2.eclipse.php.internal.core.documentModel.parser.AbstractPhpLexer {
/** 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 ST_PHP_LINE_COMMENT = 12;
public static final int ST_PHP_NOWDOC = 6;
public static final int ST_PHP_DOUBLE_QUOTES = 2;
public static final int ST_PHP_COMMENT = 10;
public static final int ST_PHP_BACKQUOTE = 3;
public static final int ST_PHP_END_NOWDOC = 14;
public static final int ST_PHP_DOC_COMMENT = 11;
public static final int ST_PHP_END_HEREDOC = 7;
public static final int ST_PHP_VAR_OFFSET = 9;
public static final int YYINITIAL = 0;
public static final int ST_PHP_IN_SCRIPTING = 1;
public static final int ST_PHP_LOOKING_FOR_PROPERTY = 8;
public static final int ST_PHP_HEREDOC = 5;
public static final int ST_PHP_HIGHLIGHTING_ERROR = 13;
public static final int ST_PHP_QUOTES_AFTER_VARIABLE = 4;
/**
* Translates characters to character classes
*/
private static final String ZZ_CMAP_PACKED =
"\11\0\1\14\1\13\2\0\1\17\22\0\1\14\1\30\1\21\1\75"+
"\1\20\1\34\1\35\1\74\1\64\1\65\1\32\1\27\1\15\1\4"+
"\1\2\1\33\1\5\1\11\10\1\1\62\1\16\1\31\1\25\1\26"+
"\1\76\1\77\1\42\1\10\1\7\1\44\1\3\1\47\1\57\1\53"+
"\1\45\1\66\1\56\1\55\1\61\1\43\1\40\1\60\1\70\1\41"+
"\1\51\1\46\1\50\1\63\1\54\1\6\1\52\1\12\1\72\1\22"+
"\1\73\1\37\1\67\1\23\1\42\1\10\1\7\1\44\1\3\1\47"+
"\1\57\1\53\1\45\1\66\1\56\1\55\1\61\1\43\1\40\1\60"+
"\1\70\1\41\1\51\1\46\1\50\1\63\1\54\1\6\1\52\1\12"+
"\1\24\1\36\1\71\1\15\201\12\uff00\0";
/**
* 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();
private static final String ZZ_ACTION_PACKED_0 =
"\5\0\1\1\1\2\10\0\1\3\1\4\1\5\1\6"+
"\1\5\1\4\4\6\1\7\1\5\1\10\1\5\1\11"+
"\1\12\1\13\1\14\12\5\16\6\1\5\1\6\1\5"+
"\1\6\1\15\1\3\1\16\1\5\1\2\1\17\1\20"+
"\2\17\1\2\3\17\3\21\3\1\3\3\3\2\2\3"+
"\1\0\1\3\1\22\1\23\1\22\1\24\1\25\1\24"+
"\1\26\1\25\1\6\1\27\2\30\3\31\3\32\3\33"+
"\1\34\1\35\1\0\1\3\2\4\1\36\6\6\1\37"+
"\2\0\3\6\1\0\1\6\1\0\2\40\2\0\1\17"+
"\2\0\2\36\1\41\1\42\1\36\4\6\1\43\4\6"+
"\1\44\2\6\1\45\25\6\1\46\1\6\12\0\1\6"+
"\1\0\1\47\3\0\1\50\2\51\1\52\1\53\1\51"+
"\3\0\3\54\1\55\3\0\1\56\2\1\2\51\1\57"+
"\2\2\5\0\1\60\4\0\1\61\1\4\1\50\1\62"+
"\1\63\20\0\1\64\1\65\1\0\7\6\2\4\6\6"+
"\1\0\1\6\1\40\2\0\4\6\1\66\4\6\1\67"+
"\7\6\1\70\1\6\1\71\5\6\1\72\13\6\1\73"+
"\12\0\7\6\1\74\1\75\1\1\1\76\1\2\3\0"+
"\1\77\4\0\1\60\40\0\1\100\1\0\1\101\1\6"+
"\1\102\5\6\1\103\1\6\1\104\3\6\1\105\4\6"+
"\1\40\3\0\1\106\1\0\5\6\1\107\10\6\1\110"+
"\2\6\1\111\4\6\1\112\3\6\1\113\1\114\6\6"+
"\12\0\10\6\3\0\1\77\25\0\1\115\14\0\1\116"+
"\2\6\1\117\4\6\1\120\1\6\1\121\1\122\1\6"+
"\1\123\1\124\1\125\1\126\2\127\3\0\3\6\1\130"+
"\7\6\1\131\1\6\1\132\1\133\1\6\1\134\1\135"+
"\1\6\1\136\2\6\1\137\2\6\1\140\3\6\7\0"+
"\1\141\2\0\10\6\11\0\1\142\1\143\3\0\1\144"+
"\4\0\1\145\4\0\1\146\7\0\2\6\1\147\2\6"+
"\1\150\2\6\2\0\1\151\14\6\1\152\1\153\1\154"+
"\2\6\1\155\1\156\4\0\10\6\20\0\1\157\1\0"+
"\1\160\6\0\1\161\1\0\1\162\1\0\1\163\6\6"+
"\1\164\2\6\1\165\1\166\1\167\4\6\1\170\2\6"+
"\1\171\2\0\2\6\1\172\5\6\5\0\1\173\1\174"+
"\1\0\1\175\3\0\1\176\1\0\1\177\1\0\1\200"+
"\2\0\1\201\2\0\1\202\1\0\3\6\1\203\1\204"+
"\1\205\1\6\1\206\6\6\1\207\3\6\1\210\2\6"+
"\1\211\1\6\1\0\1\212\12\0\1\213\1\0\1\214"+
"\1\215\2\6\1\216\1\6\1\217\1\6\1\220\1\221"+
"\2\6\1\222\1\223\4\6\2\0\1\224\1\225\2\0"+
"\1\226\1\227\3\0\1\230\1\231\1\232\2\6\1\233"+
"\1\234\3\6\1\235\1\236\1\237\1\240\2\0\1\241"+
"\1\0\5\6\1\242\1\243\1\244\1\245\1\246\1\6"+
"\1\247\1\6\1\250\2\6\1\251";
private static int [] zzUnpackAction() {
int [] result = new int[821];
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\100\0\200\0\300\0\u0100\0\u0140\0\u0180\0\u01c0"+
"\0\u0200\0\u0240\0\u0280\0\u02c0\0\u0300\0\u0340\0\u0380\0\0"+
"\0\u03c0\0\u0400\0\u0440\0\u0480\0\u04c0\0\u0500\0\u0540\0\u0580"+
"\0\u05c0\0\u0600\0\0\0\0\0\u0640\0\u0680\0\0\0\0"+
"\0\0\0\u06c0\0\u0700\0\u0740\0\u0780\0\u07c0\0\u0800\0\u0840"+
"\0\u0880\0\u08c0\0\u0900\0\u0940\0\u0980\0\u09c0\0\u0a00\0\u0a40"+
"\0\u0a80\0\u0ac0\0\u0b00\0\u0b40\0\u0b80\0\u0bc0\0\u0c00\0\u0c40"+
"\0\u0c80\0\u0cc0\0\u0d00\0\u0d40\0\u0d80\0\0\0\u0dc0\0\0"+
"\0\u0e00\0\u0e40\0\u0e80\0\0\0\u0ec0\0\u0f00\0\u0f40\0\u0f80"+
"\0\u0fc0\0\u1000\0\0\0\u1040\0\u1080\0\u10c0\0\u1100\0\u1140"+
"\0\u1180\0\u11c0\0\u1200\0\u1240\0\u1280\0\u12c0\0\u1300\0\u1340"+
"\0\u1380\0\u1380\0\0\0\u13c0\0\u1400\0\u1440\0\0\0\u1480"+
"\0\0\0\u14c0\0\u1500\0\0\0\u1540\0\u1580\0\0\0\u15c0"+
"\0\u1600\0\u1640\0\0\0\u1680\0\0\0\u16c0\0\u0e00\0\0"+
"\0\u1700\0\u1740\0\u1780\0\u17c0\0\u1800\0\0\0\u1840\0\u1880"+
"\0\u18c0\0\u1900\0\u1940\0\u1980\0\0\0\u19c0\0\u1a00\0\u1a40"+
"\0\u1a80\0\u1ac0\0\u1b00\0\u1b40\0\u0dc0\0\u1b80\0\u1bc0\0\u0680"+
"\0\u1c00\0\0\0\u1c40\0\u1c80\0\u0800\0\u1cc0\0\u1d00\0\u1d40"+
"\0\u05c0\0\u1d80\0\u1dc0\0\u1e00\0\u1e40\0\u05c0\0\u1e80\0\u1ec0"+
"\0\u1f00\0\u1f40\0\u05c0\0\u1f80\0\u1fc0\0\u05c0\0\u2000\0\u2040"+
"\0\u2080\0\u20c0\0\u2100\0\u2140\0\u2180\0\u21c0\0\u2200\0\u2240"+
"\0\u2280\0\u22c0\0\u2300\0\u2340\0\u2380\0\u23c0\0\u2400\0\u2440"+
"\0\u2480\0\u24c0\0\u2500\0\0\0\u2540\0\u2580\0\u0d40\0\u25c0"+
"\0\u2600\0\u2640\0\u2680\0\u26c0\0\u2700\0\u2740\0\u2780\0\u27c0"+
"\0\u2800\0\u2840\0\u2880\0\u0ec0\0\u28c0\0\u2900\0\u2880\0\0"+
"\0\0\0\0\0\u28c0\0\u2940\0\u0fc0\0\u2980\0\u2940\0\0"+
"\0\u2980\0\0\0\u29c0\0\u11c0\0\u2a00\0\u1140\0\u2a40\0\u2a80"+
"\0\u29c0\0\u2a00\0\u12c0\0\u2ac0\0\u2b00\0\u2b40\0\u2b80\0\u2bc0"+
"\0\u2c00\0\u2c40\0\0\0\u2c80\0\u2cc0\0\u2d00\0\u1300\0\0"+
"\0\u2d40\0\u2d80\0\0\0\0\0\u2dc0\0\u2e00\0\u2e40\0\u2e80"+
"\0\u2ec0\0\u2f00\0\u2f40\0\u2f80\0\u2fc0\0\u3000\0\u3040\0\u3080"+
"\0\u30c0\0\u3100\0\u3140\0\u3180\0\0\0\u31c0\0\u3200\0\u3240"+
"\0\u3280\0\u32c0\0\u3300\0\u3340\0\u3380\0\u33c0\0\u19c0\0\u1a00"+
"\0\u3400\0\u3440\0\u3480\0\u34c0\0\u3500\0\u3540\0\u3580\0\u35c0"+
"\0\u3600\0\u3640\0\u3680\0\u36c0\0\u3700\0\u3740\0\u3780\0\u05c0"+
"\0\u37c0\0\u3800\0\u3840\0\u3880\0\u05c0\0\u38c0\0\u3900\0\u3940"+
"\0\u3980\0\u39c0\0\u3a00\0\u3a40\0\u05c0\0\u3a80\0\u3ac0\0\u3b00"+
"\0\u3b40\0\u3b80\0\u3bc0\0\u3c00\0\u05c0\0\u3c40\0\u3c80\0\u3cc0"+
"\0\u3d00\0\u3d40\0\u3d80\0\u3dc0\0\u3e00\0\u3e40\0\u3e80\0\u3ec0"+
"\0\u05c0\0\u3f00\0\u3f40\0\u3f80\0\u3fc0\0\u4000\0\u4040\0\u4080"+
"\0\u40c0\0\u4100\0\u4140\0\u4180\0\u41c0\0\u4200\0\u4240\0\u4280"+
"\0\u42c0\0\u4300\0\0\0\0\0\u4340\0\0\0\u4380\0\u43c0"+
"\0\u4400\0\u4440\0\u4400\0\u4480\0\u44c0\0\u4500\0\u1340\0\u4400"+
"\0\u4540\0\u4580\0\u45c0\0\u4600\0\u4640\0\u4680\0\u46c0\0\u4700"+
"\0\u4740\0\u4780\0\u47c0\0\u4800\0\u4840\0\u4880\0\u48c0\0\u4900"+
"\0\u4940\0\u4980\0\u49c0\0\u4a00\0\u4a40\0\u4a80\0\u4ac0\0\u4b00"+
"\0\u4b40\0\u4b80\0\u4bc0\0\u4c00\0\u4c40\0\u4c80\0\u4cc0\0\u4d00"+
"\0\0\0\u4d40\0\u05c0\0\u4d80\0\u05c0\0\u4dc0\0\u4e00\0\u4e40"+
"\0\u4e80\0\u4ec0\0\u4f00\0\u4f40\0\u05c0\0\u4f80\0\u4fc0\0\u5000"+
"\0\u05c0\0\u5040\0\u5080\0\u50c0\0\u5100\0\u5140\0\u5180\0\u51c0"+
"\0\u5200\0\u5240\0\u5280\0\u52c0\0\u5300\0\u5340\0\u5380\0\u53c0"+
"\0\u05c0\0\u5400\0\u5440\0\u5480\0\u54c0\0\u5500\0\u5540\0\u5580"+
"\0\u55c0\0\u05c0\0\u5600\0\u5640\0\u05c0\0\u5680\0\u56c0\0\u5700"+
"\0\u5740\0\u05c0\0\u5780\0\u57c0\0\u5800\0\u05c0\0\u05c0\0\u5840"+
"\0\u5880\0\u58c0\0\u5900\0\u5940\0\u5980\0\u59c0\0\u5a00\0\u5a40"+
"\0\u5a80\0\u5ac0\0\u5b00\0\u5b40\0\u5b80\0\u5bc0\0\u5c00\0\u5c40"+
"\0\u5c80\0\u5cc0\0\u5d00\0\u5d40\0\u5d80\0\u5dc0\0\u5e00\0\u5e40"+
"\0\u5e80\0\u5ec0\0\0\0\u5f00\0\u5f40\0\u5f80\0\u5fc0\0\u6000"+
"\0\u6040\0\u6080\0\u60c0\0\u6100\0\u6140\0\u6180\0\u61c0\0\u6200"+
"\0\u6240\0\u6280\0\u62c0\0\u6300\0\u6340\0\u6380\0\u63c0\0\u6400"+
"\0\0\0\u6440\0\u6480\0\u64c0\0\u6500\0\u6540\0\u6580\0\u65c0"+
"\0\u6600\0\u6640\0\u6680\0\u66c0\0\u6700\0\0\0\u6740\0\u6780"+
"\0\u05c0\0\u67c0\0\u6800\0\u6840\0\u6880\0\u05c0\0\u68c0\0\u05c0"+
"\0\u05c0\0\u6900\0\u05c0\0\u05c0\0\u05c0\0\u1b80\0\0\0\u6940"+
"\0\u6980\0\u69c0\0\u6a00\0\u6a40\0\u6a80\0\u6ac0\0\u05c0\0\u6b00"+
"\0\u6b40\0\u6b80\0\u6bc0\0\u6c00\0\u6c40\0\u6c80\0\u05c0\0\u6cc0"+
"\0\u05c0\0\u05c0\0\u6d00\0\u05c0\0\u05c0\0\u6d40\0\u05c0\0\u6d80"+
"\0\u6dc0\0\u05c0\0\u6e00\0\u6e40\0\u05c0\0\u6e80\0\u6ec0\0\u6f00"+
"\0\u6f40\0\u6f80\0\u6fc0\0\u7000\0\u7040\0\u7080\0\u70c0\0\0"+
"\0\u7100\0\u7140\0\u7180\0\u71c0\0\u7200\0\u7240\0\u7280\0\u72c0"+
"\0\u7300\0\u7340\0\u7380\0\u73c0\0\u7400\0\u7440\0\u7480\0\u74c0"+
"\0\u7500\0\u7540\0\u7580\0\u75c0\0\0\0\u7600\0\u7640\0\u7680"+
"\0\0\0\u76c0\0\u7700\0\u7740\0\u7780\0\0\0\u77c0\0\u7800"+
"\0\u7840\0\u7880\0\0\0\u78c0\0\u7900\0\u7940\0\u7980\0\u79c0"+
"\0\u7a00\0\u7a40\0\u7a80\0\u7ac0\0\u7b00\0\u7b40\0\u7b80\0\u05c0"+
"\0\u7bc0\0\u7c00\0\u7c40\0\u5240\0\u05c0\0\u7c80\0\u7cc0\0\u7d00"+
"\0\u7d40\0\u7d80\0\u7dc0\0\u7e00\0\u7e40\0\u7e80\0\u7ec0\0\u7f00"+
"\0\u7f40\0\u05c0\0\u05c0\0\u05c0\0\u7f80\0\u7fc0\0\u05c0\0\u05c0"+
"\0\u8000\0\u8040\0\u8080\0\u80c0\0\u8100\0\u8140\0\u8180\0\u81c0"+
"\0\u8200\0\u8240\0\u8280\0\u82c0\0\u8300\0\u8340\0\u8380\0\u83c0"+
"\0\u8400\0\u8440\0\u8480\0\u84c0\0\u8500\0\u8540\0\u8580\0\u85c0"+
"\0\u8600\0\u8640\0\u8680\0\u86c0\0\0\0\u8700\0\0\0\u8740"+
"\0\u8780\0\u87c0\0\u8800\0\u8840\0\u8880\0\0\0\u88c0\0\0"+
"\0\u8900\0\u05c0\0\u8940\0\u8980\0\u89c0\0\u8a00\0\u8a40\0\u8a80"+
"\0\u8ac0\0\u8b00\0\u8b40\0\u05c0\0\u05c0\0\u8b80\0\u8bc0\0\u8c00"+
"\0\u8c40\0\u8c80\0\u05c0\0\u8cc0\0\u8d00\0\u05c0\0\u8d40\0\u8d80"+
"\0\u8dc0\0\u8e00\0\u05c0\0\u8e40\0\u8e80\0\u8ec0\0\u8f00\0\u8f40"+
"\0\u8f80\0\u8fc0\0\u9000\0\u9040\0\u9080\0\0\0\0\0\u90c0"+
"\0\0\0\u9100\0\u9140\0\u9180\0\0\0\u91c0\0\0\0\u9200"+
"\0\u9240\0\u9280\0\u92c0\0\0\0\u9300\0\u9340\0\0\0\u9380"+
"\0\u93c0\0\u9400\0\u9440\0\u05c0\0\u05c0\0\u05c0\0\u9480\0\u05c0"+
"\0\u94c0\0\u9500\0\u9540\0\u9580\0\u95c0\0\u9600\0\u05c0\0\u9640"+
"\0\u9680\0\u96c0\0\u05c0\0\u9700\0\u9740\0\u05c0\0\u9780\0\u97c0"+
"\0\0\0\u9800\0\u9840\0\u9880\0\u98c0\0\u9900\0\u9940\0\u9980"+
"\0\u99c0\0\u9a00\0\u9a40\0\0\0\u9a80\0\0\0\0\0\u9ac0"+
"\0\u9b00\0\u05c0\0\u9b40\0\u05c0\0\u9b80\0\u05c0\0\u05c0\0\u9bc0"+
"\0\u9c00\0\u05c0\0\u05c0\0\u9c40\0\u9c80\0\u9cc0\0\u9d00\0\u9d40"+
"\0\u9d80\0\0\0\0\0\u9dc0\0\u9e00\0\0\0\0\0\u9e40"+
"\0\u9e80\0\u9ec0\0\0\0\u05c0\0\u05c0\0\u9f00\0\u9f40\0\u05c0"+
"\0\u05c0\0\u9f80\0\u9fc0\0\ua000\0\u05c0\0\0\0\0\0\0"+
"\0\ua040\0\ua080\0\0\0\ua0c0\0\ua100\0\ua140\0\ua180\0\ua1c0"+
"\0\ua200\0\0\0\0\0\0\0\u05c0\0\u05c0\0\ua240\0\u05c0"+
"\0\ua280\0\u05c0\0\ua2c0\0\ua300\0\u05c0";
private static int [] zzUnpackRowMap() {
int [] result = new int[821];
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 =
"\100\0\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+
"\1\27\1\30\1\21\1\31\2\32\1\33\1\34\1\32"+
"\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44"+
"\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\47"+
"\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+
"\1\64\1\65\2\31\1\66\1\67\1\31\1\70\1\71"+
"\1\31\1\72\1\73\1\74\1\33\1\31\1\75\1\31"+
"\1\76\2\33\1\77\1\100\1\101\1\33\20\102\1\103"+
"\1\104\1\105\1\102\1\106\53\102\20\107\1\110\1\107"+
"\1\111\1\104\1\112\53\107\4\113\1\114\17\113\1\115"+
"\53\113\3\116\1\117\2\116\3\117\1\116\1\117\1\120"+
"\3\116\1\120\1\121\1\116\1\122\1\116\1\123\13\116"+
"\22\117\1\116\1\117\2\116\3\117\7\116\3\124\1\125"+
"\2\124\3\125\1\124\1\125\1\126\3\124\1\126\20\124"+
"\22\125\1\124\1\125\2\124\3\125\7\124\3\127\1\130"+
"\2\127\3\130\1\127\1\130\1\131\3\127\1\132\20\127"+
"\22\130\1\127\1\130\2\127\3\130\7\127\3\133\1\134"+
"\1\135\1\133\3\134\1\133\1\134\2\32\2\133\1\32"+
"\20\133\22\134\1\133\1\134\2\133\3\134\7\133\1\20"+
"\1\136\1\137\1\31\1\137\1\140\3\31\1\136\1\31"+
"\2\141\2\137\1\141\1\142\1\137\1\141\15\137\3\31"+
"\1\143\16\31\1\137\1\31\2\137\3\31\1\137\1\33"+
"\1\144\2\141\2\137\32\145\1\146\45\145\32\147\1\150"+
"\44\147\1\151\13\152\1\153\3\152\1\154\6\152\1\155"+
"\5\152\1\156\41\152\1\157\1\152\13\160\2\161\2\160"+
"\1\161\60\160\13\20\1\162\3\20\1\163\60\20\1\0"+
"\1\21\1\164\1\165\1\0\1\21\3\0\1\21\67\0"+
"\1\164\3\0\1\164\3\0\1\164\13\0\1\166\53\0"+
"\1\31\1\0\1\31\1\0\1\31\1\167\1\170\3\31"+
"\25\0\3\31\1\171\11\31\1\172\3\31\1\173\1\0"+
"\1\174\2\0\3\31\13\0\1\166\20\0\1\166\1\175"+
"\52\0\1\21\1\164\1\165\1\0\1\21\1\176\1\0"+
"\1\177\1\21\67\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\54\21\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\1\200\1\31"+
"\1\201\12\31\1\202\4\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\6\0\1\36"+
"\7\0\1\203\6\0\1\31\1\204\20\31\1\0\1\31"+
"\2\0\3\31\3\0\1\205\4\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\22\0\2\32\2\0\1\32\63\0\1\206\2\0\3\206"+
"\1\0\1\206\25\0\6\206\1\207\13\206\1\0\1\206"+
"\2\0\3\206\7\0\20\210\1\211\1\212\1\213\1\210"+
"\1\214\53\210\25\0\1\215\1\166\76\0\1\166\1\215"+
"\76\0\1\166\1\0\1\166\75\0\1\215\77\0\2\166"+
"\2\0\1\216\73\0\1\166\77\0\1\166\4\0\1\217"+
"\1\100\71\0\1\166\1\220\76\0\1\166\7\0\1\166"+
"\67\0\1\166\10\0\1\166\42\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\31\1\221\20\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\222\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\3\31\1\223\2\31\25\0\1\31"+
"\1\224\1\31\1\225\5\31\1\226\10\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\227\1\0\6\31"+
"\25\0\2\31\1\230\5\31\1\231\11\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\232\1\0\6\31"+
"\25\0\1\233\4\31\1\234\14\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\3\31\1\235\3\31\1\236\1\31\1\237\7\31\1\240"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\31\1\241\11\31\1\242\6\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\243\1\244\1\245\2\31\1\246"+
"\2\31\1\247\11\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\3\31\1\250"+
"\5\31\1\251\10\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\252\1\0\6\31\25\0\6\31\1\253"+
"\5\31\1\254\5\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\13\31\1\255"+
"\6\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\5\31\1\256\14\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\1\257\14\31\1\260\4\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\31\1\261\1\262\5\31\1\263\11\31\1\0"+
"\1\31\2\0\3\31\71\0\1\264\16\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\2\31\1\265\17\31\1\0"+
"\1\31\2\0\3\31\17\0\1\266\3\0\1\267\23\0"+
"\1\270\1\271\1\272\1\0\1\273\1\274\1\0\1\275"+
"\1\276\1\277\27\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\1\31\1\300\1\31"+
"\7\0\22\205\1\301\51\205\1\212\3\205\26\0\1\302"+
"\51\0\20\102\1\303\1\0\1\304\1\102\1\305\56\102"+
"\1\306\2\102\3\306\1\102\1\306\5\102\1\307\1\310"+
"\1\304\1\102\1\311\13\102\22\306\1\102\1\306\2\102"+
"\3\306\127\102\1\312\1\310\1\304\1\102\1\313\53\102"+
"\20\107\1\314\1\107\1\315\1\0\1\316\56\107\1\306"+
"\2\107\3\306\1\107\1\306\5\107\1\317\1\107\1\315"+
"\1\320\1\311\13\107\22\306\1\107\1\306\2\107\3\306"+
"\127\107\1\312\1\107\1\315\1\320\1\321\53\107\26\0"+
"\1\322\71\0\1\312\57\0\13\116\1\120\3\116\1\120"+
"\1\323\1\116\1\324\1\116\1\325\54\116\1\117\1\116"+
"\1\117\1\116\6\117\1\326\2\116\1\327\1\326\1\323"+
"\1\116\1\324\1\116\1\325\13\116\22\117\1\116\1\117"+
"\2\116\3\117\12\116\1\330\2\116\3\330\1\116\1\330"+
"\1\120\3\116\1\120\1\323\1\116\1\324\1\116\1\325"+
"\13\116\22\330\1\116\1\330\2\116\3\330\12\116\1\306"+
"\2\116\3\306\1\116\1\306\1\120\3\116\1\120\1\331"+
"\1\116\1\324\1\116\1\311\13\116\22\306\1\116\1\306"+
"\2\116\3\306\22\116\1\120\3\116\1\120\73\116\1\120"+
"\3\116\1\120\1\312\1\116\1\324\1\116\1\332\53\116"+
"\13\124\1\126\3\124\1\126\61\124\1\125\1\124\1\125"+
"\1\124\6\125\1\333\2\124\1\334\1\333\20\124\22\125"+
"\1\124\1\125\2\124\3\125\12\124\1\335\2\124\3\335"+
"\1\124\1\335\1\126\3\124\1\126\20\124\22\335\1\124"+
"\1\335\2\124\3\335\7\124\3\336\1\337\2\336\3\337"+
"\1\336\1\337\1\0\2\336\1\340\1\0\20\336\22\337"+
"\1\336\1\337\2\336\3\337\7\336\1\341\1\342\1\341"+
"\1\342\1\341\6\342\1\343\2\341\1\344\1\343\20\341"+
"\22\342\1\341\1\342\2\341\3\342\7\341\3\345\1\346"+
"\2\345\3\346\1\345\1\346\1\131\2\345\1\347\1\131"+
"\20\345\22\346\1\345\1\346\2\345\3\346\7\345\1\0"+
"\1\134\1\0\1\134\1\0\6\134\25\0\22\134\1\0"+
"\1\134\2\0\3\134\35\0\1\350\52\0\1\136\3\0"+
"\1\136\3\0\1\136\67\0\1\351\3\0\1\351\1\176"+
"\1\0\1\177\1\351\71\0\1\352\2\0\3\352\1\0"+
"\1\352\25\0\22\352\1\0\1\352\2\0\3\352\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\10\31\1\231"+
"\11\31\1\0\1\31\2\0\3\31\7\0\32\145\1\0"+
"\45\145\33\0\1\353\77\0\1\354\47\0\1\355\3\0"+
"\1\356\31\0\1\357\1\360\1\361\1\362\1\363\1\364"+
"\1\365\1\366\1\367\3\0\1\370\1\0\1\371\1\372"+
"\1\373\1\0\1\374\14\0\13\152\1\153\3\152\1\153"+
"\6\152\1\153\5\152\1\153\41\152\1\153\1\152\13\0"+
"\1\375\112\0\1\376\64\0\2\161\2\0\1\161\63\0"+
"\1\377\2\0\3\377\1\0\1\377\25\0\22\377\1\0"+
"\1\377\2\0\3\377\12\0\1\377\2\0\3\377\1\0"+
"\1\377\1\162\24\0\22\377\1\0\1\377\2\0\3\377"+
"\10\0\1\164\1\0\1\165\1\0\1\164\3\0\1\164"+
"\67\0\1\351\2\0\2\351\3\0\1\351\15\0\1\351"+
"\51\0\1\31\1\0\1\31\1\0\6\31\25\0\5\31"+
"\1\u0100\1\u0101\13\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\13\31\1\u0102"+
"\6\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\4\31\1\u0103\15\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\11\31\1\u0104\10\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\20\31\1\u0105\1\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\2\31\1\u0106"+
"\17\31\1\0\1\31\2\0\3\31\10\0\1\u0107\1\0"+
"\1\u0107\1\0\1\u0107\1\0\3\u0107\30\0\1\u0107\1\0"+
"\1\u0107\2\0\1\u0107\35\0\1\u0108\3\0\1\u0108\67\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\3\31\1\u0109"+
"\16\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\6\31\1\u010a\2\31\1\u010b"+
"\3\31\1\u010c\4\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\1\u010d\1\31"+
"\1\u010e\17\31\1\0\1\31\2\0\3\31\40\0\1\u010f"+
"\47\0\1\31\1\0\1\u0110\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\206\1\0\1\206"+
"\1\0\6\206\25\0\22\206\1\0\1\206\2\0\3\206"+
"\10\0\1\206\1\0\1\206\1\0\6\206\25\0\13\206"+
"\1\u0111\6\206\1\0\1\206\2\0\3\206\7\0\3\210"+
"\1\0\2\210\3\0\1\210\1\0\5\210\1\211\1\212"+
"\1\213\1\210\1\0\13\210\22\0\1\210\1\0\2\210"+
"\3\0\127\210\1\0\1\212\1\213\1\210\1\214\53\210"+
"\25\0\1\166\3\0\1\u0112\100\0\1\u0113\60\0\2\220"+
"\2\0\1\220\61\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\6\31\1\u0114\13\31\1\0\1\31\2\0\2\31"+
"\1\u0115\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\11\31\1\u0116\10\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\1\31\1\u0117"+
"\20\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\4\31\1\221\15\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\14\31\1\u0118\5\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\21\31\1\u0119\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\15\31\1\u011a\4\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\2\31\1\u011b\3\31\25\0\7\31\1\u011c\12\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u011d"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\2\31\1\u011e\3\31"+
"\25\0\6\31\1\u011f\2\31\1\u0120\10\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\11\31\1\u0121\10\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\20\31"+
"\1\u0122\1\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\2\31\1\u0123\5\31"+
"\1\u0124\1\31\1\u0125\7\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\1\31"+
"\1\u0126\20\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\1\31\1\u0127\20\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\u0128\21\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\15\31\1\u0129\4\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\3\31\1\u012a"+
"\16\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\3\31\1\u012b\16\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\11\31\1\u012c\10\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u012d\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\15\31\1\u012e\4\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\2\31\1\u012f\17\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\5\31\1\u0130\14\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\5\31\1\u0131"+
"\14\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\11\31\1\u0132\10\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\6\31\1\u0133\13\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\1\u0134\21\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\1\u0135\4\31\1\u0136"+
"\14\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\1\31\1\u0137\20\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\3\31\1\u0138\2\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\1\31\1\u0139\20\31\1\0\1\31\2\0\3\31\47\0"+
"\1\u013a\4\0\1\u013b\42\0\1\u013c\72\0\1\u013d\135\0"+
"\1\u013e\76\0\1\u013f\102\0\1\u0140\111\0\1\u0141\65\0"+
"\1\u0142\102\0\1\u0143\32\0\1\31\1\0\1\31\1\0"+
"\2\31\1\u0144\3\31\25\0\3\31\1\u0145\1\u0146\2\31"+
"\1\u0147\3\31\1\u0148\1\31\1\u0149\3\31\1\u014a\1\0"+
"\1\31\2\0\3\31\7\0\100\205\13\0\2\302\2\0"+
"\1\302\60\0\3\102\1\0\2\102\3\0\1\102\1\0"+
"\5\102\1\307\1\310\1\304\1\102\1\0\13\102\22\0"+
"\1\102\1\0\2\102\3\0\27\102\1\0\1\310\1\304"+
"\1\102\1\313\53\102\1\0\1\306\1\0\1\306\1\0"+
"\6\306\25\0\22\306\1\0\1\306\2\0\3\306\1\0"+
"\1\u014b\5\0\3\107\1\0\2\107\3\0\1\107\1\0"+
"\5\107\1\317\1\107\1\315\1\320\1\0\13\107\22\0"+
"\1\107\1\0\2\107\3\0\27\107\1\0\1\107\1\315"+
"\1\320\1\321\53\107\3\116\1\0\2\116\3\0\1\116"+
"\1\0\1\120\3\116\1\120\1\331\1\116\1\324\1\116"+
"\1\0\13\116\22\0\1\116\1\0\2\116\3\0\22\116"+
"\1\120\3\116\1\120\1\0\1\116\1\324\1\116\1\332"+
"\66\116\1\326\3\116\1\326\1\323\1\116\1\324\1\116"+
"\1\325\54\116\1\330\1\116\1\330\1\116\6\330\1\u014c"+
"\2\116\1\u014d\1\u014c\1\323\1\116\1\324\1\116\1\325"+
"\13\116\22\330\1\116\1\330\2\116\3\330\7\116\13\124"+
"\1\333\3\124\1\333\61\124\1\335\1\124\1\335\1\124"+
"\6\335\1\u014e\2\124\1\u014f\1\u014e\20\124\22\335\1\124"+
"\1\335\2\124\3\335\7\124\3\347\1\u0150\2\347\3\u0150"+
"\1\347\1\u0150\1\u0151\3\347\1\u0151\20\347\22\u0150\1\347"+
"\1\u0150\2\347\3\u0150\10\347\1\u0152\1\347\1\u0150\1\347"+
"\1\u0152\3\u0150\1\u0152\1\u0150\1\u0153\2\347\1\u0154\1\u0153"+
"\20\347\22\u0150\1\347\1\u0150\2\347\3\u0150\7\347\3\340"+
"\1\u0155\2\340\3\u0155\1\340\1\u0155\1\0\3\340\1\0"+
"\20\340\22\u0155\1\340\1\u0155\2\340\3\u0155\7\340\3\u0156"+
"\1\u0157\2\u0156\3\u0157\1\u0156\1\u0157\1\u0153\3\u0156\1\u0153"+
"\20\u0156\22\u0157\1\u0156\1\u0157\2\u0156\3\u0157\10\u0156\1\u0157"+
"\1\u0156\1\u0157\1\u0156\6\u0157\1\u0158\2\u0156\1\u0159\1\u0158"+
"\20\u0156\22\u0157\1\u0156\1\u0157\2\u0156\3\u0157\7\u0156\13\u015a"+
"\1\343\3\u015a\1\343\60\u015a\3\345\1\u015b\2\345\3\u015b"+
"\1\345\1\u015b\1\u0151\2\345\1\347\1\u0151\20\345\22\u015b"+
"\1\345\1\u015b\2\345\3\u015b\7\345\1\u015c\1\346\1\u015c"+
"\1\346\1\u015c\6\346\1\u0158\2\u015c\1\u0159\1\u0158\20\u015c"+
"\22\346\1\u015c\1\346\2\u015c\3\346\7\u015c\1\0\1\351"+
"\3\0\1\351\3\0\1\351\67\0\1\352\1\0\1\352"+
"\1\0\6\352\25\0\22\352\1\0\1\352\2\0\3\352"+
"\15\0\1\u015d\131\0\1\u015e\1\0\1\u015f\40\0\1\u0160"+
"\103\0\1\u0161\1\u0162\37\0\1\u0163\71\0\1\u0164\40\0"+
"\1\u0165\137\0\1\u0166\13\0\1\u0167\60\0\1\u0168\7\0"+
"\1\u0169\2\0\1\u016a\71\0\1\u016b\103\0\1\u016c\31\0"+
"\1\u016d\41\0\1\u016e\1\u016f\1\0\1\u0170\74\0\1\u0171"+
"\107\0\1\u0172\63\0\1\u0173\1\u0174\40\0\1\u0175\36\0"+
"\1\u0176\40\0\1\u0177\36\0\1\u0178\50\0\2\376\2\0"+
"\1\376\61\0\1\377\1\0\1\377\1\0\6\377\1\u0179"+
"\2\0\1\u017a\1\u0179\20\0\22\377\1\0\1\377\2\0"+
"\3\377\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\6\31\1\u017b\13\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\u017c\1\0\6\31\25\0\22\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\1\u017d\21\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\4\31"+
"\1\u017e\1\u017f\1\31\1\u0180\1\31\1\u0181\2\31\1\u0182"+
"\5\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\u0183\1\0\6\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\6\31\1\u0184\13\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\15\31\1\u0185"+
"\4\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\6\31\1\u0186\2\31\1\u0187"+
"\10\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\2\31\1\u0188\3\31\25\0\22\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\u0189\1\0"+
"\6\31\25\0\22\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\15\31\1\u018a"+
"\4\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\3\31\1\u018b\16\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\11\31\1\u018c\10\31\1\0\1\31\2\0"+
"\3\31\40\0\1\u0112\47\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\2\31\1\u018d\17\31\1\0\1\31\2\0"+
"\3\31\10\0\1\206\1\0\1\206\1\0\6\206\25\0"+
"\5\206\1\u018e\14\206\1\0\1\206\2\0\3\206\12\0"+
"\1\u018f\2\0\3\u018f\1\0\1\u018f\1\0\1\u0112\4\0"+
"\1\u0190\16\0\22\u018f\1\0\1\u018f\2\0\3\u018f\3\0"+
"\1\u0191\16\0\2\u0192\2\0\1\u0192\55\0\1\u0193\3\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\10\31\1\u0194"+
"\11\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\10\31\1\u0195\11\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\6\31\1\u0196\13\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\2\31\1\u0197\17\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\u0198\1\0\6\31\25\0\22\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\15\31\1\u0199\4\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\15\31\1\u019a\4\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\2\31\1\u019b"+
"\17\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\15\31\1\u019c\4\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\u019d\1\0"+
"\6\31\25\0\22\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\6\31\1\u019e"+
"\13\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\u019f\1\0\6\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\15\31\1\u01a0\4\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\5\31\1\u01a1"+
"\14\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\u01a2\1\0\6\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\1\u01a3\21\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u01a4\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\21\31\1\u01a5\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\11\31\1\u01a6"+
"\10\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\2\31\1\u01a7\17\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\2\31\1\u01a8\3\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u01a9\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\7\31\1\u01aa\12\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\6\31\1\u01ab\13\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\6\31\1\u01ac\13\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\15\31\1\u01ad"+
"\4\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\6\31\1\u01ae\13\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\1\u01af\21\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\3\31\1\u01b0\2\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\6\31\1\u01b1\13\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\3\31\1\u01b2\16\31\1\0\1\u01b3"+
"\2\0\3\31\10\0\1\31\1\0\1\u01b4\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\15\31\1\u01b5\4\31"+
"\1\0\1\31\2\0\3\31\47\0\1\u01b6\102\0\1\u01b7"+
"\122\0\1\u01b8\53\0\1\u01b9\76\0\1\u01ba\106\0\1\u01bb"+
"\75\0\1\u01bc\71\0\1\u01bd\110\0\1\u01be\67\0\1\u01bf"+
"\37\0\1\31\1\0\1\31\1\0\6\31\25\0\15\31"+
"\1\u01c0\4\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\2\31\1\u01c1\17\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\5\31\1\u01c2\14\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\5\31\1\u01c3\2\31\1\u01c4\11\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\2\31\1\u01c5\17\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\5\31"+
"\1\u01c6\14\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u01c7\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\7\0\13\116\1\u014c\3\116\1\u014c\1\323"+
"\1\116\1\324\1\116\1\325\53\116\13\124\1\u014e\3\124"+
"\1\u014e\60\124\1\336\1\u01c8\1\336\1\u01c8\1\336\6\u01c8"+
"\1\343\2\336\1\u01c9\1\343\20\336\22\u01c8\1\336\1\u01c8"+
"\2\336\3\u01c8\7\336\13\u01ca\1\0\2\u01ca\2\0\60\u01ca"+
"\1\336\1\337\1\336\1\337\1\336\6\337\1\u01cb\2\336"+
"\1\u01cc\1\u01cb\20\336\22\337\1\336\1\337\2\336\3\337"+
"\12\336\1\337\2\336\3\337\1\336\1\337\1\u01cb\2\336"+
"\1\340\1\u01cb\20\336\22\337\1\336\1\337\2\336\3\337"+
"\7\336\1\340\1\u0155\1\340\1\u0155\1\340\6\u0155\1\u01cb"+
"\2\340\1\u01cc\1\u01cb\20\340\22\u0155\1\340\1\u0155\2\340"+
"\3\u0155\7\340\13\341\1\u01cb\2\341\1\u015a\1\u01cb\73\341"+
"\1\343\2\341\1\u015a\1\343\60\341\13\u015a\1\u01cb\3\u015a"+
"\1\u01cb\60\u015a\1\345\1\u015b\1\345\1\u015b\1\345\6\u015b"+
"\1\u0158\2\345\1\u01cd\1\u0158\20\345\22\u015b\1\345\1\u015b"+
"\2\345\3\u015b\7\345\3\u015c\1\346\2\u015c\3\346\1\u015c"+
"\1\346\1\u0153\2\u015c\1\u0156\1\u0153\20\u015c\22\346\1\u015c"+
"\1\346\2\u015c\3\346\7\u015c\7\0\1\u01ce\32\0\1\u01cf"+
"\115\0\1\u01d0\65\0\1\u01d1\77\0\1\u01d2\40\0\1\u01d3"+
"\141\0\1\u01d4\74\0\1\u01d5\112\0\1\u01d6\67\0\1\u01d7"+
"\6\0\1\u01d8\65\0\1\u01d9\74\0\1\u01da\100\0\1\u01db"+
"\101\0\1\u01dc\72\0\1\u01dd\101\0\1\u01de\11\0\1\u01df"+
"\25\0\1\u01e0\77\0\1\u01e1\137\0\1\u01e2\76\0\1\u01e3"+
"\45\0\1\u01e4\76\0\1\u01e5\33\0\1\u01e6\74\0\1\u01e7"+
"\77\0\1\u01e8\46\0\1\u01e9\31\0\1\u01ea\104\0\1\u01eb"+
"\110\0\1\u01ec\61\0\1\u01ed\77\0\1\u01ee\51\0\1\u0179"+
"\3\0\1\u0179\61\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\3\31\1\u01ef\16\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\u01f0\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\7\31\1\u01f1\12\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\u01f2\21\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\14\31\1\u01f3"+
"\5\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\13\31\1\u01f4\6\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\5\31\1\u01f5\14\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\12\31\1\u01f6\7\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\5\31\1\u01f7"+
"\14\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\6\31\1\u01f8\13\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\13\31\1\u01f9\6\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\2\31\1\u01fa\17\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\u01fb\1\0\6\31\25\0\22\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\11\31\1\u01fc\10\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\16\31\1\u01fd\3\31\1\0\1\31\2\0\3\31\10\0"+
"\1\206\1\0\1\206\1\0\6\206\25\0\11\206\1\u01fe"+
"\10\206\1\0\1\206\2\0\3\206\10\0\1\u018f\1\0"+
"\1\u018f\1\0\6\u018f\1\u01ff\3\0\1\u0200\20\0\22\u018f"+
"\1\0\1\u018f\2\0\3\u018f\12\0\1\u0201\2\0\3\u0201"+
"\1\0\1\u0201\25\0\22\u0201\1\0\1\u0201\2\0\3\u0201"+
"\12\0\1\u0202\2\0\3\u0202\1\0\1\u0202\25\0\22\u0202"+
"\1\0\1\u0202\2\0\3\u0202\22\0\2\u0192\2\0\1\u0192"+
"\157\0\1\u0203\1\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\31\1\u0204\20\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\5\31"+
"\1\u0205\14\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\1\31\1\u0206\20\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\12\31\1\u0207\7\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\11\31\1\u0208\10\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\2\31"+
"\1\u0209\17\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\10\31\1\u020a\11\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\10\31\1\u020b\11\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\31\1\u020c\20\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\u020d\1\0\6\31\25\0\2\31"+
"\1\u020e\17\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\6\31\1\u020f\13\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u0210"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\6\31"+
"\1\u0211\13\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\14\31\1\u0212\5\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\2\31\1\u0213\17\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\u0214\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\15\31\1\u0215\4\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\6\31\1\u0216\13\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\6\31\1\u0217\13\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\5\31"+
"\1\u0218\14\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\2\31\1\u0219\3\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u021a"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\2\31"+
"\1\u021b\17\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u021c\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\6\31\1\u021d\13\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\2\31"+
"\1\u021e\17\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\3\31\1\u021f\16\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\5\31\1\u0220\14\31\1\0\1\31"+
"\2\0\3\31\64\0\1\u0221\64\0\1\u0222\40\0\1\u0223"+
"\151\0\1\u0224\64\0\1\u0225\45\0\1\u0226\72\0\1\u0227"+
"\10\0\1\u0224\50\0\1\u0228\54\0\1\u0229\40\0\1\u0229"+
"\141\0\1\u022a\33\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\2\31\1\u022b\17\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\21\31"+
"\1\u022c\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\1\31\1\u022d\20\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\15\31\1\u022e\4\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\3\31\1\u022f\16\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\15\31\1\u0230"+
"\4\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\3\31\1\u0231\16\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\6\31\1\u0232\13\31\1\0\1\31\2\0"+
"\3\31\7\0\1\347\1\u0150\1\347\1\u0150\1\347\6\u0150"+
"\1\u0158\2\347\1\u01cd\1\u0158\20\347\22\u0150\1\347\1\u0150"+
"\2\347\3\u0150\7\347\3\340\1\u0155\2\340\3\u0155\1\340"+
"\1\u0155\1\343\3\340\1\343\20\340\22\u0155\1\340\1\u0155"+
"\2\340\3\u0155\7\340\3\u0151\1\u0233\2\u0151\3\u0233\1\u0151"+
"\1\u0233\25\u0151\22\u0233\1\u0151\1\u0233\2\u0151\3\u0233\7\u0151"+
"\3\340\1\u0155\2\340\3\u0155\1\340\1\u0155\1\u01cb\3\340"+
"\1\u01cb\20\340\22\u0155\1\340\1\u0155\2\340\3\u0155\7\340"+
"\3\336\1\337\2\336\3\337\1\336\1\337\1\343\2\336"+
"\1\340\1\343\20\336\22\337\1\336\1\337\2\336\3\337"+
"\7\336\3\0\1\u0234\155\0\1\u0235\70\0\1\u0236\30\0"+
"\1\u0237\144\0\1\u0238\32\0\1\u0239\142\0\1\u023a\104\0"+
"\1\u023b\27\0\1\u023c\103\0\1\u023d\131\0\1\u023e\41\0"+
"\1\u023f\134\0\1\u0240\77\0\1\u0241\77\0\1\u0242\77\0"+
"\1\u0243\101\0\1\u0244\40\0\1\u0245\145\0\1\u0246\35\0"+
"\1\u0247\136\0\1\u0248\111\0\1\u0249\22\0\1\u024a\152\0"+
"\1\u024b\31\0\1\u024c\147\0\1\u024d\75\0\1\u024e\63\0"+
"\1\u024f\110\0\1\u0250\71\0\1\u0251\103\0\1\u0252\27\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\4\31\1\u0253"+
"\15\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\2\31\1\u0254\3\31\25\0\22\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\1\31\1\u0255\20\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\5\31\1\u0256\14\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\5\31\1\u0257"+
"\14\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\7\31\1\u0258\12\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\3\31\1\u0259\16\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\3\31\1\u025a"+
"\2\31\25\0\22\31\1\0\1\31\2\0\3\31\22\0"+
"\1\u01ff\65\0\1\u0201\1\0\1\u0201\1\0\6\u0201\6\0"+
"\1\u025b\16\0\22\u0201\1\0\1\u0201\2\0\3\u0201\10\0"+
"\1\u0202\1\0\1\u0202\1\0\6\u0202\25\0\22\u0202\1\0"+
"\1\u0202\2\0\3\u0202\3\0\1\u025b\32\0\1\u025c\51\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\3\31\1\u025d"+
"\16\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\1\31\1\u025e\20\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\2\31\1\u025f\17\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\20\31\1\u0260\1\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\1\31\1\u0261"+
"\20\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\15\31\1\u0262\4\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\4\31\1\u0263\15\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\7\31\1\u0264\12\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\2\31\1\u0265"+
"\17\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\3\31\1\u0266\16\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\21\31\1\u0267\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\2\31\1\u0268\3\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\5\31\1\u0269\14\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\2\31\1\u026a\3\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\13\31\1\u026b\6\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\15\31"+
"\1\u026c\4\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\2\31\1\u026d\3\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\6\31\1\u026e\13\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\6\31\1\u026f\13\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\2\31\1\u0270\3\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\12\0\1\u0271"+
"\10\0\1\u0224\50\0\1\u0228\53\0\1\u0225\45\0\1\u0229"+
"\104\0\1\u0224\50\0\1\u0228\64\0\1\u0224\102\0\1\u0272"+
"\101\0\1\u0273\66\0\1\u0224\74\0\1\u0274\35\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\11\31\1\u0275\10\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u0276"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\1\31\1\u0277\1\31\10\0\1\31"+
"\1\0\1\u0278\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\2\31"+
"\1\u0279\3\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\6\31"+
"\1\u027a\13\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u027b\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\13\31\1\u027c\6\31\1\0\1\31\2\0\3\31"+
"\7\0\1\u01ca\1\u027d\1\u01ca\1\u027d\1\u01ca\6\u027d\1\343"+
"\2\u01ca\1\u027e\1\343\20\u01ca\22\u027d\1\u01ca\1\u027d\2\u01ca"+
"\3\u027d\7\u01ca\60\0\1\u027f\77\0\1\u0280\60\0\1\u0281"+
"\115\0\1\u0282\61\0\1\u0283\107\0\1\u0284\67\0\1\u0285"+
"\76\0\1\u0286\110\0\1\u0287\31\0\1\u0288\135\0\1\u0289"+
"\77\0\1\u028a\77\0\1\u028b\112\0\1\u028c\100\0\1\u028d"+
"\73\0\1\u028e\31\0\1\u028f\141\0\1\u0290\74\0\1\u0291"+
"\100\0\1\u0292\76\0\1\u0293\40\0\1\u0294\136\0\1\u0295"+
"\116\0\1\u0296\56\0\1\u0297\46\0\1\u0298\135\0\1\u0299"+
"\33\0\1\31\1\0\1\31\1\0\6\31\25\0\11\31"+
"\1\u029a\10\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\15\31\1\u029b\4\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u029c"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\6\31"+
"\1\u029d\13\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\15\31\1\u029e\4\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\10\31\1\u029f\11\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\15\31\1\u02a0\4\31\1\0\1\31\2\0\3\31"+
"\22\0\1\u01ff\3\0\1\u0200\61\0\1\31\1\0\1\u02a1"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\2\31\1\u02a2\3\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\2\31\1\u02a3\17\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u02a4"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\6\31"+
"\1\u02a5\13\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u02a6\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\2\31\1\u02a7\17\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\4\31"+
"\1\u02a8\15\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\2\31\1\u02a9\3\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u02aa"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\13\31"+
"\1\u02ab\6\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\1\u02ac\21\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\6\31\1\u02ad\13\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u02ae\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\51\0\1\u02af\40\0"+
"\1\u0224\77\0\1\u02b0\153\0\1\u0224\21\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\11\31\1\u02b1\10\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\11\31\1\u02b2\10\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\1\31\1\u02b3\1\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\22\31\1\0"+
"\1\31\2\0\1\31\1\u02b4\1\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\6\31\1\u02b5\13\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\22\31\1\0\1\31\2\0\1\31\1\u02b6"+
"\1\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\1\31\1\u02b7\1\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\1\u02b8\21\31"+
"\1\0\1\31\2\0\3\31\7\0\1\u0151\1\u0233\1\u0151"+
"\1\u0233\1\u0151\6\u0233\1\u0158\2\u0151\1\u02b9\1\u0158\20\u0151"+
"\22\u0233\1\u0151\1\u0233\2\u0151\3\u0233\7\u0151\13\0\1\343"+
"\3\0\1\343\126\0\1\u02ba\106\0\1\u02bb\67\0\1\u02bc"+
"\72\0\1\u02bd\102\0\1\u02be\105\0\1\u02bf\70\0\1\u02c0"+
"\76\0\1\u02c1\116\0\1\u02c2\26\0\1\u02c3\133\0\1\u02c4"+
"\37\0\1\u02c5\141\0\1\u02c6\103\0\1\u02c7\66\0\1\u02c8"+
"\46\0\1\u02c9\77\0\1\u02ca\141\0\1\u02cb\103\0\1\u02cc"+
"\63\0\1\u02cd\115\0\1\u02ce\64\0\1\u02cf\73\0\1\u02d0"+
"\40\0\1\31\1\0\1\31\1\0\6\31\25\0\2\31"+
"\1\u02d1\17\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\2\31\1\u02d2\17\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\2\31\1\u02d3\3\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\u02d4\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u02d5\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\u02d6\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\1\31\1\u02d7\1\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\6\31\1\u02d8\13\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\2\31"+
"\1\u02d9\3\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\1\31\1\u02da\1\31\10\0\1\31"+
"\1\0\1\31\1\0\2\31\1\u02db\3\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\u02dc\21\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u02dd\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\3\31\1\u02de\16\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\3\31\1\u02df\16\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u02e0\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\52\0\1\u0224\75\0"+
"\1\u0224\37\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\1\31\1\u02e1\1\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\20\31\1\u02e2"+
"\1\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\22\31\1\0\1\31\2\0"+
"\1\31\1\u02e3\1\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\5\31\1\u02e4\14\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\2\31\1\u02e5"+
"\3\31\25\0\22\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\22\31\1\0"+
"\1\31\2\0\1\31\1\u02e6\1\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\4\31\1\u02e7\15\31\1\0"+
"\1\31\2\0\3\31\7\0\13\u01ca\1\343\2\u01ca\1\0"+
"\1\343\60\u01ca\45\0\1\u02e8\35\0\1\u02e9\153\0\1\u02ea"+
"\61\0\1\u02eb\45\0\1\u02ec\132\0\1\u02ed\77\0\1\u02ee"+
"\77\0\1\u02ef\77\0\1\u02f0\105\0\1\u02f1\112\0\1\u02f2"+
"\72\0\1\u02f3\24\0\1\u02f4\142\0\1\u02f5\34\0\1\u02f6"+
"\137\0\1\u02f7\35\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\1\31\1\u02f8\20\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\2\31\1\u02f9\3\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\13\31\1\u02fa\6\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\u02fb\21\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\u02fc\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\1\u02fd\21\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\u02fe\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\7\31\1\u02ff\12\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\u0300\21\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\6\31\1\u0301\13\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\4\31\1\u0302"+
"\15\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\22\31\1\0\1\31\2\0"+
"\1\31\1\u0303\1\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\2\31\1\u0304\17\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\1\u0305\21\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\1\u0306\21\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\22\31\1\0\1\31\2\0\1\31\1\u0307"+
"\1\31\47\0\1\u0308\112\0\1\u0309\76\0\1\u030a\73\0"+
"\1\u030b\40\0\1\u030c\136\0\1\u030d\106\0\1\u030e\77\0"+
"\1\u030f\63\0\1\u0310\100\0\1\u0311\77\0\1\u0312\107\0"+
"\1\u0313\26\0\1\31\1\0\1\u0314\1\0\6\31\25\0"+
"\22\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\13\31\1\u0315\6\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\6\31\25\0\3\31\1\u0316\16\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\3\31\1\u0317\16\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\7\31\1\u0318"+
"\12\31\1\0\1\31\2\0\3\31\10\0\1\31\1\0"+
"\1\31\1\0\6\31\25\0\11\31\1\u0319\10\31\1\0"+
"\1\31\2\0\3\31\10\0\1\31\1\0\1\31\1\0"+
"\2\31\1\u031a\3\31\25\0\22\31\1\0\1\31\2\0"+
"\3\31\10\0\1\31\1\0\1\31\1\0\6\31\25\0"+
"\3\31\1\u031b\16\31\1\0\1\31\2\0\3\31\10\0"+
"\1\31\1\0\1\31\1\0\6\31\25\0\21\31\1\u031c"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\1\31"+
"\1\u031d\1\31\52\0\1\u031e\102\0\1\u031f\34\0\1\u0320"+
"\77\0\1\u0321\103\0\1\u0322\131\0\1\u0323\115\0\1\u0324"+
"\21\0\1\31\1\0\1\31\1\0\2\31\1\u0325\3\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\31\1\0\2\31\1\u0326\3\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\u0327"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\1\31\1\u0328\1\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\20\31\1\u0329\1\31"+
"\1\0\1\31\2\0\3\31\53\0\1\u032a\36\0\1\u032b"+
"\77\0\1\u032c\75\0\1\31\1\0\1\u032d\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\3\31\10\0\1\31"+
"\1\0\1\u032e\1\0\6\31\25\0\22\31\1\0\1\31"+
"\2\0\3\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\22\31\1\0\1\31\2\0\1\31\1\u032f\1\31"+
"\10\0\1\31\1\0\1\31\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\1\31\1\u0330\1\31\10\0\1\31"+
"\1\0\1\31\1\0\6\31\25\0\5\31\1\u0331\14\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\22\31\1\0\1\31\2\0\1\31"+
"\1\u0332\1\31\10\0\1\31\1\0\1\31\1\0\6\31"+
"\25\0\15\31\1\u0333\4\31\1\0\1\31\2\0\3\31"+
"\10\0\1\31\1\0\1\u0334\1\0\6\31\25\0\22\31"+
"\1\0\1\31\2\0\3\31\10\0\1\31\1\0\1\31"+
"\1\0\6\31\25\0\1\31\1\u0335\20\31\1\0\1\31"+
"\2\0\3\31\7\0";
private static int [] zzUnpackTrans() {
int [] result = new int[41792];
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[] = {
"Unkown 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\10\4\0\2\1\10\0\1\11\12\1\2\11\2\1"+
"\3\11\34\1\1\11\1\1\1\11\3\1\1\11\6\1"+
"\1\11\15\1\1\0\1\1\1\11\3\1\1\11\1\1"+
"\1\11\2\1\1\11\2\1\1\11\3\1\1\11\1\1"+
"\1\11\2\1\1\11\1\1\1\0\3\1\1\11\6\1"+
"\1\11\2\0\3\1\1\0\1\1\1\0\2\1\2\0"+
"\1\11\2\0\47\1\1\11\1\1\12\0\1\1\1\0"+
"\1\1\3\0\2\1\3\11\1\1\3\0\1\1\1\11"+
"\1\1\1\11\3\0\10\1\5\0\1\11\4\0\1\11"+
"\2\1\2\11\20\0\1\11\1\1\1\0\17\1\1\0"+
"\2\1\2\0\46\1\12\0\7\1\2\11\1\1\1\11"+
"\1\1\3\0\1\1\4\0\1\1\40\0\1\11\1\0"+
"\24\1\3\0\1\1\1\0\42\1\12\0\10\1\3\0"+
"\1\11\25\0\1\11\14\0\1\11\20\1\1\11\1\1"+
"\3\0\35\1\7\0\1\11\2\0\10\1\11\0\1\1"+
"\1\11\3\0\1\11\4\0\1\11\4\0\1\11\7\0"+
"\10\1\2\0\24\1\4\0\10\1\20\0\1\11\1\0"+
"\1\11\6\0\1\11\1\0\1\11\1\0\25\1\2\0"+
"\10\1\5\0\2\11\1\0\1\11\3\0\1\11\1\0"+
"\1\11\1\0\1\1\2\0\1\11\2\0\1\11\1\0"+
"\27\1\1\0\1\11\12\0\1\11\1\0\2\11\20\1"+
"\2\0\2\11\2\0\2\11\3\0\1\11\12\1\3\11"+
"\2\0\1\11\1\0\5\1\3\11\11\1";
private static int [] zzUnpackAttribute() {
int [] result = new int[821];
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 char zzBuffer[] = new char[ZZ_BUFFERSIZE];
/** the textposition at the last accepting state */
private int zzMarkedPos;
/** the textposition at the last state to be included in yytext */
private int zzPushbackPos;
/** 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;
/* user code: */
public PhpLexer(int state){
initialize(state);
}
public void reset(char array[], int offset, int length) {
this.zzBuffer = array;
this.zzCurrentPos = offset;
this.zzMarkedPos = offset;
this.zzPushbackPos = offset;
this.yychar = offset;
this.zzEndRead = offset + length;
this.zzStartRead = offset;
this.zzAtEOF = zzCurrentPos >= zzEndRead;
this.firstPos = offset;
}
public void reset(java.io.Reader reader, char[] buffer, int[] parameters){
this.zzReader = reader;
this.zzBuffer = buffer;
this.zzMarkedPos = parameters[0];
this.zzPushbackPos = parameters[1];
this.zzCurrentPos = parameters[2];
this.zzStartRead = parameters[3];
this.zzEndRead = parameters[4];
this.yyline = parameters[5];
initialize(parameters[6]);
}
protected boolean isHeredocState(int state){
return state == ST_PHP_HEREDOC || state == ST_PHP_END_HEREDOC || state == ST_PHP_NOWDOC || state == ST_PHP_END_NOWDOC;
}
public int[] getParamenters(){
return new int[]{zzMarkedPos, zzPushbackPos, zzCurrentPos, zzStartRead, zzEndRead, yyline, zzLexicalState};
}
protected int getZZLexicalState() {
return zzLexicalState;
}
protected int getZZMarkedPos() {
return zzMarkedPos;
}
protected int getZZEndRead() {
return zzEndRead;
}
public char[] getZZBuffer() {
return zzBuffer;
}
protected int getZZStartRead() {
return this.zzStartRead;
}
protected int getZZPushBackPosition() {
return this.zzPushbackPos;
}
protected void pushBack(int i) {
yypushback(i);
}
// A pool of states. To avoid creation of a new state on each createMemento.
private static final IntHashtable lexerStates = new IntHashtable(100);
protected IntHashtable getLexerStates() {
return lexerStates;
}
// End user code
/**
* Creates a new scanner
* There is also a java.io.InputStream version of this constructor.
*
* @param in the java.io.Reader to read input from.
*/
public PhpLexer(java.io.Reader in) {
this.zzReader = in;
}
/**
* Creates a new scanner.
* There is also java.io.Reader version of this constructor.
*
* @param in the java.io.Inputstream to read input from.
*/
public PhpLexer(java.io.InputStream in) {
this(new java.io.InputStreamReader(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[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 192) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
}
return map;
}
/**
* 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 {
/* first: make room (if you can) */
if (zzStartRead > 0) {
System.arraycopy(zzBuffer, zzStartRead,
zzBuffer, 0,
zzEndRead-zzStartRead);
/* translate stored positions */
zzEndRead-= zzStartRead;
zzCurrentPos-= zzStartRead;
zzMarkedPos-= zzStartRead;
zzPushbackPos-= zzStartRead;
zzStartRead = 0;
}
/* is the buffer big enough? */
if (zzCurrentPos >= zzBuffer.length) {
/* if not: blow it up */
char newBuffer[] = new char[zzCurrentPos*2];
System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
zzBuffer = newBuffer;
}
/* finally: fill the buffer with new input */
int numRead = zzReader.read(zzBuffer, zzEndRead,
zzBuffer.length-zzEndRead);
if (numRead < 0) {
return true;
}
else {
zzEndRead+= numRead;
return false;
}
}
/**
* Closes the input stream.
*/
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
* <b>cannot</b> be reused (internal buffer is discarded and lost).
* Lexical state is set to <tt>ZZ_INITIAL</tt>.
*
* @param reader the new input stream
*/
public final void yyreset(java.io.Reader reader) {
zzReader = reader;
zzAtBOL = true;
zzAtEOF = false;
zzEndRead = zzStartRead = 0;
zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
yyline = yychar = yycolumn = 0;
zzLexicalState = YYINITIAL;
}
/**
* 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 <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[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 String yylex() throws java.io.IOException {
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;
zzAction = -1;
zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
zzState = zzLexicalState;
zzForAction: {
while (true) {
if (zzCurrentPosL < zzEndReadL)
zzInput = zzBufferL[zzCurrentPosL++];
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 = zzBufferL[zzCurrentPosL++];
}
}
int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
if (zzNext == -1) break zzForAction;
zzState = zzNext;
int 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 117:
{ return PHP_DECLARE;
}
case 170: break;
case 83:
{ return PHP_CLONE;
}
case 171: break;
case 90:
{ return PHP_TRAIT;
}
case 172: break;
case 1:
{ if(heredoc!=null&&yytext().startsWith(heredoc)){
String text = yytext();
if(heredoc_len < text.length() && (text.charAt(heredoc_len) == '\r'
|| text.charAt(heredoc_len) == '\n'|| text.charAt(heredoc_len) == ';')){
yypushback(yylength()-heredoc_len-1);
heredoc=null;
heredoc_len=0;
yybegin(ST_PHP_IN_SCRIPTING);
return PHP_HEREDOC_TAG;
}
}
return PHP_ENCAPSED_AND_WHITESPACE;
}
case 173: break;
case 157:
{ return PHP__METHOD__;
}
case 174: break;
case 73:
{ return PHP_FROM;
}
case 175: break;
case 85:
{ return PHP_BREAK;
}
case 176: break;
case 95:
{ return PHP_WHILE;
}
case 177: break;
case 158:
{ return PHPDOC_EXCEPTION;
}
case 178: break;
case 34:
{ if (asp_tags) {
return PHP_CLOSETAG;
}
return UNKNOWN_TOKEN;
}
case 179: break;
case 115:
{ return PHP_EXTENDS;
}
case 180: break;
case 64:
{ nowdoc = null;
nowdoc_len = 0;
yybegin(ST_PHP_IN_SCRIPTING);
return PHP_HEREDOC_TAG;
}
case 181: break;
case 28:
{ return UNKNOWN_TOKEN;
}
case 182: break;
case 4:
{ return PHP_NUMBER;
}
case 183: break;
case 79:
{ return PHP_ENDIF;
}
case 184: break;
case 121:
{ return PHP_PRIVATE;
}
case 185: break;
case 106:
{ return PHP_STATIC;
}
case 186: break;
case 6:
{ return PHP_STRING;
}
case 187: break;
case 118:
{ return PHP_DEFAULT;
}
case 188: break;
case 116:
{ return PHP_REQUIRE;
}
case 189: break;
case 102:
{ return PHPDOC_LINK;
}
case 190: break;
case 154:
{ return PHP_ENDFOREACH;
}
case 191: break;
case 3:
{ yypushback(1);
pushState(ST_PHP_HIGHLIGHTING_ERROR);
}
case 192: break;
case 56:
{ return PHP_TRY;
}
case 193: break;
case 137:
{ return PHP__LINE__;
}
case 194: break;
case 65:
{ return PHP_EXIT;
}
case 195: break;
case 163:
{ return PHPDOC_FILESOURCE;
}
case 196: break;
case 133:
{ return PHP_CALLABLE;
}
case 197: break;
case 9:
{ pushState(ST_PHP_DOUBLE_QUOTES);
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 198: break;
case 132:
{ return PHP_CONTINUE;
}
case 199: break;
case 87:
{ int bprefix = (yytext().charAt(0) != '<') ? 1 : 0;
int startString=3+bprefix;
int hereOrNowDoc_len = yylength()-bprefix-3-1-(yytext().charAt(yylength()-2)=='\r'?1:0);
while ((yytext().charAt(startString) == ' ') || (yytext().charAt(startString) == '\t')) {
startString++;
hereOrNowDoc_len--;
}
String hereOrNowDoc = yytext().substring(startString,hereOrNowDoc_len+startString);
if (hereOrNowDoc.charAt(0) == '\'') {
nowdoc = hereOrNowDoc.substring(1, hereOrNowDoc_len-1);
nowdoc_len = hereOrNowDoc_len - 2;
yybegin(ST_PHP_NOWDOC);
}
else if (hereOrNowDoc.charAt(0) == '"') {
heredoc = hereOrNowDoc.substring(1, hereOrNowDoc_len-1);
heredoc_len = hereOrNowDoc_len - 2;
yybegin(ST_PHP_HEREDOC);
} else {
heredoc = hereOrNowDoc;
heredoc_len = hereOrNowDoc_len;
yybegin(ST_PHP_HEREDOC);
}
return PHP_HEREDOC_TAG;
}
case 200: break;
case 151:
{ return PHPDOC_TUTORIAL;
}
case 201: break;
case 167:
{ return PHP__FUNCTION__;
}
case 202: break;
case 130:
{ return PHPDOC_METHOD;
}
case 203: break;
case 149:
{ return PHPDOC_ABSTRACT;
}
case 204: break;
case 162:
{ return PHPDOC_DEPRECATED;
}
case 205: break;
case 57:
{ return PHP_FOR;
}
case 206: break;
case 156:
{ return PHP_IMPLEMENTS;
}
case 207: break;
case 96:
{ return PHP_PRINT;
}
case 208: break;
case 81:
{ return PHP_CONST;
}
case 209: break;
case 131:
{ return PHP_ENDWHILE;
}
case 210: break;
case 14:
{ pushState(ST_PHP_LINE_COMMENT);
return PHP_LINE_COMMENT;
}
case 211: break;
case 15:
{ return PHP_CONSTANT_ENCAPSED_STRING;
}
case 212: break;
case 27:
{ return PHP_LINE_COMMENT;
}
case 213: break;
case 33:
{ pushState(ST_PHP_COMMENT);
return PHP_COMMENT_START;
}
case 214: break;
case 155:
{ return PHP_INSTANCEOF;
}
case 215: break;
case 31:
{ pushState(ST_PHP_LOOKING_FOR_PROPERTY);
return PHP_OBJECT_OPERATOR;
}
case 216: break;
case 91:
{ return PHP_THROW;
}
case 217: break;
case 112:
{ return PHPDOC_SINCE;
}
case 218: break;
case 107:
{ return PHP_SWITCH;
}
case 219: break;
case 152:
{ return PHPDOC_PROPERTY;
}
case 220: break;
case 36:
{ return PHP_DO;
}
case 221: break;
case 168:
{ return PHP__NAMESPACE__;
}
case 222: break;
case 52:
{ popState();
return PHP_LINE_COMMENT;
}
case 223: break;
case 166:
{ return PHP_INCLUDE_ONCE;
}
case 224: break;
case 2:
{ return PHP_ENCAPSED_AND_WHITESPACE;
}
case 225: break;
case 126:
{ return PHPDOC_IGNORE;
}
case 226: break;
case 84:
{ return PHP_CLASS;
}
case 227: break;
case 49:
{ return PHP_OBJECT_OPERATOR;
}
case 228: break;
case 109:
{ return PHP_PARENT;
}
case 229: break;
case 111:
{ return PHPDOC_FINAL;
}
case 230: break;
case 45:
{ popState();
pushState(ST_PHP_LOOKING_FOR_PROPERTY);
return PHP_OBJECT_OPERATOR;
}
case 231: break;
case 32:
{ return PHP_VARIABLE;
}
case 232: break;
case 22:
{ yypushback(1);
popState();
return PHP_ENCAPSED_AND_WHITESPACE;
}
case 233: break;
case 97:
{ return PHP_CASTING;
}
case 234: break;
case 94:
{ return PHP_UNSET;
}
case 235: break;
case 44:
{ yypushback(1);
return PHP_ENCAPSED_AND_WHITESPACE;
}
case 236: break;
case 50:
{ popState();
return PHP_COMMENT_END;
}
case 237: break;
case 39:
{ return PHP_CLOSETAG;
}
case 238: break;
case 68:
{ return PHP_EVAL;
}
case 239: break;
case 76:
{ return PHP_GOTO;
}
case 240: break;
case 29:
{ popState();return WHITESPACE;
}
case 241: break;
case 43:
{ yypushback(1);
pushState(ST_PHP_IN_SCRIPTING);
return PHP_CURLY_OPEN;
}
case 242: break;
case 48:
{ int label_len = yylength() - 1;
int startIndex = 0;
String yytext = yytext();
if (yytext.charAt(label_len - 1) == ';') {
label_len--;
}
while (yytext.charAt(startIndex) == '\r'
|| yytext.charAt(startIndex) == '\n') {
startIndex++;
}
if (label_len > heredoc_len
&& yytext.substring(startIndex, label_len).equals(
heredoc)) {
heredoc = null;
heredoc_len = 0;
yybegin(ST_PHP_IN_SCRIPTING);
return PHP_HEREDOC_TAG;
} else {
yybegin(ST_PHP_HEREDOC);
return PHP_CONSTANT_ENCAPSED_STRING;
}
}
case 243: break;
case 58:
{ return PHP_USE;
}
case 244: break;
case 38:
{ return PHP_PAAMAYIM_NEKUDOTAYIM;
}
case 245: break;
case 125:
{ return PHPDOC_AUTHOR;
}
case 246: break;
case 160:
{ return PHPDOC_NAMESPACE;
}
case 247: break;
case 40:
{ pushState(ST_PHP_QUOTES_AFTER_VARIABLE);
return PHP_VARIABLE;
}
case 248: break;
case 110:
{ return PHP_PUBLIC;
}
case 249: break;
case 37:
{ return PHP_IF;
}
case 250: break;
case 143:
{ return PHP_NAMESPACE;
}
case 251: break;
case 88:
{ return PHP_ARRAY;
}
case 252: break;
case 35:
{ return PHP_AS;
}
case 253: break;
case 42:
{ pushState(ST_PHP_IN_SCRIPTING);
return PHP_TOKEN;
}
case 254: break;
case 66:
{ return PHP_ECHO;
}
case 255: break;
case 93:
{ return PHP_FINAL;
}
case 256: break;
case 153:
{ return PHP_ENDDECLARE;
}
case 257: break;
case 86:
{ return PHP_THIS;
}
case 258: break;
case 78:
{ return PHPDOC_VAR;
}
case 259: break;
case 70:
{ pushState(ST_PHP_DOC_COMMENT);
return PHPDOC_COMMENT_START;
}
case 260: break;
case 24:
{ return PHP_COMMENT;
}
case 261: break;
case 123:
{ return PHPDOC_RETURN;
}
case 262: break;
case 21:
{ //the difference from the original rules comes from the fact that we took ';' out out of tokens
return UNKNOWN_TOKEN;
}
case 263: break;
case 114:
{ return PHPDOC_MAGIC;
}
case 264: break;
case 127:
{ return PHPDOC_THROWS;
}
case 265: break;
case 61:
{ int label_len = yylength() - 1;
if (yytext().charAt(label_len-1)==';') {
label_len--;
}
if (label_len > heredoc_len && yytext().substring(label_len - heredoc_len,label_len).equals(heredoc)) {
if ((label_len - heredoc_len-2) >= 0 && yytext().charAt(label_len - heredoc_len-2)=='\r') {
label_len = label_len-2;
} else {
label_len--;
}
yypushback(heredoc_len + (yylength() - label_len));
yybegin(ST_PHP_END_HEREDOC);
}
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 266: break;
case 5:
{ return PHP_TOKEN;
}
case 267: break;
case 82:
{ return PHP_CATCH;
}
case 268: break;
case 30:
{ return PHP_OPERATOR;
}
case 269: break;
case 99:
{ return PHPDOC_DESC;
}
case 270: break;
case 54:
{ return PHP_NEW;
}
case 271: break;
case 122:
{ return PHP__DIR__;
}
case 272: break;
case 135:
{ return PHP_FUNCTION;
}
case 273: break;
case 63:
{ yybegin(ST_PHP_HEREDOC);
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 274: break;
case 120:
{ return PHP_FOREACH;
}
case 275: break;
case 138:
{ return PHPDOC_EXAMPLE;
}
case 276: break;
case 41:
{ yypushback(1);
return PHP_ENCAPSED_AND_WHITESPACE;
}
case 277: break;
case 67:
{ return PHP_ELSE;
}
case 278: break;
case 47:
{ int label_len = yylength() - 1;
if (yytext().charAt(label_len-1)==';') {
label_len--;
}
if (label_len==nowdoc_len && yytext().substring(0,label_len).equals(nowdoc)) {
nowdoc=null;
nowdoc_len=0;
yybegin(ST_PHP_IN_SCRIPTING);
return PHP_HEREDOC_TAG;
} else {
return PHP_CONSTANT_ENCAPSED_STRING;
}
}
case 279: break;
case 129:
{ return PHPDOC_GLOBAL;
}
case 280: break;
case 74:
{ return PHP_SELF;
}
case 281: break;
case 7:
{ return WHITESPACE;
}
case 282: break;
case 105:
{ return PHP_RETURN;
}
case 283: break;
case 101:
{ return PHPDOC_USES;
}
case 284: break;
case 165:
{ return PHP_REQUIRE_ONCE;
}
case 285: break;
case 72:
{ return PHP_TRUE;
}
case 286: break;
case 142:
{ return PHP_ENDSWITCH;
}
case 287: break;
case 25:
{ return PHPDOC_COMMENT;
}
case 288: break;
case 159:
{ return PHPDOC_COPYRIGHT;
}
case 289: break;
case 13:
{ if (!phpStack.isEmpty()) {
popState();
}
return PHP_CURLY_CLOSE;
}
case 290: break;
case 148:
{ return PHPDOC_CATEGORY;
}
case 291: break;
case 103:
{ return PHP_ENDFOR;
}
case 292: break;
case 146:
{ return PHP_PROTECTED;
}
case 293: break;
case 92:
{ return PHP_FALSE;
}
case 294: break;
case 19:
{ popState();
return PHP_STRING;
}
case 295: break;
case 164:
{ return PHPDOC_SUBPACKAGE;
}
case 296: break;
case 59:
{ return PHP_VAR;
}
case 297: break;
case 104:
{ return PHP_ELSEIF;
}
case 298: break;
case 119:
{ return PHP_INCLUDE;
}
case 299: break;
case 145:
{ return PHP_INSTEADOF;
}
case 300: break;
case 140:
{ return PHPDOC_PACKAGE;
}
case 301: break;
case 98:
{ return PHPDOC_NAME;
}
case 302: break;
case 75:
{ return PHP_LIST;
}
case 303: break;
case 169:
{ return PHP_HALT_COMPILER;
}
case 304: break;
case 18:
{ yypushback(1);
popState();
}
case 305: break;
case 124:
{ return PHPDOC_ACCESS;
}
case 306: break;
case 46:
{ int label_len = yylength() - 1;
if (yytext().charAt(label_len-1)==';') {
label_len--;
}
if (label_len==heredoc_len && yytext().substring(0,label_len).equals(heredoc)) {
heredoc=null;
heredoc_len=0;
yybegin(ST_PHP_IN_SCRIPTING);
return PHP_HEREDOC_TAG;
} else {
return PHP_CONSTANT_ENCAPSED_STRING;
}
}
case 307: break;
case 80:
{ return PHP_EMPTY;
}
case 308: break;
case 139:
{ return PHPDOC_LICENSE;
}
case 309: break;
case 69:
{ return PHP_CASE;
}
case 310: break;
case 147:
{ return PHP__CLASS__;
}
case 311: break;
case 55:
{ return PHP_DIE;
}
case 312: break;
case 89:
{ return PHP_ISSET;
}
case 313: break;
case 136:
{ return PHP__FILE__;
}
case 314: break;
case 71:
{ return PHP_KEYWORD;
}
case 315: break;
case 161:
{ return PHPDOC_STATICVAR;
}
case 316: break;
case 108:
{ return PHP_GLOBAL;
}
case 317: break;
case 51:
{ popState();
return PHPDOC_COMMENT_END;
}
case 318: break;
case 144:
{ return PHP_INTERFACE;
}
case 319: break;
case 10:
{ return PHP_NS_SEPARATOR;
}
case 320: break;
case 77:
{ return PHPDOC_SEE;
}
case 321: break;
case 100:
{ return PHPDOC_TODO;
}
case 322: break;
case 23:
{ popState();
return PHP_TOKEN;
}
case 323: break;
case 8:
{ return PHP_SEMICOLON;
}
case 324: break;
case 11:
{ pushState(ST_PHP_BACKQUOTE);
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 325: break;
case 128:
{ return PHPDOC_STATIC;
}
case 326: break;
case 17:
{ yypushback(1);
popState();
}
case 327: break;
case 26:
{ String yytext = yytext();
switch (yytext.charAt(yytext.length() - 1)) {
case '?':
case '%':
case '>':
yypushback(1);
break;
default:
popState();
}
return PHP_LINE_COMMENT;
}
case 328: break;
case 16:
{ popState();
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 329: break;
case 113:
{ return PHPDOC_PARAM;
}
case 330: break;
case 20:
{ /* Offset could be treated as a long */
return PHP_NUMBER;
}
case 331: break;
case 134:
{ return PHP_ABSTRACT;
}
case 332: break;
case 60:
{ yypushback(1);
pushState(ST_PHP_VAR_OFFSET);
return PHP_VARIABLE;
}
case 333: break;
case 53:
{ if (asp_tags) {
return PHP_CLOSETAG;
}
String text = yytext();
if(text.indexOf('\r') != -1 || text.indexOf('\n') != -1 ){
popState();
}
return PHP_LINE_COMMENT;
}
case 334: break;
case 150:
{ return PHPDOC_INTERNAL;
}
case 335: break;
case 12:
{ return PHP_CURLY_OPEN;
}
case 336: break;
case 62:
{ int label_len = yylength() - 1;
if (yytext().charAt(label_len-1)==';') {
label_len--;
}
if (label_len > nowdoc_len && yytext().substring(label_len - nowdoc_len,label_len).equals(nowdoc)) {
//nowdoc = null;
//nowdoc_len = 0;
//yypushback(1);
//yybegin(ST_PHP_END_NOWDOC);
if ((label_len - nowdoc_len-2) >= 0 && yytext().charAt(label_len - nowdoc_len-2)=='\r') {
label_len = label_len-2;
} else {
label_len--;
}
yypushback(nowdoc_len + (yylength() - label_len));
yybegin(ST_PHP_END_NOWDOC);
}
return PHP_CONSTANT_ENCAPSED_STRING;
}
case 337: break;
case 141:
{ return PHPDOC_VERSION;
}
case 338: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
return null;
}
else {
zzScanError(ZZ_NO_MATCH);
}
}
}
}
}