blob: 81e724e12d549d7b5e389e6e1802f37f5d11a657 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/* The following code was generated by JFlex 1.2.2 on 4/28/08 5:12 PM */
/*nlsXXX*/
package org.eclipse.wst.css.core.internal.parser;
import java.io.CharArrayReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.wst.css.core.internal.parser.regions.CSSTextRegionFactory;
import org.eclipse.wst.css.core.internal.parserz.CSSRegionContexts;
import org.eclipse.wst.css.core.internal.parserz.CSSTextToken;
import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
/**
* This class is a scanner generated by <a
* href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
* on 4/28/08 5:12 PM from the specification file
* <tt>file:/D:/workspaces/css/cssFormatting/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex</tt>
*/
public class CSSTokenizer implements CSSRegionContexts, ICSSTokenizer {
/** this character denotes the end of file */
final public static int YYEOF = -1;
/** lexical states */
final public static int ST_SELECTOR_ATTRIBUTE_NAME = 11;
final public static int ST_IMPORT_DELIMITER = 5;
final public static int ST_DECLARATION_PRE_VALUE = 17;
final public static int ST_SELECTOR = 0;
final public static int ST_CHARSET_DELIMITER = 2;
final public static int ST_DECLARATION_VALUE = 18;
final public static int ST_PAGE_PSEUDO_PAGE = 8;
final public static int ST_IMPORT_URI = 3;
final public static int ST_SELECTOR_ATTRIBUTE_END = 14;
final public static int ST_SELECTOR_ATTRIBUTE_OPERATOR = 12;
final public static int ST_DECLARATION = 15;
final public static int ST_PAGE_DELIMITER = 9;
final public static int ST_SELECTOR_ATTRIBUTE_VALUE = 13;
final public static int ST_MEDIA_MEDIUM = 6;
final public static int ST_CHARSET_NAME = 1;
final public static int ST_IMPORT_MEDIUM = 4;
final public static int ST_DECLARATION_SEPARATOR = 16;
final public static int ST_FONT_FACE_DELIMITER = 9;
final public static int ST_MEDIA_DELIMITER = 7;
final public static int ST_SELECTOR_MODIFIER = 10;
final public static int YYINITIAL = 0;
/**
* Translates characters to character classes
*/
final private static String yycmap_packed = "\11\0\1\12\1\17\1\0\1\4\1\20\22\0\1\6\1\31\1\11" + "\1\21\1\16\1\72\1\16\1\5\1\25\1\13\1\35\1\14\1\55" + "\1\10\1\15\1\34\12\1\1\62\1\50\1\30\1\67\1\32\1\27" + "\1\36\1\43\1\26\1\40\1\57\1\46\1\64\1\61\1\41\1\51" + "\2\2\1\24\1\52\1\65\1\54\1\53\1\2\1\23\1\44\1\47" + "\1\22\5\2\1\66\1\3\1\71\1\16\1\2\1\16\1\42\1\7" + "\1\37\1\56\1\45\1\63\1\61\1\41\1\51\2\2\1\24\1\52" + "\1\65\1\54\1\53\1\2\1\23\1\44\1\47\1\22\5\2\1\60" + "\1\70\1\33\1\70\1\0\uff80\2";
/**
* Translates characters to character classes
*/
final private static char[] yycmap = yy_unpack_cmap(yycmap_packed);
/**
* Translates a state to a row index in the transition table
*/
final private static int yy_rowMap[] = {0, 59, 118, 177, 236, 295, 354, 413, 472, 531, 590, 649, 708, 767, 826, 885, 944, 1003, 1062, 1121, 1180, 1239, 1298, 1357, 1416, 1475, 1534, 1121, 1593, 1121, 1652, 1711, 1121, 1770, 1829, 1888, 1121, 1947, 2006, 2065, 2124, 2183, 2242, 1121, 2301, 2360, 2419, 1121, 1121, 2478, 2537, 2596, 1121, 2655, 2714, 1121, 1121, 2773, 2832, 2891, 1121, 2950, 1121, 3009, 3068, 3127, 3186, 3245, 3304, 3363, 3422, 1121, 1121, 3481, 3540, 3599, 3658, 3717, 3776, 1121, 3835, 3894, 3953, 4012, 4071, 1593, 1121, 4130, 1239, 4189, 4248, 1416, 4307, 1475, 4366, 4425, 4484, 4543, 4602, 4661, 4720, 4779, 4838, 4897, 4956, 1770, 5015, 1121, 1888, 5074, 1947, 5133, 1121, 2006, 5192, 5251, 2183, 5310, 2360, 5369, 2537, 5428, 5487, 1121, 2714, 2832, 5546, 3068, 5605, 3127, 5664, 1121, 3245, 5723, 3363, 5782, 5841, 5900, 5959, 3894, 1121, 3599, 1121, 6018, 3658, 6077, 1121, 3776, 6136, 6195, 3953, 6254, 6313, 6372, 4071, 6431, 1121, 4130, 6490, 1121, 6549, 6608,
6667, 6726, 6785, 6844, 6903, 6962, 7021, 7080, 7139, 7198, 1770, 7257, 7316, 1888, 7375, 7434, 1947, 7493, 7552, 2006, 7611, 7670, 7729, 7788, 7847, 7906, 7965, 8024, 3127, 8083, 8142, 3245, 8201, 8260, 8319, 8378, 8437, 3658, 8496, 8555, 3776, 8614, 8673, 8732, 8791, 8850, 8909, 8968, 9027, 1121, 1121, 9086, 9145, 9204, 9263, 9322, 9381, 9440, 9499, 9558, 9617, 9676, 9735, 9794, 9853, 9912, 9971, 10030, 10089, 10148, 10207, 10266, 10325, 10384, 10443, 10502, 10561, 10620, 10679, 10738, 10797, 10856, 10915, 10974, 11033, 11092, 11151, 11210, 1121, 11269, 11328, 1121, 11387, 11446, 11505, 11564, 11623, 11682, 11741, 11800, 11859, 11918, 1121, 11977, 12036, 12095, 12154, 12213, 12272, 12331, 12390, 12449, 12508, 12567, 12626, 12685, 12744, 12803, 12862, 12921, 10797, 12980, 13039, 1121, 13098, 13157, 13216, 13275, 13334, 13393, 1121, 13452, 13511, 13570, 13629, 13688, 13747, 13806, 13865, 13924, 11741, 13983, 14042, 14101, 14160, 14219, 14278, 14337, 14396, 14455,
14514, 14573, 14632, 14691, 14750, 14809, 14868, 14927, 14986, 15045, 12862, 15104, 15163, 15222, 15281, 15340, 15399, 15458, 1121, 15517, 15576, 15635, 15694, 15753, 15812, 15871, 15930, 15989, 16048, 16107, 16166, 16225, 16284, 16343, 16402, 16461, 16520, 16579, 16638, 16697, 16756, 16815, 16874, 16933, 16992, 17051, 17110, 17169, 17228, 17287, 17346, 17405, 17464, 17523, 17582, 17641, 17700, 17759, 1121, 17818, 17877, 17936, 17995, 18054, 18113, 18172, 18231, 18290, 11859, 18349, 11918, 18408, 18467, 18526, 18585, 18644, 18703, 18762, 18821, 18880, 18939, 12980, 18998, 13039, 19057, 19116, 19175, 19234, 19293, 19352, 19411, 19470, 19529, 19588, 19647, 1121, 19706, 19765, 19824, 19883, 1121, 19942, 20001, 20060, 1121, 20119, 20178, 20237, 20296, 20355, 20414, 20473, 20532, 20591, 20650};
/**
* The packed transition table of the DFA
*/
final private static String yy_packed = "\2\24\1\25\1\26\1\27\1\24\1\27\1\25\1\30" + "\1\24\1\27\2\24\1\31\1\24\2\27\1\32\3\25" + "\1\24\1\25\1\24\1\33\2\24\1\34\1\35\1\36" + "\1\37\11\25\1\24\4\25\1\24\2\25\1\24\1\25" + "\1\40\3\25\1\41\10\24\1\27\1\42\1\27\1\24" + "\1\43\1\44\1\27\4\24\2\27\7\24\1\33\2\24" + "\1\34\1\35\1\24\1\37\40\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\26\24" + "\1\27\1\46\1\27\1\24\1\43\1\47\1\27\4\24" + "\2\27\1\24\1\50\5\24\1\33\2\24\1\34\1\35" + "\1\24\1\37\11\24\1\45\24\24\1\51\1\52\1\27" + "\1\24\1\27\1\51\1\53\1\24\1\27\4\24\2\27" + "\1\24\3\51\1\24\1\51\1\24\1\33\2\24\1\34" + "\1\35\1\24\1\37\11\51\1\45\4\51\1\24\2\51" + "\1\24\1\51\1\24\3\51\11\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\4\24" + "\1\54\17\24\1\55\1\56\1\27\1\24\1\27\1\55" + "\1\57\1\24\1\27\4\24\2\27\1\24\3\55\1\24" + "\1\55\1\24\1\33\2\24\1\34\1\35\1\24\1\37"
+ "\11\55\1\24\4\55\1\24\2\55\1\24\1\55\1\24" + "\3\55\11\24\1\27\1\24\1\27\1\24\1\43\1\24" + "\1\27\4\24\2\27\7\24\1\33\2\24\1\34\1\35" + "\1\24\1\37\16\24\1\60\2\24\1\61\14\24\1\62" + "\1\63\1\27\1\24\1\27\1\62\1\64\1\24\1\27" + "\4\24\2\27\1\24\3\62\1\24\1\62\1\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\11\62\1\24\4\62" + "\1\24\2\62\1\65\1\62\1\66\3\62\11\24\1\27" + "\1\24\1\27\1\24\1\43\1\24\1\27\4\24\2\27" + "\7\24\1\33\2\24\1\34\1\35\1\24\1\37\21\24" + "\1\65\16\24\1\67\1\24\1\67\1\24\1\43\1\24" + "\1\67\1\24\1\70\1\31\1\24\2\67\1\32\6\24" + "\1\33\1\24\1\70\1\34\1\35\1\36\1\37\16\24" + "\1\71\2\24\1\65\1\24\1\40\3\24\1\41\6\24" + "\1\72\1\73\1\27\1\24\1\27\1\72\1\74\1\24" + "\1\27\4\24\2\27\1\24\3\72\1\24\1\72\1\24" + "\1\33\2\24\1\34\1\35\1\24\1\37\11\72\1\24" + "\4\72\1\24\2\72\1\24\1\72\1\24\3\72\11\24" + "\1\27\1\24\1\27\1\24\1\43\1\24\1\27\4\24" + "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37" + "\30\24\1\75\1\76\1\77\3\24\1\100\1\101\1\27"
+ "\1\102\1\27\1\100\1\103\1\104\1\27\4\24\2\27" + "\1\24\3\100\1\24\1\100\1\24\1\33\2\24\1\34" + "\1\35\1\24\1\37\11\100\1\24\4\100\1\24\2\100" + "\1\24\1\100\1\24\3\100\11\24\1\27\1\24\1\27" + "\1\24\1\43\1\24\1\27\4\24\2\27\7\24\1\33" + "\2\24\1\34\1\35\1\24\1\37\32\24\1\77\3\24" + "\1\105\1\106\1\27\1\24\1\27\1\105\1\107\1\24" + "\1\27\4\24\2\27\1\24\3\105\1\24\1\105\1\24" + "\1\33\2\24\1\34\1\35\1\24\1\37\11\105\1\110" + "\4\105\1\24\2\105\1\24\1\105\1\24\3\105\11\24" + "\1\27\1\24\1\27\1\24\1\43\1\24\1\27\4\24" + "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37" + "\11\24\1\110\11\24\1\111\11\24\1\112\1\113\1\114" + "\1\27\1\115\1\27\1\113\1\116\1\117\1\27\1\120" + "\1\121\1\122\1\24\2\27\1\123\1\124\2\113\1\24" + "\1\113\1\24\1\33\1\125\1\24\1\34\1\126\1\24" + "\1\37\11\113\1\110\4\113\1\127\2\113\1\24\1\113" + "\1\24\3\113\6\24\1\112\1\113\1\114\1\130\1\115" + "\1\130\1\113\1\116\1\117\1\130\1\120\1\121\1\122" + "\1\24\2\130\1\123\1\124\2\113\1\24\1\113\1\24"
+ "\1\33\1\125\1\24\1\34\1\126\1\24\1\37\11\113" + "\1\110\4\113\1\127\2\113\1\24\1\113\1\24\3\113" + "\5\24\74\0\2\25\1\131\3\0\2\25\11\0\3\25" + "\1\0\1\25\10\0\11\25\1\0\4\25\1\0\2\25" + "\1\0\1\25\1\0\3\25\6\0\1\132\2\25\1\0" + "\2\25\1\132\2\25\1\0\4\25\2\0\16\25\1\132" + "\2\25\1\132\2\25\1\132\10\25\1\132\4\25\1\132" + "\7\25\4\0\1\27\1\0\1\27\3\0\1\27\4\0" + "\2\27\54\0\1\25\1\131\3\0\1\25\1\133\11\0" + "\3\25\1\0\1\25\10\0\11\25\1\0\4\25\1\0" + "\2\25\1\0\1\25\1\0\3\25\6\0\2\134\1\135" + "\3\0\2\134\11\0\3\134\1\0\1\134\10\0\11\134" + "\1\0\4\134\1\0\2\134\1\0\1\134\1\0\3\134" + "\6\0\2\136\1\137\3\0\2\136\11\0\3\136\1\0" + "\1\136\10\0\11\136\1\0\4\136\1\0\2\136\1\0" + "\1\136\1\0\3\136\36\0\1\140\76\0\1\141\74\0" + "\2\142\10\0\1\143\1\144\1\145\7\0\2\146\10\0" + "\1\147\1\150\3\0\1\147\1\151\11\0\3\147\1\0" + "\1\147\10\0\11\147\1\0\4\147\1\0\2\147\1\0" + "\1\147\1\0\3\147\6\0\2\152\1\153\1\0\1\154" + "\11\152\2\0\52\152\10\0\1\133\63\0\2\155\1\156"
+ "\1\0\4\155\1\154\5\155\2\0\52\155\1\0\2\157" + "\1\160\1\0\1\161\11\157\2\0\52\157\1\0\2\162" + "\1\163\1\0\4\162\1\161\5\162\2\0\52\162\23\0" + "\1\164\50\0\2\51\1\165\3\0\2\51\11\0\3\51" + "\1\0\1\51\10\0\11\51\1\0\4\51\1\0\2\51" + "\1\0\1\51\1\0\3\51\6\0\1\166\2\51\1\0" + "\2\51\1\166\2\51\1\0\4\51\2\0\16\51\1\166" + "\2\51\1\166\2\51\1\166\10\51\1\166\4\51\1\166" + "\7\51\2\0\1\51\1\165\3\0\1\51\1\133\11\0" + "\3\51\1\0\1\51\10\0\11\51\1\0\4\51\1\0" + "\2\51\1\0\1\51\1\0\3\51\6\0\2\55\1\167" + "\3\0\2\55\11\0\3\55\1\0\1\55\10\0\11\55" + "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55" + "\6\0\1\170\2\55\1\0\2\55\1\170\2\55\1\0" + "\4\55\2\0\16\55\1\170\2\55\1\170\2\55\1\170" + "\10\55\1\170\4\55\1\170\7\55\2\0\1\55\1\167" + "\3\0\1\55\1\133\11\0\3\55\1\0\1\55\10\0" + "\11\55\1\0\4\55\1\0\2\55\1\0\1\55\1\0" + "\3\55\6\0\2\62\1\171\3\0\2\62\11\0\3\62" + "\1\0\1\62\10\0\11\62\1\0\4\62\1\0\2\62" + "\1\0\1\62\1\0\3\62\6\0\1\172\2\62\1\0"
+ "\2\62\1\172\2\62\1\0\4\62\2\0\16\62\1\172" + "\2\62\1\172\2\62\1\172\10\62\1\172\4\62\1\172" + "\7\62\2\0\1\62\1\171\3\0\1\62\1\133\11\0" + "\3\62\1\0\1\62\10\0\11\62\1\0\4\62\1\0" + "\2\62\1\0\1\62\1\0\3\62\7\0\1\62\1\171" + "\3\0\1\62\1\173\11\0\3\62\1\0\1\62\10\0" + "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0" + "\3\62\5\0\4\174\1\175\1\174\1\175\3\174\1\175" + "\1\174\1\0\2\174\2\175\11\174\1\0\1\174\1\0" + "\23\174\1\0\12\174\1\0\2\72\1\176\3\0\2\72" + "\11\0\3\72\1\0\1\72\10\0\11\72\1\0\4\72" + "\1\0\2\72\1\0\1\72\1\0\3\72\6\0\1\177" + "\2\72\1\0\2\72\1\177\2\72\1\0\4\72\2\0" + "\16\72\1\177\2\72\1\177\2\72\1\177\10\72\1\177" + "\4\72\1\177\7\72\2\0\1\72\1\176\3\0\1\72" + "\1\133\11\0\3\72\1\0\1\72\10\0\11\72\1\0" + "\4\72\1\0\2\72\1\0\1\72\1\0\3\72\74\0" + "\1\75\4\0\2\100\1\200\3\0\2\100\11\0\3\100" + "\1\0\1\100\10\0\11\100\1\0\4\100\1\0\2\100" + "\1\0\1\100\1\0\3\100\6\0\1\201\2\100\1\0" + "\2\100\1\201\2\100\1\0\4\100\2\0\16\100\1\201"
+ "\2\100\1\201\2\100\1\201\10\100\1\201\4\100\1\201" + "\7\100\1\0\2\202\1\203\1\0\1\204\11\202\2\0" + "\52\202\2\0\1\100\1\200\3\0\1\100\1\133\11\0" + "\3\100\1\0\1\100\10\0\11\100\1\0\4\100\1\0" + "\2\100\1\0\1\100\1\0\3\100\6\0\2\205\1\206" + "\1\0\4\205\1\204\5\205\2\0\52\205\1\0\2\105" + "\1\207\3\0\2\105\11\0\3\105\1\0\1\105\10\0" + "\11\105\1\0\4\105\1\0\2\105\1\0\1\105\1\0" + "\3\105\6\0\1\210\2\105\1\0\2\105\1\210\2\105" + "\1\0\4\105\2\0\16\105\1\210\2\105\1\210\2\105" + "\1\210\10\105\1\210\4\105\1\210\7\105\2\0\1\105" + "\1\207\3\0\1\105\1\133\11\0\3\105\1\0\1\105" + "\10\0\11\105\1\0\4\105\1\0\2\105\1\0\1\105" + "\1\0\3\105\6\0\1\112\1\211\1\212\3\0\1\211" + "\1\213\4\0\1\214\4\0\3\211\1\0\1\211\10\0" + "\11\211\1\0\4\211\1\0\2\211\1\0\1\211\1\0" + "\3\211\4\0\1\215\1\0\2\113\1\216\3\0\2\113" + "\11\0\3\113\1\217\1\113\10\0\11\113\1\0\4\113" + "\1\0\2\113\1\0\1\113\1\0\3\113\6\0\1\220" + "\2\113\1\0\2\113\1\220\2\113\1\0\4\113\2\0"
+ "\16\113\1\220\2\113\1\220\2\113\1\220\10\113\1\220" + "\4\113\1\220\7\113\1\0\2\221\1\222\1\0\1\223" + "\11\221\2\0\52\221\1\0\1\112\1\113\1\216\3\0" + "\1\113\1\133\4\0\1\214\4\0\3\113\1\0\1\113" + "\10\0\11\113\1\0\4\113\1\0\2\113\1\0\1\113" + "\1\0\3\113\6\0\2\224\1\225\1\0\4\224\1\223" + "\5\224\2\0\52\224\1\0\1\112\13\0\1\214\56\0" + "\1\226\72\0\2\227\1\230\3\0\2\227\11\0\3\227" + "\1\0\1\227\10\0\11\227\1\0\4\227\1\0\2\227" + "\1\0\1\227\1\0\3\227\6\0\2\113\1\216\3\0" + "\2\113\3\0\1\231\5\0\1\113\1\232\1\113\1\217" + "\1\113\10\0\11\113\1\0\4\113\1\0\2\113\1\0" + "\1\113\1\0\3\113\11\0\1\233\1\0\1\233\3\0" + "\1\233\4\0\2\233\30\0\1\234\21\0\4\235\1\236" + "\1\235\1\236\3\235\1\236\4\235\2\236\12\235\1\0" + "\14\235\1\0\22\235\1\0\1\237\1\25\1\131\1\25" + "\1\0\1\25\1\237\1\25\1\0\1\25\4\0\2\25" + "\1\0\3\25\1\0\1\25\10\0\1\237\2\25\1\237" + "\2\25\1\237\2\25\1\0\4\25\1\0\1\237\1\25" + "\1\0\1\25\1\0\1\237\2\25\37\0\1\240\41\0"
+ "\1\241\2\134\1\0\2\134\1\241\2\134\1\0\4\134" + "\2\0\16\134\1\241\2\134\1\241\2\134\1\241\10\134" + "\1\241\4\134\1\241\7\134\1\0\1\242\2\136\1\0" + "\2\136\1\242\2\136\1\0\4\136\2\0\16\136\1\242" + "\2\136\1\242\2\136\1\242\10\136\1\242\4\136\1\242" + "\7\136\10\0\1\243\62\0\35\141\1\244\35\141\41\0" + "\1\245\103\0\1\246\65\0\2\247\66\0\2\250\103\0" + "\1\251\17\0\2\147\1\150\3\0\2\147\11\0\3\147" + "\1\252\1\147\10\0\11\147\1\0\4\147\1\0\2\147" + "\1\0\1\147\1\0\3\147\6\0\1\253\2\147\1\0" + "\2\147\1\253\2\147\1\0\4\147\2\0\16\147\1\253" + "\2\147\1\253\2\147\1\253\10\147\1\253\4\147\1\253" + "\7\147\2\0\1\147\1\150\3\0\1\147\12\0\3\147" + "\1\0\1\147\10\0\11\147\1\0\4\147\1\0\2\147" + "\1\0\1\147\1\0\3\147\6\0\1\254\1\152\1\153" + "\1\152\1\255\1\152\1\254\10\152\1\256\16\152\1\254" + "\2\152\1\254\2\152\1\254\10\152\1\254\4\152\1\254" + "\7\152\1\0\1\257\1\155\1\156\3\155\1\257\1\155" + "\1\260\6\155\1\261\16\155\1\257\2\155\1\257\2\155"
+ "\1\257\10\155\1\257\4\155\1\257\7\155\1\0\1\262" + "\1\157\1\160\1\157\1\263\1\157\1\262\10\157\1\264" + "\16\157\1\262\2\157\1\262\2\157\1\262\10\157\1\262" + "\4\157\1\262\7\157\1\0\1\265\1\162\1\163\3\162" + "\1\265\1\162\1\266\6\162\1\267\16\162\1\265\2\162" + "\1\265\2\162\1\265\10\162\1\265\4\162\1\265\7\162" + "\24\0\1\270\47\0\1\271\1\51\1\165\1\51\1\0" + "\1\51\1\271\1\51\1\0\1\51\4\0\2\51\1\0" + "\3\51\1\0\1\51\10\0\1\271\2\51\1\271\2\51" + "\1\271\2\51\1\0\4\51\1\0\1\271\1\51\1\0" + "\1\51\1\0\1\271\2\51\6\0\1\272\1\55\1\167" + "\1\55\1\0\1\55\1\272\1\55\1\0\1\55\4\0" + "\2\55\1\0\3\55\1\0\1\55\10\0\1\272\2\55" + "\1\272\2\55\1\272\2\55\1\0\4\55\1\0\1\272" + "\1\55\1\0\1\55\1\0\1\272\2\55\6\0\1\273" + "\1\62\1\171\1\62\1\0\1\62\1\273\1\62\1\0" + "\1\62\4\0\2\62\1\0\3\62\1\0\1\62\10\0" + "\1\273\2\62\1\273\2\62\1\273\2\62\1\0\4\62" + "\1\0\1\273\1\62\1\0\1\62\1\0\1\273\2\62" + "\7\0\1\62\1\171\3\0\1\62\12\0\3\62\1\0"
+ "\1\62\10\0\11\62\1\0\4\62\1\0\2\62\1\0" + "\1\62\1\0\3\62\6\0\1\274\1\72\1\176\1\72" + "\1\0\1\72\1\274\1\72\1\0\1\72\4\0\2\72" + "\1\0\3\72\1\0\1\72\10\0\1\274\2\72\1\274" + "\2\72\1\274\2\72\1\0\4\72\1\0\1\274\1\72" + "\1\0\1\72\1\0\1\274\2\72\6\0\1\275\1\100" + "\1\200\1\100\1\0\1\100\1\275\1\100\1\0\1\100" + "\4\0\2\100\1\0\3\100\1\0\1\100\10\0\1\275" + "\2\100\1\275\2\100\1\275\2\100\1\0\4\100\1\0" + "\1\275\1\100\1\0\1\100\1\0\1\275\2\100\6\0" + "\1\276\1\202\1\203\1\202\1\277\1\202\1\276\10\202" + "\1\300\16\202\1\276\2\202\1\276\2\202\1\276\10\202" + "\1\276\4\202\1\276\7\202\1\0\1\301\1\205\1\206" + "\3\205\1\301\1\205\1\302\6\205\1\303\16\205\1\301" + "\2\205\1\301\2\205\1\301\10\205\1\301\4\205\1\301" + "\7\205\1\0\1\304\1\105\1\207\1\105\1\0\1\105" + "\1\304\1\105\1\0\1\105\4\0\2\105\1\0\3\105" + "\1\0\1\105\10\0\1\304\2\105\1\304\2\105\1\304" + "\2\105\1\0\4\105\1\0\1\304\1\105\1\0\1\105" + "\1\0\1\304\2\105\6\0\2\211\1\212\3\0\2\211"
+ "\11\0\3\211\1\0\1\211\10\0\11\211\1\0\4\211" + "\1\0\2\211\1\0\1\211\1\0\3\211\6\0\1\305" + "\2\211\1\0\2\211\1\305\2\211\1\0\4\211\2\0" + "\16\211\1\305\2\211\1\305\2\211\1\305\10\211\1\305" + "\4\211\1\305\7\211\2\0\1\211\1\212\3\0\1\211" + "\12\0\3\211\1\0\1\211\10\0\11\211\1\0\4\211" + "\1\0\2\211\1\0\1\211\1\0\3\211\6\0\1\306" + "\1\113\1\216\1\113\1\0\1\113\1\306\1\113\1\0" + "\1\113\4\0\2\113\1\0\3\113\1\217\1\113\10\0" + "\1\306\2\113\1\306\2\113\1\306\2\113\1\0\4\113" + "\1\0\1\306\1\113\1\0\1\113\1\0\1\306\2\113" + "\6\0\1\307\1\221\1\222\1\221\1\310\1\221\1\307" + "\10\221\1\311\16\221\1\307\2\221\1\307\2\221\1\307" + "\10\221\1\307\4\221\1\307\7\221\1\0\1\312\1\224" + "\1\225\3\224\1\312\1\224\1\313\6\224\1\314\16\224" + "\1\312\2\224\1\312\2\224\1\312\10\224\1\312\4\224" + "\1\312\7\224\1\0\1\226\1\211\1\212\3\0\1\211" + "\1\213\11\0\3\211\1\0\1\211\10\0\11\211\1\0" + "\4\211\1\0\2\211\1\0\1\211\1\0\3\211\4\0"
+ "\1\215\1\0\1\315\2\227\1\0\2\227\1\315\2\227" + "\1\0\4\227\2\0\16\227\1\315\2\227\1\315\2\227" + "\1\315\10\227\1\315\4\227\1\315\7\227\1\0\1\316" + "\5\0\1\316\16\0\2\316\7\0\2\316\1\0\2\316" + "\1\0\2\316\7\0\2\316\3\0\2\316\7\0\2\113" + "\1\216\3\0\2\113\11\0\2\113\1\317\1\217\1\113" + "\10\0\11\113\1\0\4\113\1\0\2\113\1\0\1\113" + "\1\0\3\113\57\0\1\320\21\0\1\321\1\25\1\131" + "\1\25\1\0\1\25\1\321\1\25\1\0\1\25\4\0" + "\2\25\1\0\3\25\1\0\1\25\10\0\1\321\2\25" + "\1\321\2\25\1\321\2\25\1\0\4\25\1\0\1\321" + "\1\25\1\0\1\25\1\0\1\321\2\25\6\0\1\322" + "\1\134\1\135\1\134\1\0\1\134\1\322\1\134\1\0" + "\1\134\4\0\2\134\1\0\3\134\1\0\1\134\10\0" + "\1\322\2\134\1\322\2\134\1\322\2\134\1\0\4\134" + "\1\0\1\322\1\134\1\0\1\134\1\0\1\322\2\134" + "\6\0\1\323\1\136\1\137\1\136\1\0\1\136\1\323" + "\1\136\1\0\1\136\4\0\2\136\1\0\3\136\1\0" + "\1\136\10\0\1\323\2\136\1\323\2\136\1\323\2\136" + "\1\0\4\136\1\0\1\323\1\136\1\0\1\136\1\0"
+ "\1\323\2\136\15\0\1\324\62\0\34\141\1\325\1\244" + "\35\141\42\0\2\326\102\0\1\327\75\0\2\330\74\0" + "\1\331\76\0\1\332\7\0\1\333\1\334\1\252\1\0" + "\1\252\1\333\1\335\1\0\1\252\4\0\2\252\1\0" + "\3\333\1\0\1\333\10\0\11\333\1\0\4\333\1\0" + "\2\333\1\0\1\333\1\0\3\333\6\0\1\336\1\147" + "\1\150\1\147\1\0\1\147\1\336\1\147\1\0\1\147" + "\4\0\2\147\1\0\3\147\1\252\1\147\10\0\1\336" + "\2\147\1\336\2\147\1\336\2\147\1\0\4\147\1\0" + "\1\336\1\147\1\0\1\147\1\0\1\336\2\147\6\0" + "\1\337\1\152\1\153\1\152\1\154\1\152\1\337\27\152" + "\1\337\2\152\1\337\2\152\1\337\10\152\1\337\4\152" + "\1\337\7\152\1\0\2\152\1\153\1\0\1\154\12\152" + "\1\0\52\152\1\0\1\340\1\155\1\156\3\155\1\340" + "\1\155\1\154\25\155\1\340\2\155\1\340\2\155\1\340" + "\10\155\1\340\4\155\1\340\7\155\1\0\2\155\1\156" + "\1\0\4\155\1\154\6\155\1\0\52\155\1\0\1\341" + "\1\157\1\160\1\157\1\161\1\157\1\341\27\157\1\341" + "\2\157\1\341\2\157\1\341\10\157\1\341\4\157\1\341"
+ "\7\157\1\0\2\157\1\160\1\0\1\161\12\157\1\0" + "\52\157\1\0\1\342\1\162\1\163\3\162\1\342\1\162" + "\1\161\25\162\1\342\2\162\1\342\2\162\1\342\10\162" + "\1\342\4\162\1\342\7\162\1\0\2\162\1\163\1\0" + "\4\162\1\161\6\162\1\0\52\162\25\0\1\343\46\0" + "\1\344\1\51\1\165\1\51\1\0\1\51\1\344\1\51" + "\1\0\1\51\4\0\2\51\1\0\3\51\1\0\1\51" + "\10\0\1\344\2\51\1\344\2\51\1\344\2\51\1\0" + "\4\51\1\0\1\344\1\51\1\0\1\51\1\0\1\344" + "\2\51\6\0\1\345\1\55\1\167\1\55\1\0\1\55" + "\1\345\1\55\1\0\1\55\4\0\2\55\1\0\3\55" + "\1\0\1\55\10\0\1\345\2\55\1\345\2\55\1\345" + "\2\55\1\0\4\55\1\0\1\345\1\55\1\0\1\55" + "\1\0\1\345\2\55\6\0\1\346\1\62\1\171\1\62" + "\1\0\1\62\1\346\1\62\1\0\1\62\4\0\2\62" + "\1\0\3\62\1\0\1\62\10\0\1\346\2\62\1\346" + "\2\62\1\346\2\62\1\0\4\62\1\0\1\346\1\62" + "\1\0\1\62\1\0\1\346\2\62\6\0\1\347\1\72" + "\1\176\1\72\1\0\1\72\1\347\1\72\1\0\1\72" + "\4\0\2\72\1\0\3\72\1\0\1\72\10\0\1\347" + "\2\72\1\347\2\72\1\347\2\72\1\0\4\72\1\0"
+ "\1\347\1\72\1\0\1\72\1\0\1\347\2\72\6\0" + "\1\350\1\100\1\200\1\100\1\0\1\100\1\350\1\100" + "\1\0\1\100\4\0\2\100\1\0\3\100\1\0\1\100" + "\10\0\1\350\2\100\1\350\2\100\1\350\2\100\1\0" + "\4\100\1\0\1\350\1\100\1\0\1\100\1\0\1\350" + "\2\100\6\0\1\351\1\202\1\203\1\202\1\204\1\202" + "\1\351\27\202\1\351\2\202\1\351\2\202\1\351\10\202" + "\1\351\4\202\1\351\7\202\1\0\2\202\1\203\1\0" + "\1\204\12\202\1\0\52\202\1\0\1\352\1\205\1\206" + "\3\205\1\352\1\205\1\204\25\205\1\352\2\205\1\352" + "\2\205\1\352\10\205\1\352\4\205\1\352\7\205\1\0" + "\2\205\1\206\1\0\4\205\1\204\6\205\1\0\52\205" + "\1\0\1\353\1\105\1\207\1\105\1\0\1\105\1\353" + "\1\105\1\0\1\105\4\0\2\105\1\0\3\105\1\0" + "\1\105\10\0\1\353\2\105\1\353\2\105\1\353\2\105" + "\1\0\4\105\1\0\1\353\1\105\1\0\1\105\1\0" + "\1\353\2\105\6\0\1\354\1\211\1\212\1\211\1\0" + "\1\211\1\354\1\211\1\0\1\211\4\0\2\211\1\0" + "\3\211\1\0\1\211\10\0\1\354\2\211\1\354\2\211" + "\1\354\2\211\1\0\4\211\1\0\1\354\1\211\1\0"
+ "\1\211\1\0\1\354\2\211\6\0\1\355\1\113\1\216" + "\1\113\1\0\1\113\1\355\1\113\1\0\1\113\4\0" + "\2\113\1\0\3\113\1\217\1\113\10\0\1\355\2\113" + "\1\355\2\113\1\355\2\113\1\0\4\113\1\0\1\355" + "\1\113\1\0\1\113\1\0\1\355\2\113\6\0\1\356" + "\1\221\1\222\1\221\1\223\1\221\1\356\27\221\1\356" + "\2\221\1\356\2\221\1\356\10\221\1\356\4\221\1\356" + "\7\221\1\0\2\221\1\222\1\0\1\223\12\221\1\0" + "\52\221\1\0\1\357\1\224\1\225\3\224\1\357\1\224" + "\1\223\25\224\1\357\2\224\1\357\2\224\1\357\10\224" + "\1\357\4\224\1\357\7\224\1\0\2\224\1\225\1\0" + "\4\224\1\223\6\224\1\0\52\224\1\0\1\360\1\227" + "\1\230\1\227\1\0\1\227\1\360\1\227\1\0\1\227" + "\4\0\2\227\1\0\3\227\1\0\1\227\10\0\1\360" + "\2\227\1\360\2\227\1\360\2\227\1\0\4\227\1\0" + "\1\360\1\227\1\0\1\227\1\0\1\360\2\227\6\0" + "\1\361\5\0\1\361\1\362\15\0\2\361\7\0\2\361" + "\1\0\2\361\1\0\2\361\7\0\2\361\3\0\2\361" + "\7\0\2\113\1\216\3\0\2\113\11\0\3\113\1\363" + "\1\113\10\0\11\113\1\0\4\113\1\0\2\113\1\0"
+ "\1\113\1\0\3\113\60\0\1\364\20\0\1\365\1\25" + "\1\131\1\25\1\0\1\25\1\365\1\25\1\0\1\25" + "\4\0\2\25\1\0\3\25\1\0\1\25\10\0\1\365" + "\2\25\1\365\2\25\1\365\2\25\1\0\4\25\1\0" + "\1\365\1\25\1\0\1\25\1\0\1\365\2\25\6\0" + "\1\366\1\134\1\135\1\134\1\0\1\134\1\366\1\134" + "\1\0\1\134\4\0\2\134\1\0\3\134\1\0\1\134" + "\10\0\1\366\2\134\1\366\2\134\1\366\2\134\1\0" + "\4\134\1\0\1\366\1\134\1\0\1\134\1\0\1\366" + "\2\134\6\0\1\367\1\136\1\137\1\136\1\0\1\136" + "\1\367\1\136\1\0\1\136\4\0\2\136\1\0\3\136" + "\1\0\1\136\10\0\1\367\2\136\1\367\2\136\1\367" + "\2\136\1\0\4\136\1\0\1\367\1\136\1\0\1\136" + "\1\0\1\367\2\136\30\0\1\370\123\0\1\371\67\0" + "\1\372\66\0\2\373\73\0\1\374\24\0\2\333\1\334" + "\1\375\1\0\1\375\2\333\1\0\1\375\1\376\3\0" + "\2\375\1\0\3\333\1\0\1\333\10\0\11\333\1\0" + "\4\333\1\0\2\333\1\0\1\333\1\0\3\333\6\0" + "\1\377\2\333\1\0\2\333\1\377\2\333\1\0\4\333" + "\2\0\16\333\1\377\2\333\1\377\2\333\1\377\10\333"
+ "\1\377\4\333\1\377\7\333\2\0\1\333\1\334\3\0" + "\1\333\12\0\3\333\1\0\1\333\10\0\11\333\1\0" + "\4\333\1\0\2\333\1\0\1\333\1\0\3\333\6\0" + "\1\u0100\1\147\1\150\1\147\1\0\1\147\1\u0100\1\147" + "\1\0\1\147\4\0\2\147\1\0\3\147\1\252\1\147" + "\10\0\1\u0100\2\147\1\u0100\2\147\1\u0100\2\147\1\0" + "\4\147\1\0\1\u0100\1\147\1\0\1\147\1\0\1\u0100" + "\2\147\6\0\1\u0101\1\152\1\153\1\152\1\154\1\152" + "\1\u0101\27\152\1\u0101\2\152\1\u0101\2\152\1\u0101\10\152" + "\1\u0101\4\152\1\u0101\7\152\1\0\1\u0102\1\155\1\156" + "\3\155\1\u0102\1\155\1\154\25\155\1\u0102\2\155\1\u0102" + "\2\155\1\u0102\10\155\1\u0102\4\155\1\u0102\7\155\1\0" + "\1\u0103\1\157\1\160\1\157\1\161\1\157\1\u0103\27\157" + "\1\u0103\2\157\1\u0103\2\157\1\u0103\10\157\1\u0103\4\157" + "\1\u0103\7\157\1\0\1\u0104\1\162\1\163\3\162\1\u0104" + "\1\162\1\161\25\162\1\u0104\2\162\1\u0104\2\162\1\u0104" + "\10\162\1\u0104\4\162\1\u0104\7\162\1\0\2\u0105\1\u0106"
+ "\1\343\1\u0107\1\343\2\u0105\1\u0108\1\343\1\u0109\3\u0105" + "\2\343\4\u0105\1\0\45\u0105\1\0\1\u010a\1\51\1\165" + "\1\51\1\0\1\51\1\u010a\1\51\1\0\1\51\4\0" + "\2\51\1\0\3\51\1\0\1\51\10\0\1\u010a\2\51" + "\1\u010a\2\51\1\u010a\2\51\1\0\4\51\1\0\1\u010a" + "\1\51\1\0\1\51\1\0\1\u010a\2\51\6\0\1\u010b" + "\1\55\1\167\1\55\1\0\1\55\1\u010b\1\55\1\0" + "\1\55\4\0\2\55\1\0\3\55\1\0\1\55\10\0" + "\1\u010b\2\55\1\u010b\2\55\1\u010b\2\55\1\0\4\55" + "\1\0\1\u010b\1\55\1\0\1\55\1\0\1\u010b\2\55" + "\6\0\1\u010c\1\62\1\171\1\62\1\0\1\62\1\u010c" + "\1\62\1\0\1\62\4\0\2\62\1\0\3\62\1\0" + "\1\62\10\0\1\u010c\2\62\1\u010c\2\62\1\u010c\2\62" + "\1\0\4\62\1\0\1\u010c\1\62\1\0\1\62\1\0" + "\1\u010c\2\62\6\0\1\u010d\1\72\1\176\1\72\1\0" + "\1\72\1\u010d\1\72\1\0\1\72\4\0\2\72\1\0" + "\3\72\1\0\1\72\10\0\1\u010d\2\72\1\u010d\2\72" + "\1\u010d\2\72\1\0\4\72\1\0\1\u010d\1\72\1\0" + "\1\72\1\0\1\u010d\2\72\6\0\1\u010e\1\100\1\200" + "\1\100\1\0\1\100\1\u010e\1\100\1\0\1\100\4\0"
+ "\2\100\1\0\3\100\1\0\1\100\10\0\1\u010e\2\100" + "\1\u010e\2\100\1\u010e\2\100\1\0\4\100\1\0\1\u010e" + "\1\100\1\0\1\100\1\0\1\u010e\2\100\6\0\1\u010f" + "\1\202\1\203\1\202\1\204\1\202\1\u010f\27\202\1\u010f" + "\2\202\1\u010f\2\202\1\u010f\10\202\1\u010f\4\202\1\u010f" + "\7\202\1\0\1\u0110\1\205\1\206\3\205\1\u0110\1\205" + "\1\204\25\205\1\u0110\2\205\1\u0110\2\205\1\u0110\10\205" + "\1\u0110\4\205\1\u0110\7\205\1\0\1\u0111\1\105\1\207" + "\1\105\1\0\1\105\1\u0111\1\105\1\0\1\105\4\0" + "\2\105\1\0\3\105\1\0\1\105\10\0\1\u0111\2\105" + "\1\u0111\2\105\1\u0111\2\105\1\0\4\105\1\0\1\u0111" + "\1\105\1\0\1\105\1\0\1\u0111\2\105\6\0\1\u0112" + "\1\211\1\212\1\211\1\0\1\211\1\u0112\1\211\1\0" + "\1\211\4\0\2\211\1\0\3\211\1\0\1\211\10\0" + "\1\u0112\2\211\1\u0112\2\211\1\u0112\2\211\1\0\4\211" + "\1\0\1\u0112\1\211\1\0\1\211\1\0\1\u0112\2\211" + "\6\0\1\u0113\1\113\1\216\1\113\1\0\1\113\1\u0113" + "\1\113\1\0\1\113\4\0\2\113\1\0\3\113\1\217"
+ "\1\113\10\0\1\u0113\2\113\1\u0113\2\113\1\u0113\2\113" + "\1\0\4\113\1\0\1\u0113\1\113\1\0\1\113\1\0" + "\1\u0113\2\113\6\0\1\u0114\1\221\1\222\1\221\1\223" + "\1\221\1\u0114\27\221\1\u0114\2\221\1\u0114\2\221\1\u0114" + "\10\221\1\u0114\4\221\1\u0114\7\221\1\0\1\u0115\1\224" + "\1\225\3\224\1\u0115\1\224\1\223\25\224\1\u0115\2\224" + "\1\u0115\2\224\1\u0115\10\224\1\u0115\4\224\1\u0115\7\224" + "\1\0\1\u0116\1\227\1\230\1\227\1\0\1\227\1\u0116" + "\1\227\1\0\1\227\4\0\2\227\1\0\3\227\1\0" + "\1\227\10\0\1\u0116\2\227\1\u0116\2\227\1\u0116\2\227" + "\1\0\4\227\1\0\1\u0116\1\227\1\0\1\227\1\0" + "\1\u0116\2\227\6\0\1\u0117\5\0\1\u0117\1\362\15\0" + "\2\u0117\7\0\2\u0117\1\0\2\u0117\1\0\2\u0117\7\0" + "\2\u0117\3\0\2\u0117\7\0\1\u0118\5\0\1\u0118\16\0" + "\2\u0118\7\0\2\u0118\1\0\2\u0118\1\0\2\u0118\7\0" + "\2\u0118\3\0\2\u0118\7\0\2\u0119\1\u011a\1\u011b\1\u011c" + "\1\u011b\2\u0119\1\u011d\1\u011b\1\u011e\3\u0119\2\u011b\4\u0119"
+ "\1\0\45\u0119\54\0\1\u011f\17\0\1\u0120\1\25\1\131" + "\1\25\1\0\1\25\1\u0120\1\25\1\0\1\25\4\0" + "\2\25\1\0\3\25\1\0\1\25\10\0\1\u0120\2\25" + "\1\u0120\2\25\1\u0120\2\25\1\0\4\25\1\0\1\u0120" + "\1\25\1\0\1\25\1\0\1\u0120\2\25\6\0\1\u0121" + "\1\134\1\135\1\134\1\0\1\134\1\u0121\1\134\1\0" + "\1\134\4\0\2\134\1\0\3\134\1\0\1\134\10\0" + "\1\u0121\2\134\1\u0121\2\134\1\u0121\2\134\1\0\4\134" + "\1\0\1\u0121\1\134\1\0\1\134\1\0\1\u0121\2\134" + "\6\0\1\u0122\1\136\1\137\1\136\1\0\1\136\1\u0122" + "\1\136\1\0\1\136\4\0\2\136\1\0\3\136\1\0" + "\1\136\10\0\1\u0122\2\136\1\u0122\2\136\1\u0122\2\136" + "\1\0\4\136\1\0\1\u0122\1\136\1\0\1\136\1\0" + "\1\u0122\2\136\51\0\1\u0123\51\0\1\u0124\111\0\2\u0125" + "\37\0\1\u0126\66\0\1\375\1\0\1\375\3\0\1\375" + "\1\376\3\0\2\375\53\0\1\u0127\1\333\1\334\1\333" + "\1\0\1\333\1\u0127\1\333\1\0\1\333\1\376\3\0" + "\2\333\1\0\3\333\1\0\1\333\10\0\1\u0127\2\333" + "\1\u0127\2\333\1\u0127\2\333\1\0\4\333\1\0\1\u0127"
+ "\1\333\1\0\1\333\1\0\1\u0127\2\333\6\0\1\u0128" + "\1\147\1\150\1\147\1\0\1\147\1\u0128\1\147\1\0" + "\1\147\4\0\2\147\1\0\3\147\1\252\1\147\10\0" + "\1\u0128\2\147\1\u0128\2\147\1\u0128\2\147\1\0\4\147" + "\1\0\1\u0128\1\147\1\0\1\147\1\0\1\u0128\2\147" + "\6\0\1\u0129\1\152\1\153\1\152\1\154\1\152\1\u0129" + "\27\152\1\u0129\2\152\1\u0129\2\152\1\u0129\10\152\1\u0129" + "\4\152\1\u0129\7\152\1\0\1\u012a\1\155\1\156\3\155" + "\1\u012a\1\155\1\154\25\155\1\u012a\2\155\1\u012a\2\155" + "\1\u012a\10\155\1\u012a\4\155\1\u012a\7\155\1\0\1\u012b" + "\1\157\1\160\1\157\1\161\1\157\1\u012b\27\157\1\u012b" + "\2\157\1\u012b\2\157\1\u012b\10\157\1\u012b\4\157\1\u012b" + "\7\157\1\0\1\u012c\1\162\1\163\3\162\1\u012c\1\162" + "\1\161\25\162\1\u012c\2\162\1\u012c\2\162\1\u012c\10\162" + "\1\u012c\4\162\1\u012c\7\162\1\0\2\u0105\1\u0106\1\u012d" + "\1\0\3\u0105\1\0\1\u012d\1\u0109\3\u0105\2\u012d\4\u0105" + "\1\0\45\u0105\1\0\1\u012e\1\u0105\1\u0106\1\u012d\2\u0105"
+ "\1\u012e\2\u0105\1\u012d\1\u012f\3\u0105\2\u012d\16\u0105\1\u012e" + "\2\u0105\1\u012e\2\u0105\1\u012e\10\u0105\1\u012e\4\u0105\1\u012e" + "\7\u0105\1\0\2\u0107\1\u0130\1\0\1\u012d\11\u0107\2\0" + "\52\u0107\1\0\2\u0108\1\u0131\1\0\4\u0108\1\u012d\5\u0108" + "\2\0\52\u0108\1\0\1\u0132\1\51\1\165\1\51\1\0" + "\1\51\1\u0132\1\51\1\0\1\51\4\0\2\51\1\0" + "\3\51\1\0\1\51\10\0\1\u0132\2\51\1\u0132\2\51" + "\1\u0132\2\51\1\0\4\51\1\0\1\u0132\1\51\1\0" + "\1\51\1\0\1\u0132\2\51\6\0\1\u0133\1\55\1\167" + "\1\55\1\0\1\55\1\u0133\1\55\1\0\1\55\4\0" + "\2\55\1\0\3\55\1\0\1\55\10\0\1\u0133\2\55" + "\1\u0133\2\55\1\u0133\2\55\1\0\4\55\1\0\1\u0133" + "\1\55\1\0\1\55\1\0\1\u0133\2\55\6\0\1\u0134" + "\1\62\1\171\1\62\1\0\1\62\1\u0134\1\62\1\0" + "\1\62\4\0\2\62\1\0\3\62\1\0\1\62\10\0" + "\1\u0134\2\62\1\u0134\2\62\1\u0134\2\62\1\0\4\62" + "\1\0\1\u0134\1\62\1\0\1\62\1\0\1\u0134\2\62" + "\6\0\1\u0135\1\72\1\176\1\72\1\0\1\72\1\u0135" + "\1\72\1\0\1\72\4\0\2\72\1\0\3\72\1\0"
+ "\1\72\10\0\1\u0135\2\72\1\u0135\2\72\1\u0135\2\72" + "\1\0\4\72\1\0\1\u0135\1\72\1\0\1\72\1\0" + "\1\u0135\2\72\6\0\1\u0136\1\100\1\200\1\100\1\0" + "\1\100\1\u0136\1\100\1\0\1\100\4\0\2\100\1\0" + "\3\100\1\0\1\100\10\0\1\u0136\2\100\1\u0136\2\100" + "\1\u0136\2\100\1\0\4\100\1\0\1\u0136\1\100\1\0" + "\1\100\1\0\1\u0136\2\100\6\0\1\u0137\1\202\1\203" + "\1\202\1\204\1\202\1\u0137\27\202\1\u0137\2\202\1\u0137" + "\2\202\1\u0137\10\202\1\u0137\4\202\1\u0137\7\202\1\0" + "\1\u0138\1\205\1\206\3\205\1\u0138\1\205\1\204\25\205" + "\1\u0138\2\205\1\u0138\2\205\1\u0138\10\205\1\u0138\4\205" + "\1\u0138\7\205\1\0\1\u0139\1\105\1\207\1\105\1\0" + "\1\105\1\u0139\1\105\1\0\1\105\4\0\2\105\1\0" + "\3\105\1\0\1\105\10\0\1\u0139\2\105\1\u0139\2\105" + "\1\u0139\2\105\1\0\4\105\1\0\1\u0139\1\105\1\0" + "\1\105\1\0\1\u0139\2\105\6\0\1\u013a\1\211\1\212" + "\1\211\1\0\1\211\1\u013a\1\211\1\0\1\211\4\0" + "\2\211\1\0\3\211\1\0\1\211\10\0\1\u013a\2\211"
+ "\1\u013a\2\211\1\u013a\2\211\1\0\4\211\1\0\1\u013a" + "\1\211\1\0\1\211\1\0\1\u013a\2\211\6\0\1\u013b" + "\1\113\1\216\1\113\1\0\1\113\1\u013b\1\113\1\0" + "\1\113\4\0\2\113\1\0\3\113\1\217\1\113\10\0" + "\1\u013b\2\113\1\u013b\2\113\1\u013b\2\113\1\0\4\113" + "\1\0\1\u013b\1\113\1\0\1\113\1\0\1\u013b\2\113" + "\6\0\1\u013c\1\221\1\222\1\221\1\223\1\221\1\u013c" + "\27\221\1\u013c\2\221\1\u013c\2\221\1\u013c\10\221\1\u013c" + "\4\221\1\u013c\7\221\1\0\1\u013d\1\224\1\225\3\224" + "\1\u013d\1\224\1\223\25\224\1\u013d\2\224\1\u013d\2\224" + "\1\u013d\10\224\1\u013d\4\224\1\u013d\7\224\1\0\1\u013e" + "\1\227\1\230\1\227\1\0\1\227\1\u013e\1\227\1\0" + "\1\227\4\0\2\227\1\0\3\227\1\0\1\227\10\0" + "\1\u013e\2\227\1\u013e\2\227\1\u013e\2\227\1\0\4\227" + "\1\0\1\u013e\1\227\1\0\1\227\1\0\1\u013e\2\227" + "\6\0\1\u013f\5\0\1\u013f\1\362\15\0\2\u013f\7\0" + "\2\u013f\1\0\2\u013f\1\0\2\u013f\7\0\2\u013f\3\0" + "\2\u013f\7\0\1\u0140\5\0\1\u0140\16\0\2\u0140\7\0"
+ "\2\u0140\1\0\2\u0140\1\0\2\u0140\7\0\2\u0140\3\0" + "\2\u0140\7\0\2\u0119\1\u011a\1\u0141\1\0\3\u0119\1\0" + "\1\u0141\1\u011e\3\u0119\2\u0141\4\u0119\1\0\45\u0119\1\0" + "\1\u0142\1\u0119\1\u011a\1\u0141\2\u0119\1\u0142\2\u0119\1\u0141" + "\1\u0143\3\u0119\2\u0141\16\u0119\1\u0142\2\u0119\1\u0142\2\u0119" + "\1\u0142\10\u0119\1\u0142\4\u0119\1\u0142\7\u0119\1\0\2\u011c" + "\1\u0144\1\0\1\u0141\11\u011c\2\0\52\u011c\1\0\2\u011d" + "\1\u0145\1\0\4\u011d\1\u0141\5\u011d\2\0\52\u011d\23\0" + "\1\u0146\50\0\1\u0147\1\25\1\131\1\25\1\0\1\25" + "\1\u0147\1\25\1\0\1\25\4\0\2\25\1\0\3\25" + "\1\0\1\25\10\0\1\u0147\2\25\1\u0147\2\25\1\u0147" + "\2\25\1\0\4\25\1\0\1\u0147\1\25\1\0\1\25" + "\1\0\1\u0147\2\25\6\0\1\u0148\1\134\1\135\1\134" + "\1\0\1\134\1\u0148\1\134\1\0\1\134\4\0\2\134" + "\1\0\3\134\1\0\1\134\10\0\1\u0148\2\134\1\u0148" + "\2\134\1\u0148\2\134\1\0\4\134\1\0\1\u0148\1\134" + "\1\0\1\134\1\0\1\u0148\2\134\6\0\1\u0149\1\136"
+ "\1\137\1\136\1\0\1\136\1\u0149\1\136\1\0\1\136" + "\4\0\2\136\1\0\3\136\1\0\1\136\10\0\1\u0149" + "\2\136\1\u0149\2\136\1\u0149\2\136\1\0\4\136\1\0" + "\1\u0149\1\136\1\0\1\136\1\0\1\u0149\2\136\52\0" + "\2\u014a\73\0\1\u014b\106\0\2\u014c\7\0\1\u014d\1\333" + "\1\334\1\333\1\0\1\333\1\u014d\1\333\1\0\1\333" + "\1\376\3\0\2\333\1\0\3\333\1\0\1\333\10\0" + "\1\u014d\2\333\1\u014d\2\333\1\u014d\2\333\1\0\4\333" + "\1\0\1\u014d\1\333\1\0\1\333\1\0\1\u014d\2\333" + "\6\0\1\u014e\1\147\1\150\1\147\1\0\1\147\1\u014e" + "\1\147\1\0\1\147\4\0\2\147\1\0\3\147\1\252" + "\1\147\10\0\1\u014e\2\147\1\u014e\2\147\1\u014e\2\147" + "\1\0\4\147\1\0\1\u014e\1\147\1\0\1\147\1\0" + "\1\u014e\2\147\6\0\1\u014f\1\152\1\153\1\152\1\154" + "\1\152\1\u014f\27\152\1\u014f\2\152\1\u014f\2\152\1\u014f" + "\10\152\1\u014f\4\152\1\u014f\7\152\1\0\1\u0150\1\155" + "\1\156\3\155\1\u0150\1\155\1\154\25\155\1\u0150\2\155" + "\1\u0150\2\155\1\u0150\10\155\1\u0150\4\155\1\u0150\7\155"
+ "\1\0\1\u0151\1\157\1\160\1\157\1\161\1\157\1\u0151" + "\27\157\1\u0151\2\157\1\u0151\2\157\1\u0151\10\157\1\u0151" + "\4\157\1\u0151\7\157\1\0\1\u0152\1\162\1\163\3\162" + "\1\u0152\1\162\1\161\25\162\1\u0152\2\162\1\u0152\2\162" + "\1\u0152\10\162\1\u0152\4\162\1\u0152\7\162\4\0\1\u012d" + "\1\0\1\u012d\3\0\1\u012d\1\u0109\3\0\2\u012d\53\0" + "\1\u0153\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u0153\1\u0105" + "\1\0\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u0153\2\u0105" + "\1\u0153\2\u0105\1\u0153\10\u0105\1\u0153\4\u0105\1\u0153\7\u0105" + "\1\0\1\u0154\1\u0107\1\u0130\1\u0107\1\u0155\1\u0107\1\u0154" + "\10\u0107\1\u0156\16\u0107\1\u0154\2\u0107\1\u0154\2\u0107\1\u0154" + "\10\u0107\1\u0154\4\u0107\1\u0154\7\u0107\1\0\1\u0157\1\u0108" + "\1\u0131\3\u0108\1\u0157\1\u0108\1\u0158\6\u0108\1\u0159\16\u0108" + "\1\u0157\2\u0108\1\u0157\2\u0108\1\u0157\10\u0108\1\u0157\4\u0108" + "\1\u0157\7\u0108\1\0\1\u015a\1\51\1\165\1\51\1\0"
+ "\1\51\1\u015a\1\51\1\0\1\51\4\0\2\51\1\0" + "\3\51\1\0\1\51\10\0\1\u015a\2\51\1\u015a\2\51" + "\1\u015a\2\51\1\0\4\51\1\0\1\u015a\1\51\1\0" + "\1\51\1\0\1\u015a\2\51\6\0\1\u015b\1\55\1\167" + "\1\55\1\0\1\55\1\u015b\1\55\1\0\1\55\4\0" + "\2\55\1\0\3\55\1\0\1\55\10\0\1\u015b\2\55" + "\1\u015b\2\55\1\u015b\2\55\1\0\4\55\1\0\1\u015b" + "\1\55\1\0\1\55\1\0\1\u015b\2\55\6\0\1\u015c" + "\1\62\1\171\1\62\1\0\1\62\1\u015c\1\62\1\0" + "\1\62\4\0\2\62\1\0\3\62\1\0\1\62\10\0" + "\1\u015c\2\62\1\u015c\2\62\1\u015c\2\62\1\0\4\62" + "\1\0\1\u015c\1\62\1\0\1\62\1\0\1\u015c\2\62" + "\6\0\1\u015d\1\72\1\176\1\72\1\0\1\72\1\u015d" + "\1\72\1\0\1\72\4\0\2\72\1\0\3\72\1\0" + "\1\72\10\0\1\u015d\2\72\1\u015d\2\72\1\u015d\2\72" + "\1\0\4\72\1\0\1\u015d\1\72\1\0\1\72\1\0" + "\1\u015d\2\72\6\0\1\u015e\1\100\1\200\1\100\1\0" + "\1\100\1\u015e\1\100\1\0\1\100\4\0\2\100\1\0" + "\3\100\1\0\1\100\10\0\1\u015e\2\100\1\u015e\2\100" + "\1\u015e\2\100\1\0\4\100\1\0\1\u015e\1\100\1\0"
+ "\1\100\1\0\1\u015e\2\100\6\0\1\u015f\1\202\1\203" + "\1\202\1\204\1\202\1\u015f\27\202\1\u015f\2\202\1\u015f" + "\2\202\1\u015f\10\202\1\u015f\4\202\1\u015f\7\202\1\0" + "\1\u0160\1\205\1\206\3\205\1\u0160\1\205\1\204\25\205" + "\1\u0160\2\205\1\u0160\2\205\1\u0160\10\205\1\u0160\4\205" + "\1\u0160\7\205\1\0\1\u0161\1\105\1\207\1\105\1\0" + "\1\105\1\u0161\1\105\1\0\1\105\4\0\2\105\1\0" + "\3\105\1\0\1\105\10\0\1\u0161\2\105\1\u0161\2\105" + "\1\u0161\2\105\1\0\4\105\1\0\1\u0161\1\105\1\0" + "\1\105\1\0\1\u0161\2\105\6\0\1\u0162\1\211\1\212" + "\1\211\1\0\1\211\1\u0162\1\211\1\0\1\211\4\0" + "\2\211\1\0\3\211\1\0\1\211\10\0\1\u0162\2\211" + "\1\u0162\2\211\1\u0162\2\211\1\0\4\211\1\0\1\u0162" + "\1\211\1\0\1\211\1\0\1\u0162\2\211\6\0\1\u0163" + "\1\113\1\216\1\113\1\0\1\113\1\u0163\1\113\1\0" + "\1\113\4\0\2\113\1\0\3\113\1\217\1\113\10\0" + "\1\u0163\2\113\1\u0163\2\113\1\u0163\2\113\1\0\4\113" + "\1\0\1\u0163\1\113\1\0\1\113\1\0\1\u0163\2\113"
+ "\6\0\1\u0164\1\221\1\222\1\221\1\223\1\221\1\u0164" + "\27\221\1\u0164\2\221\1\u0164\2\221\1\u0164\10\221\1\u0164" + "\4\221\1\u0164\7\221\1\0\1\u0165\1\224\1\225\3\224" + "\1\u0165\1\224\1\223\25\224\1\u0165\2\224\1\u0165\2\224" + "\1\u0165\10\224\1\u0165\4\224\1\u0165\7\224\1\0\1\u0166" + "\1\227\1\230\1\227\1\0\1\227\1\u0166\1\227\1\0" + "\1\227\4\0\2\227\1\0\3\227\1\0\1\227\10\0" + "\1\u0166\2\227\1\u0166\2\227\1\u0166\2\227\1\0\4\227" + "\1\0\1\u0166\1\227\1\0\1\227\1\0\1\u0166\2\227" + "\6\0\1\u0167\5\0\1\u0167\1\362\15\0\2\u0167\7\0" + "\2\u0167\1\0\2\u0167\1\0\2\u0167\7\0\2\u0167\3\0" + "\2\u0167\7\0\1\u0168\5\0\1\u0168\16\0\2\u0168\7\0" + "\2\u0168\1\0\2\u0168\1\0\2\u0168\7\0\2\u0168\3\0" + "\2\u0168\12\0\1\u0141\1\0\1\u0141\3\0\1\u0141\1\u011e" + "\3\0\2\u0141\53\0\1\u0169\1\u0119\1\u011a\1\u0119\1\0" + "\1\u0119\1\u0169\1\u0119\1\0\1\u0119\1\u011e\11\u0119\1\0" + "\11\u0119\1\u0169\2\u0119\1\u0169\2\u0119\1\u0169\10\u0119\1\u0169"
+ "\4\u0119\1\u0169\7\u0119\1\0\1\u016a\1\u011c\1\u0144\1\u011c" + "\1\u016b\1\u011c\1\u016a\10\u011c\1\u016c\16\u011c\1\u016a\2\u011c" + "\1\u016a\2\u011c\1\u016a\10\u011c\1\u016a\4\u011c\1\u016a\7\u011c" + "\1\0\1\u016d\1\u011d\1\u0145\3\u011d\1\u016d\1\u011d\1\u016e" + "\6\u011d\1\u016f\16\u011d\1\u016d\2\u011d\1\u016d\2\u011d\1\u016d" + "\10\u011d\1\u016d\4\u011d\1\u016d\7\u011d\47\0\1\u0170\24\0" + "\2\25\1\131\1\25\1\0\3\25\1\0\1\25\4\0" + "\2\25\1\0\3\25\1\0\1\25\10\0\11\25\1\0" + "\4\25\1\0\2\25\1\0\1\25\1\0\3\25\6\0" + "\1\u0171\1\134\1\135\1\134\1\0\1\134\1\u0171\1\134" + "\1\0\1\134\4\0\2\134\1\0\3\134\1\0\1\134" + "\10\0\1\u0171\2\134\1\u0171\2\134\1\u0171\2\134\1\0" + "\4\134\1\0\1\u0171\1\134\1\0\1\134\1\0\1\u0171" + "\2\134\6\0\1\u0172\1\136\1\137\1\136\1\0\1\136" + "\1\u0172\1\136\1\0\1\136\4\0\2\136\1\0\3\136" + "\1\0\1\136\10\0\1\u0172\2\136\1\u0172\2\136\1\u0172" + "\2\136\1\0\4\136\1\0\1\u0172\1\136\1\0\1\136"
+ "\1\0\1\u0172\2\136\54\0\1\u0173\65\0\2\u0174\30\0" + "\1\u0175\1\333\1\334\1\333\1\0\1\333\1\u0175\1\333" + "\1\0\1\333\1\376\3\0\2\333\1\0\3\333\1\0" + "\1\333\10\0\1\u0175\2\333\1\u0175\2\333\1\u0175\2\333" + "\1\0\4\333\1\0\1\u0175\1\333\1\0\1\333\1\0" + "\1\u0175\2\333\6\0\1\u0176\1\147\1\150\1\147\1\0" + "\1\147\1\u0176\1\147\1\0\1\147\4\0\2\147\1\0" + "\3\147\1\252\1\147\10\0\1\u0176\2\147\1\u0176\2\147" + "\1\u0176\2\147\1\0\4\147\1\0\1\u0176\1\147\1\0" + "\1\147\1\0\1\u0176\2\147\6\0\1\u0177\1\152\1\153" + "\1\152\1\154\1\152\1\u0177\27\152\1\u0177\2\152\1\u0177" + "\2\152\1\u0177\10\152\1\u0177\4\152\1\u0177\7\152\1\0" + "\1\u0178\1\155\1\156\3\155\1\u0178\1\155\1\154\25\155" + "\1\u0178\2\155\1\u0178\2\155\1\u0178\10\155\1\u0178\4\155" + "\1\u0178\7\155\1\0\1\u0179\1\157\1\160\1\157\1\161" + "\1\157\1\u0179\27\157\1\u0179\2\157\1\u0179\2\157\1\u0179" + "\10\157\1\u0179\4\157\1\u0179\7\157\1\0\1\u017a\1\162"
+ "\1\163\3\162\1\u017a\1\162\1\161\25\162\1\u017a\2\162" + "\1\u017a\2\162\1\u017a\10\162\1\u017a\4\162\1\u017a\7\162" + "\1\0\1\u017b\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u017b" + "\1\u0105\1\0\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u017b" + "\2\u0105\1\u017b\2\u0105\1\u017b\10\u0105\1\u017b\4\u0105\1\u017b" + "\7\u0105\1\0\1\u017c\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107" + "\1\u017c\27\u0107\1\u017c\2\u0107\1\u017c\2\u0107\1\u017c\10\u0107" + "\1\u017c\4\u0107\1\u017c\7\u0107\1\0\2\u0107\1\u0130\2\u012d" + "\1\u0155\3\u0107\1\u0155\1\u017d\3\u0107\2\u012d\52\u0107\1\0" + "\2\u0107\1\u0130\1\0\1\u012d\12\u0107\1\0\52\u0107\1\0" + "\1\u017e\1\u0108\1\u0131\3\u0108\1\u017e\1\u0108\1\u012d\25\u0108" + "\1\u017e\2\u0108\1\u017e\2\u0108\1\u017e\10\u0108\1\u017e\4\u0108" + "\1\u017e\7\u0108\1\0\2\u0108\1\u0131\1\u012d\1\u0108\1\u0158" + "\2\u0108\1\u012d\1\u0158\1\u017f\3\u0108\2\u012d\52\u0108\1\0" + "\2\u0108\1\u0131\1\0\4\u0108\1\u012d\6\u0108\1\0\52\u0108"
+ "\1\0\2\51\1\165\1\51\1\0\3\51\1\0\1\51" + "\4\0\2\51\1\0\3\51\1\0\1\51\10\0\11\51" + "\1\0\4\51\1\0\2\51\1\0\1\51\1\0\3\51" + "\6\0\2\55\1\167\1\55\1\0\3\55\1\0\1\55" + "\4\0\2\55\1\0\3\55\1\0\1\55\10\0\11\55" + "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55" + "\6\0\2\62\1\171\1\62\1\0\3\62\1\0\1\62" + "\4\0\2\62\1\0\3\62\1\0\1\62\10\0\11\62" + "\1\0\4\62\1\0\2\62\1\0\1\62\1\0\3\62" + "\6\0\2\72\1\176\1\72\1\0\3\72\1\0\1\72" + "\4\0\2\72\1\0\3\72\1\0\1\72\10\0\11\72" + "\1\0\4\72\1\0\2\72\1\0\1\72\1\0\3\72" + "\6\0\2\100\1\200\1\100\1\0\3\100\1\0\1\100" + "\4\0\2\100\1\0\3\100\1\0\1\100\10\0\11\100" + "\1\0\4\100\1\0\2\100\1\0\1\100\1\0\3\100" + "\6\0\1\u0180\1\202\1\203\1\202\1\204\1\202\1\u0180" + "\27\202\1\u0180\2\202\1\u0180\2\202\1\u0180\10\202\1\u0180" + "\4\202\1\u0180\7\202\1\0\1\u0181\1\205\1\206\3\205" + "\1\u0181\1\205\1\204\25\205\1\u0181\2\205\1\u0181\2\205" + "\1\u0181\10\205\1\u0181\4\205\1\u0181\7\205\1\0\2\105"
+ "\1\207\1\105\1\0\3\105\1\0\1\105\4\0\2\105" + "\1\0\3\105\1\0\1\105\10\0\11\105\1\0\4\105" + "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\u0182" + "\1\211\1\212\1\211\1\0\1\211\1\u0182\1\211\1\0" + "\1\211\4\0\2\211\1\0\3\211\1\0\1\211\10\0" + "\1\u0182\2\211\1\u0182\2\211\1\u0182\2\211\1\0\4\211" + "\1\0\1\u0182\1\211\1\0\1\211\1\0\1\u0182\2\211" + "\6\0\2\113\1\216\1\113\1\0\3\113\1\0\1\113" + "\4\0\2\113\1\0\3\113\1\217\1\113\10\0\11\113" + "\1\0\4\113\1\0\2\113\1\0\1\113\1\0\3\113" + "\6\0\1\u0183\1\221\1\222\1\221\1\223\1\221\1\u0183" + "\27\221\1\u0183\2\221\1\u0183\2\221\1\u0183\10\221\1\u0183" + "\4\221\1\u0183\7\221\1\0\1\u0184\1\224\1\225\3\224" + "\1\u0184\1\224\1\223\25\224\1\u0184\2\224\1\u0184\2\224" + "\1\u0184\10\224\1\u0184\4\224\1\u0184\7\224\1\0\1\u0185" + "\1\227\1\230\1\227\1\0\1\227\1\u0185\1\227\1\0" + "\1\227\4\0\2\227\1\0\3\227\1\0\1\227\10\0" + "\1\u0185\2\227\1\u0185\2\227\1\u0185\2\227\1\0\4\227"
+ "\1\0\1\u0185\1\227\1\0\1\227\1\0\1\u0185\2\227" + "\6\0\1\u0186\5\0\1\u0186\1\362\15\0\2\u0186\7\0" + "\2\u0186\1\0\2\u0186\1\0\2\u0186\7\0\2\u0186\3\0" + "\2\u0186\7\0\1\u0187\5\0\1\u0187\16\0\2\u0187\7\0" + "\2\u0187\1\0\2\u0187\1\0\2\u0187\7\0\2\u0187\3\0" + "\2\u0187\7\0\1\u0188\1\u0119\1\u011a\1\u0119\1\0\1\u0119" + "\1\u0188\1\u0119\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119" + "\1\u0188\2\u0119\1\u0188\2\u0119\1\u0188\10\u0119\1\u0188\4\u0119" + "\1\u0188\7\u0119\1\0\1\u0189\1\u011c\1\u0144\1\u011c\1\u0141" + "\1\u011c\1\u0189\27\u011c\1\u0189\2\u011c\1\u0189\2\u011c\1\u0189" + "\10\u011c\1\u0189\4\u011c\1\u0189\7\u011c\1\0\2\u011c\1\u0144" + "\2\u0141\1\u016b\3\u011c\1\u016b\1\u018a\3\u011c\2\u0141\52\u011c" + "\1\0\2\u011c\1\u0144\1\0\1\u0141\12\u011c\1\0\52\u011c" + "\1\0\1\u018b\1\u011d\1\u0145\3\u011d\1\u018b\1\u011d\1\u0141" + "\25\u011d\1\u018b\2\u011d\1\u018b\2\u011d\1\u018b\10\u011d\1\u018b"
+ "\4\u011d\1\u018b\7\u011d\1\0\2\u011d\1\u0145\1\u0141\1\u011d" + "\1\u016e\2\u011d\1\u0141\1\u016e\1\u018c\3\u011d\2\u0141\52\u011d" + "\1\0\2\u011d\1\u0145\1\0\4\u011d\1\u0141\6\u011d\1\0" + "\52\u011d\42\0\2\u018d\30\0\2\134\1\135\1\134\1\0" + "\3\134\1\0\1\134\4\0\2\134\1\0\3\134\1\0" + "\1\134\10\0\11\134\1\0\4\134\1\0\2\134\1\0" + "\1\134\1\0\3\134\6\0\2\136\1\137\1\136\1\0" + "\3\136\1\0\1\136\4\0\2\136\1\0\3\136\1\0" + "\1\136\10\0\11\136\1\0\4\136\1\0\2\136\1\0" + "\1\136\1\0\3\136\44\0\2\u018e\33\0\1\u018f\1\333" + "\1\334\1\333\1\0\1\333\1\u018f\1\333\1\0\1\333" + "\1\376\3\0\2\333\1\0\3\333\1\0\1\333\10\0" + "\1\u018f\2\333\1\u018f\2\333\1\u018f\2\333\1\0\4\333" + "\1\0\1\u018f\1\333\1\0\1\333\1\0\1\u018f\2\333" + "\6\0\2\147\1\150\1\147\1\0\3\147\1\0\1\147" + "\4\0\2\147\1\0\3\147\1\252\1\147\10\0\11\147" + "\1\0\4\147\1\0\2\147\1\0\1\147\1\0\3\147" + "\6\0\2\152\1\153\1\152\1\154\65\152\1\0\2\155" + "\1\156\5\155\1\154\61\155\1\0\2\157\1\160\1\157"
+ "\1\161\65\157\1\0\2\162\1\163\5\162\1\161\61\162" + "\1\0\1\u0190\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u0190" + "\1\u0105\1\0\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u0190" + "\2\u0105\1\u0190\2\u0105\1\u0190\10\u0105\1\u0190\4\u0105\1\u0190" + "\7\u0105\1\0\1\u0191\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107" + "\1\u0191\27\u0107\1\u0191\2\u0107\1\u0191\2\u0107\1\u0191\10\u0107" + "\1\u0191\4\u0107\1\u0191\7\u0107\1\0\1\u0192\1\u0108\1\u0131" + "\3\u0108\1\u0192\1\u0108\1\u012d\25\u0108\1\u0192\2\u0108\1\u0192" + "\2\u0108\1\u0192\10\u0108\1\u0192\4\u0108\1\u0192\7\u0108\1\0" + "\2\202\1\203\1\202\1\204\65\202\1\0\2\205\1\206" + "\5\205\1\204\61\205\1\0\2\211\1\212\1\211\1\0" + "\3\211\1\0\1\211\4\0\2\211\1\0\3\211\1\0" + "\1\211\10\0\11\211\1\0\4\211\1\0\2\211\1\0" + "\1\211\1\0\3\211\6\0\2\221\1\222\1\221\1\223" + "\65\221\1\0\2\224\1\225\5\224\1\223\61\224\1\0" + "\2\227\1\230\1\227\1\0\3\227\1\0\1\227\4\0" + "\2\227\1\0\3\227\1\0\1\227\10\0\11\227\1\0"
+ "\4\227\1\0\2\227\1\0\1\227\1\0\3\227\15\0" + "\1\362\63\0\1\u0193\5\0\1\u0193\16\0\2\u0193\7\0" + "\2\u0193\1\0\2\u0193\1\0\2\u0193\7\0\2\u0193\3\0" + "\2\u0193\7\0\1\u0194\1\u0119\1\u011a\1\u0119\1\0\1\u0119" + "\1\u0194\1\u0119\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119" + "\1\u0194\2\u0119\1\u0194\2\u0119\1\u0194\10\u0119\1\u0194\4\u0119" + "\1\u0194\7\u0119\1\0\1\u0195\1\u011c\1\u0144\1\u011c\1\u0141" + "\1\u011c\1\u0195\27\u011c\1\u0195\2\u011c\1\u0195\2\u011c\1\u0195" + "\10\u011c\1\u0195\4\u011c\1\u0195\7\u011c\1\0\1\u0196\1\u011d" + "\1\u0145\3\u011d\1\u0196\1\u011d\1\u0141\25\u011d\1\u0196\2\u011d" + "\1\u0196\2\u011d\1\u0196\10\u011d\1\u0196\4\u011d\1\u0196\7\u011d" + "\65\0\1\u0197\52\0\2\u0198\25\0\1\u0199\1\333\1\334" + "\1\333\1\0\1\333\1\u0199\1\333\1\0\1\333\1\376" + "\3\0\2\333\1\0\3\333\1\0\1\333\10\0\1\u0199" + "\2\333\1\u0199\2\333\1\u0199\2\333\1\0\4\333\1\0" + "\1\u0199\1\333\1\0\1\333\1\0\1\u0199\2\333\6\0"
+ "\1\u019a\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u019a\1\u0105" + "\1\0\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u019a\2\u0105" + "\1\u019a\2\u0105\1\u019a\10\u0105\1\u019a\4\u0105\1\u019a\7\u0105" + "\1\0\1\u019b\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107\1\u019b" + "\27\u0107\1\u019b\2\u0107\1\u019b\2\u0107\1\u019b\10\u0107\1\u019b" + "\4\u0107\1\u019b\7\u0107\1\0\1\u019c\1\u0108\1\u0131\3\u0108" + "\1\u019c\1\u0108\1\u012d\25\u0108\1\u019c\2\u0108\1\u019c\2\u0108" + "\1\u019c\10\u0108\1\u019c\4\u0108\1\u019c\7\u0108\1\0\1\u019d" + "\5\0\1\u019d\16\0\2\u019d\7\0\2\u019d\1\0\2\u019d" + "\1\0\2\u019d\7\0\2\u019d\3\0\2\u019d\7\0\1\u019e" + "\1\u0119\1\u011a\1\u0119\1\0\1\u0119\1\u019e\1\u0119\1\0" + "\1\u0119\1\u011e\11\u0119\1\0\11\u0119\1\u019e\2\u0119\1\u019e" + "\2\u0119\1\u019e\10\u0119\1\u019e\4\u0119\1\u019e\7\u0119\1\0" + "\1\u019f\1\u011c\1\u0144\1\u011c\1\u0141\1\u011c\1\u019f\27\u011c" + "\1\u019f\2\u011c\1\u019f\2\u011c\1\u019f\10\u011c\1\u019f\4\u011c"
+ "\1\u019f\7\u011c\1\0\1\u01a0\1\u011d\1\u0145\3\u011d\1\u01a0" + "\1\u011d\1\u0141\25\u011d\1\u01a0\2\u011d\1\u01a0\2\u011d\1\u01a0" + "\10\u011d\1\u01a0\4\u011d\1\u01a0\7\u011d\47\0\1\u01a1\24\0" + "\2\333\1\334\1\333\1\0\3\333\1\0\1\333\1\376" + "\3\0\2\333\1\0\3\333\1\0\1\333\10\0\11\333" + "\1\0\4\333\1\0\2\333\1\0\1\333\1\0\3\333" + "\6\0\1\u01a2\1\u0105\1\u0106\1\u0105\1\0\1\u0105\1\u01a2" + "\1\u0105\1\0\1\u0105\1\u0109\11\u0105\1\0\11\u0105\1\u01a2" + "\2\u0105\1\u01a2\2\u0105\1\u01a2\10\u0105\1\u01a2\4\u0105\1\u01a2" + "\7\u0105\1\0\1\u01a3\1\u0107\1\u0130\1\u0107\1\u012d\1\u0107" + "\1\u01a3\27\u0107\1\u01a3\2\u0107\1\u01a3\2\u0107\1\u01a3\10\u0107" + "\1\u01a3\4\u0107\1\u01a3\7\u0107\1\0\1\u01a4\1\u0108\1\u0131" + "\3\u0108\1\u01a4\1\u0108\1\u012d\25\u0108\1\u01a4\2\u0108\1\u01a4" + "\2\u0108\1\u01a4\10\u0108\1\u01a4\4\u0108\1\u01a4\7\u0108\1\0" + "\1\u01a5\1\u0119\1\u011a\1\u0119\1\0\1\u0119\1\u01a5\1\u0119"
+ "\1\0\1\u0119\1\u011e\11\u0119\1\0\11\u0119\1\u01a5\2\u0119" + "\1\u01a5\2\u0119\1\u01a5\10\u0119\1\u01a5\4\u0119\1\u01a5\7\u0119" + "\1\0\1\u01a6\1\u011c\1\u0144\1\u011c\1\u0141\1\u011c\1\u01a6" + "\27\u011c\1\u01a6\2\u011c\1\u01a6\2\u011c\1\u01a6\10\u011c\1\u01a6" + "\4\u011c\1\u01a6\7\u011c\1\0\1\u01a7\1\u011d\1\u0145\3\u011d" + "\1\u01a7\1\u011d\1\u0141\25\u011d\1\u01a7\2\u011d\1\u01a7\2\u011d" + "\1\u01a7\10\u011d\1\u01a7\4\u011d\1\u01a7\7\u011d\1\0\2\u0105" + "\1\u0106\1\u0105\1\0\3\u0105\1\0\1\u0105\1\u0109\11\u0105" + "\1\0\45\u0105\1\0\1\u01a8\1\u0107\1\u0130\1\u0107\1\u012d" + "\1\u0107\1\u01a8\27\u0107\1\u01a8\2\u0107\1\u01a8\2\u0107\1\u01a8" + "\10\u0107\1\u01a8\4\u0107\1\u01a8\7\u0107\1\0\1\u01a9\1\u0108" + "\1\u0131\3\u0108\1\u01a9\1\u0108\1\u012d\25\u0108\1\u01a9\2\u0108" + "\1\u01a9\2\u0108\1\u01a9\10\u0108\1\u01a9\4\u0108\1\u01a9\7\u0108" + "\1\0\2\u0119\1\u011a\1\u0119\1\0\3\u0119\1\0\1\u0119"
+ "\1\u011e\11\u0119\1\0\45\u0119\1\0\1\u01aa\1\u011c\1\u0144" + "\1\u011c\1\u0141\1\u011c\1\u01aa\27\u011c\1\u01aa\2\u011c\1\u01aa" + "\2\u011c\1\u01aa\10\u011c\1\u01aa\4\u011c\1\u01aa\7\u011c\1\0" + "\1\u01ab\1\u011d\1\u0145\3\u011d\1\u01ab\1\u011d\1\u0141\25\u011d" + "\1\u01ab\2\u011d\1\u01ab\2\u011d\1\u01ab\10\u011d\1\u01ab\4\u011d" + "\1\u01ab\7\u011d\1\0\2\u0107\1\u0130\1\u0107\1\u012d\65\u0107" + "\1\0\2\u0108\1\u0131\5\u0108\1\u012d\61\u0108\1\0\2\u011c" + "\1\u0144\1\u011c\1\u0141\65\u011c\1\0\2\u011d\1\u0145\5\u011d" + "\1\u0141\61\u011d";
/**
* The transition table of the DFA
*/
final private static int yytrans[] = yy_unpack(yy_packed);
/* error codes */
final private static int YY_UNKNOWN_ERROR = 0;
// final private static int YY_ILLEGAL_STATE = 1;
final private static int YY_NO_MATCH = 2;
// final private static int YY_PUSHBACK_2BIG = 3;
/* error messages for the codes above */
final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"};
/**
* YY_ATTRIBUTE[aState] contains the attributes of state
* <code>aState</code>
*/
private final static byte YY_ATTRIBUTE[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1, 1, 1, 9, 1, 9, 1, 1, 9, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 9, 9, 1, 1, 1, 9, 1, 3, 9, 9, 1, 1, 1, 9, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 9, 3, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 13, 7, 0, 1, 0, 1, 0, 0, 9, 0, 0, 0, 1, 1, 0, 0, 0, 9, 0, 9, 1, 0, 0, 9, 0, 0, 1, 1, 0, 0, 1, 0, 0, 13, 7, 1, 9, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 9, 0, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 9, 0, 1, 1, 1, 0, 0, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0,
0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 9, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
/** the input device */
private java.io.Reader yy_reader;
/** the current state of the DFA */
private int yy_state;
/** the current lexical state */
private int yy_lexical_state = YYINITIAL;
/**
* this buffer contains the current text to be matched and is the source
* of the yytext() string
*/
private char yy_buffer[] = new char[16384];
/** the textposition at the last accepting state */
private int yy_markedPos;
/** the textposition at the last state to be included in yytext */
private int yy_pushbackPos;
/** the current text position in the buffer */
private int yy_currentPos;
/** startRead marks the beginning of the yytext() string in the buffer */
private int yy_startRead;
/**
* endRead marks the last character in the buffer, that has been read from
* input
*/
private int yy_endRead;
/** 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;
/**
* yy_atBOL == true <=> the scanner is currently at the beginning of a
* line
*/
// private boolean yy_atBOL;
/** yy_atEOF == true <=> the scanner has returned a value for EOF */
private boolean yy_atEOF;
/* user code: */
private final static String UNDEFINED = "undefined";
private String fBufferedContext = null;
private int fBufferedStart;
// private int fBufferedTextLength;
private int fBufferedLength;
// private StringBuffer fBufferedText = null;
private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();
private int fInitialState = YYINITIAL;
public final static int BUFFER_SIZE_NORMAL = 16384;
public final static int BUFFER_SIZE_SMALL = 256;
private int fInitialBufferSize = BUFFER_SIZE_NORMAL;
public void setInitialState(int state) {
fInitialState = state;
}
public void setInitialBufferSize(int size) {
fInitialBufferSize = size;
}
/* user method */
public final ITextRegion getNextToken() throws IOException {
String context;
String nextTokenType;
boolean spaceFollows;
// StringBuffer text;
int start;
int textLength;
int length;
if (fBufferedContext != null) {
context = fBufferedContext;
// text = fBufferedText;
start = fBufferedStart;
textLength = length = fBufferedLength;
fBufferedContext = null;
}
else {
context = primGetNextToken();
// text = new StringBuffer(yytext());
start = yychar;
textLength = length = yylength();
}
if (context != null) {
if (context == UNDEFINED) {
// undef -> concatenate undef's
nextTokenType = primGetNextToken();
while (nextTokenType == UNDEFINED) {
// text.append(yytext());
textLength += yylength();
length = textLength;
nextTokenType = primGetNextToken();
}
fBufferedContext = nextTokenType;
// fBufferedText = new StringBuffer(yytext());
fBufferedStart = yychar;
fBufferedLength = yylength();
}
else {
nextTokenType = null;
spaceFollows = false;
if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration
// value
// can
// contain
// VALUE_S
nextTokenType = primGetNextToken();
spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);
}
else if (canContainSpace(context)) {
nextTokenType = primGetNextToken();
spaceFollows = (nextTokenType == CSS_S);
}
if (nextTokenType != null) { // nextToken is retrieved
if (spaceFollows) {
// next is space -> append
// text.append(yytext());
length += yylength();
}
else {
// next is NOT space -> push this for next time,
// return itself
fBufferedContext = nextTokenType;
// fBufferedText = new StringBuffer(yytext());
fBufferedStart = yychar;
fBufferedLength = yylength();
}
}
}
}
if (context != null) {
if (context == UNDEFINED) {
context = CSS_UNKNOWN;
}
return fRegionFactory.createRegion(context, start, textLength, length);
}
else {
return null;
}
}
/* user method */
/* for standalone use */
public final List parseText() throws IOException {
List tokens = new ArrayList();
CSSTextToken token;
for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {
token = new CSSTextToken();
token.kind = kind;
token.start = yychar;
token.length = yylength();
token.image = yytext();
tokens.add(token);
}
return tokens;
}
/* user method */
private boolean canContainSpace(String type) {
if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {
return false;
}
else {
return true;
}
}
/* user method */
public final int getOffset() {
return yychar;
}
/* user method */
public final boolean isEOF() {
return yy_atEOF;
}
/* user method */
public void reset(char[] charArray) {
reset(new CharArrayReader(charArray), 0);
}
/* user method */
public final void reset(java.io.Reader in, int newOffset) {
/** the input device */
yy_reader = in;
/** the current state of the DFA */
yy_state = 0;
/** the current lexical state */
yy_lexical_state = fInitialState; // YYINITIAL;
/**
* this buffer contains the current text to be matched and is the
* source of the yytext() string
*/
if (yy_buffer.length != fInitialBufferSize) {
yy_buffer = new char[fInitialBufferSize];
}
java.util.Arrays.fill(yy_buffer, (char) 0);
/** the textposition at the last accepting state */
yy_markedPos = 0;
/** the textposition at the last state to be included in yytext */
yy_pushbackPos = 0;
/** the current text position in the buffer */
yy_currentPos = 0;
/** startRead marks the beginning of the yytext() string in the buffer */
yy_startRead = 0;
/**
* endRead marks the last character in the buffer, that has been read
* from input
*/
yy_endRead = 0;
/** number of newlines encountered up to the start of the matched text */
yyline = 0;
/** the number of characters up to the start of the matched text */
yychar = 0;
/**
* the number of characters from the last newline up to the start of
* the matched text
*/
// yycolumn = 0;
/**
* yy_atBOL == true <=> the scanner is currently at the beginning of a
* line
*/
// yy_atBOL = false;
/** yy_atEOF == true <=> the scanner has returned a value for EOF */
yy_atEOF = false;
/* user variables */
// fUndefined.delete(0, fUndefined.length());
}
/* user method */
public CSSTokenizer() {
super();
}
/**
* 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 CSSTokenizer(java.io.Reader in) {
this.yy_reader = 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 CSSTokenizer(java.io.InputStream in) {
this(new java.io.InputStreamReader(in));
}
/**
* Unpacks the compressed DFA transition table.
*
* @param packed
* the packed transition table
* @return the unpacked transition table
*/
private static int[] yy_unpack(String packed) {
int[] trans = new int[20709];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 13396) {
int count = packed.charAt(i++);
int value = packed.charAt(i++);
value--;
do
trans[j++] = value;
while (--count > 0);
}
return trans;
}
/**
* Unpacks the compressed character translation table.
*
* @param packed
* the packed character translation table
* @return the unpacked character translation table
*/
private static char[] yy_unpack_cmap(String packed) {
char[] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
while (i < 170) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do
map[j++] = value;
while (--count > 0);
}
return map;
}
/**
* Gets the next input character.
*
* @return the next character of the input stream, EOF if the end of the
* stream is reached.
* @exception IOException
* if any I/O-Error occurs
*/
private int yy_advance() throws java.io.IOException {
/* standard case */
if (yy_currentPos < yy_endRead)
return yy_buffer[yy_currentPos++];
/* if the eof is reached, we don't need to work hard */
if (yy_atEOF)
return YYEOF;
/* otherwise: need to refill the buffer */
/* first: make room (if you can) */
if (yy_startRead > 0) {
System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead);
/* translate stored positions */
yy_endRead -= yy_startRead;
yy_currentPos -= yy_startRead;
yy_markedPos -= yy_startRead;
yy_pushbackPos -= yy_startRead;
yy_startRead = 0;
}
/* is the buffer big enough? */
if (yy_currentPos >= yy_buffer.length) {
/* if not: blow it up */
char newBuffer[] = new char[yy_currentPos * 2];
System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
yy_buffer = newBuffer;
}
/* finally: fill the buffer with new input */
int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead);
if (numRead == -1)
return YYEOF;
yy_endRead += numRead;
return yy_buffer[yy_currentPos++];
}
/**
* Closes the input stream.
*/
final public void yyclose() throws java.io.IOException {
yy_atEOF = true; /* indicate end of file */
yy_endRead = yy_startRead; /* invalidate buffer */
yy_reader.close();
}
/**
* Returns the current lexical state.
*/
final public int yystate() {
return yy_lexical_state;
}
/**
* Enters a new lexical state
*
* @param newState
* the new lexical state
*/
final public void yybegin(int newState) {
yy_lexical_state = newState;
}
/**
* Returns the text matched by the current regular expression.
*/
final public String yytext() {
return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead);
}
/**
* Returns the length of the matched text region.
*/
final public int yylength() {
return yy_markedPos - yy_startRead;
}
/**
* Reports an error that occured while scanning.
*
* @param errorCode
* the code of the errormessage to display
*/
private void yy_ScanError(int errorCode) {
try {
System.out.println(YY_ERROR_MSG[errorCode]);
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
}
}
/**
* 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()!
*/
// private void yypushback(int number) {
// if ( number > yylength() )
// yy_ScanError(YY_PUSHBACK_2BIG);
//
// yy_markedPos -= 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 IOException
* if any I/O-Error occurs
*/
public String primGetNextToken() throws java.io.IOException {
int yy_input;
int yy_action;
yy_pushbackPos = -1;
boolean yy_was_pushback;
while (true) {
yychar += yylength();
boolean yy_counted = false;
for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos; yy_currentPos++) {
switch (yy_buffer[yy_currentPos]) {
case '\r' :
yyline++;
yy_counted = true;
break;
case '\n' :
if (yy_counted)
yy_counted = false;
else {
yyline++;
}
break;
default :
yy_counted = false;
}
}
if (yy_counted) {
if (yy_advance() == '\n')
yyline--;
if (!yy_atEOF)
yy_currentPos--;
}
yy_action = -1;
yy_currentPos = yy_startRead = yy_markedPos;
yy_state = yy_lexical_state;
yy_was_pushback = false;
yy_forAction : {
while (true) {
yy_input = yy_advance();
if (yy_input == YYEOF)
break yy_forAction;
int yy_next = yytrans[yy_rowMap[yy_state] + yycmap[yy_input]];
if (yy_next == -1)
break yy_forAction;
yy_state = yy_next;
int yy_attributes = YY_ATTRIBUTE[yy_state];
if ((yy_attributes & 2) > 0)
yy_pushbackPos = yy_currentPos;
if ((yy_attributes & 1) > 0) {
yy_was_pushback = (yy_attributes & 4) > 0;
yy_action = yy_state;
yy_markedPos = yy_currentPos;
if ((yy_attributes & 8) > 0)
break yy_forAction;
}
}
}
if (yy_was_pushback)
yy_markedPos = yy_pushbackPos;
switch (yy_action) {
case 416 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_IMPORTANT;
}
case 428 :
break;
case 407 : {
yybegin(ST_FONT_FACE_DELIMITER);
return CSS_FONT_FACE;
}
case 429 :
break;
case 370 : {
yybegin(ST_CHARSET_NAME);
return CSS_CHARSET;
}
case 430 :
break;
case 330 : {
yybegin(ST_IMPORT_URI);
return CSS_IMPORT;
}
case 431 :
break;
case 292 : {
yybegin(ST_MEDIA_MEDIUM);
return CSS_MEDIA;
}
case 432 :
break;
case 285 :
case 322 :
case 393 :
case 395 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_URI;
}
case 433 :
break;
case 264 :
case 302 :
case 380 :
case 382 : {
yybegin(ST_IMPORT_MEDIUM);
return CSS_URI;
}
case 434 :
break;
case 250 : {
yybegin(ST_PAGE_PSEUDO_PAGE);
return CSS_PAGE;
}
case 435 :
break;
case 212 : {
return CSS_COMMENT;
}
case 436 :
break;
case 211 : {
return CSS_CDO;
}
case 437 :
break;
case 205 :
case 240 :
case 278 :
case 279 :
case 318 :
case 319 :
case 358 :
case 359 :
case 389 :
case 390 :
case 402 :
case 412 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_UNICODE_RANGE;
}
case 438 :
break;
case 159 : {
return CSS_CDC;
}
case 439 :
break;
case 156 : {
return CSS_DECLARATION_VALUE_S;
}
case 440 :
break;
case 150 :
case 204 :
case 239 :
case 277 :
case 317 :
case 357 :
case 388 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_HASH;
}
case 441 :
break;
case 146 :
case 199 :
case 202 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_STRING;
}
case 442 :
break;
case 57 :
case 126 :
case 187 :
case 230 :
case 268 :
case 308 :
case 348 : {
yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR);
return CSS_SELECTOR_ATTRIBUTE_NAME;
}
case 443 :
break;
case 56 : {
yybegin(ST_SELECTOR);
return CSS_SELECTOR_SEPARATOR;
}
case 444 :
break;
case 55 :
case 123 : {
yybegin(ST_SELECTOR);
return CSS_SELECTOR_COMBINATOR;
}
case 445 :
break;
case 52 : {
yybegin(ST_DECLARATION);
return CSS_LBRACE;
}
case 446 :
break;
case 49 :
case 121 :
case 186 :
case 229 :
case 267 :
case 307 :
case 347 : {
yybegin(ST_PAGE_DELIMITER);
return CSS_PAGE_SELECTOR;
}
case 447 :
break;
case 48 : {
yybegin(YYINITIAL);
return CSS_LBRACE;
}
case 448 :
break;
case 47 : {
yybegin(ST_MEDIA_MEDIUM);
return CSS_MEDIA_SEPARATOR;
}
case 449 :
break;
case 44 :
case 119 :
case 185 :
case 228 :
case 266 :
case 306 :
case 346 : {
yybegin(ST_MEDIA_DELIMITER);
return CSS_MEDIUM;
}
case 450 :
break;
case 43 : {
yybegin(ST_IMPORT_MEDIUM);
return CSS_MEDIA_SEPARATOR;
}
case 451 :
break;
case 20 :
case 89 :
case 158 :
case 208 :
case 244 :
case 287 :
case 326 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_ELEMENT_NAME;
}
case 452 :
break;
case 22 :
case 54 :
case 87 :
case 124 :
case 157 : {
return CSS_S;
}
case 453 :
break;
case 27 : {
yybegin(YYINITIAL);
return CSS_RBRACE;
}
case 454 :
break;
case 29 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_UNIVERSAL;
}
case 455 :
break;
case 32 : {
yybegin(ST_SELECTOR_ATTRIBUTE_NAME);
return CSS_SELECTOR_ATTRIBUTE_START;
}
case 456 :
break;
case 36 : {
yybegin(YYINITIAL);
return CSS_DELIMITER;
}
case 457 :
break;
case 40 :
case 117 :
case 184 :
case 227 :
case 265 :
case 305 :
case 345 : {
yybegin(ST_IMPORT_DELIMITER);
return CSS_MEDIUM;
}
case 458 :
break;
case 60 : {
yybegin(ST_SELECTOR_ATTRIBUTE_VALUE);
return CSS_SELECTOR_ATTRIBUTE_OPERATOR;
}
case 459 :
break;
case 62 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_ATTRIBUTE_END;
}
case 460 :
break;
case 63 :
case 128 :
case 131 :
case 188 :
case 190 :
case 193 :
case 231 :
case 269 :
case 309 :
case 349 : {
yybegin(ST_SELECTOR_ATTRIBUTE_END);
return CSS_SELECTOR_ATTRIBUTE_VALUE;
}
case 461 :
break;
case 68 :
case 135 :
case 195 :
case 234 :
case 272 :
case 312 :
case 352 : {
yybegin(ST_DECLARATION_SEPARATOR);
return CSS_DECLARATION_PROPERTY;
}
case 462 :
break;
case 71 : {
yybegin(ST_DECLARATION);
return CSS_DECLARATION_DELIMITER;
}
case 463 :
break;
case 72 : {
yybegin(ST_DECLARATION_PRE_VALUE);
return CSS_DECLARATION_SEPARATOR;
}
case 464 :
break;
case 73 :
case 149 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_NUMBER;
}
case 465 :
break;
case 74 :
case 83 :
case 143 :
case 153 :
case 197 :
case 206 :
case 236 :
case 274 :
case 314 :
case 354 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_IDENT;
}
case 466 :
break;
case 79 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE;
}
case 467 :
break;
case 85 :
case 86 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_OPERATOR;
}
case 468 :
break;
case 91 :
case 160 :
case 209 :
case 245 :
case 288 :
case 327 :
case 368 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_CLASS;
}
case 469 :
break;
case 93 :
case 161 :
case 210 :
case 246 :
case 289 :
case 328 :
case 369 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_ID;
}
case 470 :
break;
case 102 :
case 170 :
case 221 :
case 253 :
case 255 :
case 295 :
case 333 :
case 373 : {
yybegin(ST_SELECTOR_MODIFIER);
return CSS_SELECTOR_PSEUDO;
}
case 471 :
break;
case 107 :
case 172 :
case 175 : {
yybegin(ST_CHARSET_DELIMITER);
return CSS_STRING;
}
case 472 :
break;
case 112 :
case 178 :
case 181 : {
yybegin(ST_IMPORT_MEDIUM);
return CSS_STRING;
}
case 473 :
break;
case 136 :
case 196 :
case 235 :
case 273 :
case 313 :
case 353 :
case 385 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_DIMENSION;
}
case 474 :
break;
case 140 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_PERCENTAGE;
}
case 475 :
break;
case 142 :
case 242 : {
yybegin(ST_DECLARATION_VALUE);
return CSS_DECLARATION_VALUE_FUNCTION;
}
case 476 :
break;
case 19 :
case 21 :
case 23 :
case 24 :
case 25 :
case 26 :
case 28 :
case 30 :
case 31 :
case 33 :
case 34 :
case 35 :
case 37 :
case 38 :
case 39 :
case 41 :
case 42 :
case 45 :
case 46 :
case 50 :
case 51 :
case 53 :
case 58 :
case 59 :
case 61 :
case 64 :
case 65 :
case 66 :
case 67 :
case 69 :
case 70 :
case 75 :
case 76 :
case 77 :
case 78 :
case 80 :
case 81 :
case 82 :
case 84 : {
return UNDEFINED;
}
case 477 :
break;
default :
if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
yy_atEOF = true;
return null;
}
else {
yy_ScanError(YY_NO_MATCH);
}
}
}
}
/**
* Runs the scanner on input files.
*
* This main method is the debugging routine for the scanner. It prints
* each returned token to System.out until the end of file is reached, or
* an error occured.
*
* @param argv
* the command line, contains the filenames to run the scanner
* on.
*/
public static void main(String argv[]) {
for (int i = 0; i < argv.length; i++) {
CSSTokenizer scanner = null;
try {
scanner = new CSSTokenizer(new java.io.FileReader(argv[i]));
}
catch (java.io.FileNotFoundException e) {
System.out.println("File not found : \"" + argv[i] + "\"");
}
// catch (java.io.IOException e) {
// System.out.println("Error opening file \""+argv[i]+"\"");
//
// }
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Usage : java CSSTokenizer <inputfile>");
}
try {
do {
System.out.println(scanner.primGetNextToken());
}
while (!scanner.yy_atEOF);
}
catch (java.io.IOException e) {
System.out.println("An I/O error occured while scanning :");
System.out.println(e);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}